MultiTweakItem(object) -  CBash_MultiTweakItem(MultiTweakItem)
MI POC - adds TODOs

TODOs:

- where should abstract error be raised ? This belongs to the methods docs
(`getReadClasses(self), getWriteClasses(self), scanModFile(self,modFile,progress),
 buildPatch(self,log,progress)` in Patcher and `getTypes, buildPatchLog` in
 CBash_Patcher)
- better docs in classes themselves - clarify "performing"

This is a combination of 2 commits.

- MI POC
- [NOOP]Comments & Questions
DoublePatcher (inherits from ListPatcher)

TODOs

- docs
"""Subclass for patchers that have GUI lists of objects.""" ?
[CBash_MultiTweakItem]Chopped off default scanOrder and editOrder

Regex (notepad++):
(\(CBash_MultiTweakItem\):[\r\n][\s]*\"\"\"[^\"]*\"\"\")[\r\n][\s]*scanOrder = 32[\r\n][\s]*editOrder = 32
AMultiTweakItem(object)

Commits:

- MultiTweakItems commit 1 of 69 - Base classes
- AssortedTweak_ArmorShows, ClothingShow (+ a u"" fix):
  - Notice those should be retroffited for MI - still they are used differently
in AssortedTweaker initialization
- Actual MI - commit 3 of 69 - 38 lines chopped off in 4 patchers (many more)
- 4 of 69
AssortedTweak_NoLightFlicker - try block NEEDED ?
CBash_AssortedTweak_PotionWeight and co: self.SEFF = MGEFCode('SEFF') ?

 # This is a combination of 4 commits.
- CBash_AssortedTweak_PotionWeight: self.SEFF = MGEFCode('SEFF') ???
- CBash_AssortedTweak_IngredientWeight: see previous
- Weights - but see next
- In the last three commits the CBash_XXX `__init__` had doubles instead of ints
  - Ported the doubles to the common `__init__()` - not sure if needed (?)
More tweaks

 # This is a combination of 6 commits.
 # The first commit's message is:
 ScriptEffectSilencer

 # This is the 2nd commit message:

 HarvestChance

 # This is the 3rd commit message:

 AssortedTweak_WindSpeed

 # This is the 4th commit message:

 More tweaks

 # This is the 5th commit message:

 LightFadeValueFix

 # This is the 6th commit message:

 TextlessLSCRs
Even more tweaks - questions (docs needed)

- ClothesTweak - Questions:
  - why if record.flags.notPlayable: return False ?
  - 'ARGHTCCPBS' --> u'ARGHTCCPBS' (correct)
- NamesTweak_BodyTags - added u'strings' as per the CBash `__init__`
- CBash_NamesTweak_Body (just deleted the _init_ which is taken care by base)
Even more tweaks

 # This is a combination of 4 commits.
 # The first commit's message is:
 NamesTweak_Potions - notice I move the regex in the base class - generalize

 # This is the 2nd commit message:

 NamesTweak_Scrolls + another re factored out in class scope:

 I add self.__class__ to be more efficient than self. - IIUC

 # This is the 3rd commit message:

 NamesTweak_Spells (format->format_ to avoid "Assignment to reserved built-in symbol")

 # This is the 4th commit message:

 Oops - watch out for this - I do it once in a while (think got them all so far)
More tweaks and some IDE warnings

- NamesTweak_Weapons
- TextReplacer
- Assignment to reserved built-in symbol warnings
- And an indentation warning

See coding style wiki. It is very important for me warnings to go down to a
minimum
AMultiTweaker
AssortedTweak_DarnBooks fixes (vars were unused and the orders do not belong here)

See:
http://forums.bethsoft.com/topic/1471586-relz-wrye-bash-thread-33/page-7#entry23247459
et ex
AssortedTweak_DarnBooks
NPC/Creature patchers

- BasalNPC/CreatureTweaker + MAONPCSkeletonPatcher - MI'd
- VanillaNPCSkeletonPatcher - notice now inherits from BasalNPCTweaker
- VORB_NPCSkeletonPatcher
- Rest of NPC/Creature patchers
Race tweaks RaceTweaker_BiggerOrcsandNords - notice some strings not _()
MergeSimilarRaceHairs/Eyes (added _() as in CBash version)

- MergeSimilarRaceHairs (added `_()` to the strings as in CBash version)
- MergeSimilarRaceEyes (added `_()` to the strings as in CBash version)
Race tweakers

- RaceTweaker_AllHairs
- RaceTweaker_PlayableHairs
- RaceTweaker_PlayableEyes
- RaceTweaker_SexlessHairs - finished with MultiTweakItem:

 Left some that did not really needed MI (edit: factored later)
 Will turn to factoring the logs code
[NOOP]Rearranging race patchers (duh!)
self.logHeader and self.logMsg in Multitweaks

self.logHeader in Multitweaks

 # This is a combination of 7 commits.
- self.logHeader in Multitweaks - will move up but for now...
- More self.logHeader
- self.logHeader - log\.setHeader\(u'=== '\+_\(.*'\)\)
- self.logMsg
	```
	 \R        log\((u'\* '\+_\(u'.*'\)) % sum\(mod_count\.values\(\)\)\)
	```
- self.logMsg

	```
	 \R        log\.setHeader\(self\.logHeader\)\R        log\((u'\* '\+_\(u'.*'\)) % sum\(mod_count\.values\(\)\)\)
	 with
	 \R        log\.setHeader\(self\.logHeader\)\R        self.logMsg = $1\R        log\(self.logMsg % sum\(mod_count\.values\(\)\)\)
	```
- self.logMsg in Pbash

	```
	 \R        log\.setHeader\(self\.logHeader\)\R        log\((u'\* '\+_\(.*\)) % sum\(count\.values\(\)\)\)
	 with
	 \R        log\.setHeader\(self\.logHeader\)\R        self.logMsg = $1\R        log\(self.logMsg % sum\(count\.values\(\)\)\)
	```
- self.logMsg in init

self.logMsg in init

- More moving to init - notice the PBash sometimes had slightly different log
- And another one