{"push_id":680499929,"size":17,"distinct_size":17,"ref":"refs/heads/dev","head":"490e678d2cec8c325ea94f0b88ba0ef40f64b685","before":"365ca896ce9cee0510969150974f132daae07599","commits":[{"sha":"aa29882dbcd90c2a6d7675077aa4a034edeae8bc","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Fix for always isUpdated and correct (hell of a slow) update for flips:\n\nRegression introduced in 95533a7ed1c7ea41235c592d39fda2abc97d64c0\nLook at FileInfos.refresh():\n\n            isUpdated = not isAdded and not fileInfo.sameAs(oldInfo)\n\nBasically fileInfo.isEsp() would always be != oldInfo.isEsp(), the\nformer being a re.Match instance (cause there was no header) the\nlatter being computed from the header.\nNo (?) way to compare the esp status without loading the file - which\nis what we try to avoid using the sameAs() call. So we\nforce refresh load order.\n\nShould not be cheaper to load the header","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/aa29882dbcd90c2a6d7675077aa4a034edeae8bc"},{"sha":"483352f6ae3d29ba39b38e2e66ea5a979d9445b5","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Fixups in load_order.py:\n\nactiSorted should be sorted - it will make a difference when caches are\nfleshed - introduced in e2af4cad49592afdb345982f9b4bc46e95ad5739\ninsert had wrong arguments: 8ee78269ad2ec74e0d90ca8dab4347f3d8e329f5\n\n__fixLoadOrder must always be called as for instance libloadorder will\nnot filter (it shouldn't !) deleted esps - anyway\n`_current_lo.loadOrder != lord` would be always false (tuple != list)\nSame goes for acti != actiFiltered\nThose last are prequels to fixing non deleted files regression","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/483352f6ae3d29ba39b38e2e66ea5a979d9445b5"},{"sha":"73c71164bc84a492bc844dcd5f5618352b51e47e","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Moving some (needed ?) business logic out of liblo.py\n\nDeleting the plugins txt and loading Bash I never see the message so\nprobably not needed with liblo 4...","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/73c71164bc84a492bc844dcd5f5618352b51e47e"},{"sha":"56198be85d3e55cd07b0969354656a837b529174","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"ModInfos.lockLO (fixes obmm dialog) - nitpick:\n\nbosh.modInfos.lockLO property (cleaner)\nNote in Mopy/bash/basher/__init__.py modInfos.lockTimes was set (and\nnever used in modInfos!)\n\nMopy/bash/balt.py:\nMopy/bash/bosh.py:\nMopy/bash/basher/frames.py:\n    Trivial renames ordered->inorder to make modInfos.ordered stand out.\n\nRest is real nitpick (including pruning `.data` uses and wrapping)\n\nMopy/bash/basher/saves_links.py:\nUnused variables\n\nMopy/bash/bosh.py\nShadowing warnings in unformatDate(str,format)\n\nSigned-off-by: MrD <the.ubik@gmail.com>","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/56198be85d3e55cd07b0969354656a837b529174"},{"sha":"912d94d5863b213489638d73fb13970683486225","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"More nitpick:\n\nbosh.Messages() is refreshed on MessagePanel.ShowPanel()\nKept the initializations where they were (they leak, btw, on closing tab),\nif the tab is not enabled no need to init. Still BSAInfos is needed (for\nwarns and reset times).\n\nMopy/bash/basher/misc_links.py:\nMopy/bash/basher/ini_links.py:\nself.window.data.refresh() -> bosh.screensData/iniInfos.refresh()\nwhile globals use is discouraged, refresh with its overloads lends itself\nto an exception\n\nMopy/bash/liblo.py: unused __enter__, __exit__\n\nMopy/bash/bosh.py: error in format string, wrapping/`.data` pruning\nWrapping depended =... I came to realize that Path(u'S') == u's',\nnoted in bolt.\n\nMopy/bash/basher/mod_links.py: rescan mergeable made to a conversation\nand busy cursor added - I need an annotation.\n\nMopy/bash/balt.py:\nAdded return to conversation - better safe than sorry - and renamed\nwrapper to _conversation_wrapper - wrapper in a traceback is rather\nannoying.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/912d94d5863b213489638d73fb13970683486225"},{"sha":"5ee4d9a6223efd7c4b32da7a2f0c57136da7a6aa","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Performance fixups - RefreshData conversation:\n\n- select all took ages on large lists\n- unbinding RefreshData on closing the window\n- made RefreshData itself into a conversation, won't harm IIUC\n\nSelect all now clears the details - policy correct but not sure I like it\n(would leave selected item details - was: last LO item details)\n\nNote that selecting one after selecting all does not refresh details - a\nwx thing (OnSelected event is not fired if item was previously selected -\nbypass ?)\n\n\t# This is the 2nd commit message:\n\nAdded return to ModInfos.unselect() - did you spot the bug ? Fixed later\nin ModInfos.isActiveCached() commit.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/5ee4d9a6223efd7c4b32da7a2f0c57136da7a6aa"},{"sha":"3fad78f4fe18f58d6911c1ef69bd7bd7d78d50cd","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Common warns for renaming/duplicating files with resources, wrapping\n\nSigned-off-by: MrD <the.ubik@gmail.com>","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/3fad78f4fe18f58d6911c1ef69bd7bd7d78d50cd"},{"sha":"61e5d48b6e4241d5127e675d6d73a3780797abb7","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Renames (data->selection, irefresh):\n\nMopy/bash/basher/__init__.py:\nMopy/bash/basher/installer_links.py:\nMopy/bash/basher/installers_links.py:\nMopy/bash/bosh.py:\nAliasing InstallersData.refresh(), I have already fumbled through search\nresults of `refresh(` 100s of times - enough\n\nMopy/bash/balt.py:\nMopy/bash/basher/mod_links.py:\nMopy/bash/basher/settings_links.py:\nAppendToMenu, _decide(data->selection) - data is evil","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/61e5d48b6e4241d5127e675d6d73a3780797abb7"},{"sha":"8892a59e27e7f1b19570cb1b0c76d237ebe178ab","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Going through modInfos.getOrdered() uses - patchers logs squash - review:\n\nMopy/bash/bosh.py:\n         \"\"\"Returns masters in proper load order.\"\"\"\n-        return list(modInfos.getOrdered(list(self)))\n+        return list(modInfos.getOrdered(self))\n\nlist call was unneeded - repeated in modInfos.getOrdered().\n\npatchers: extracting common logging methods - review","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/8892a59e27e7f1b19570cb1b0c76d237ebe178ab"},{"sha":"9f27f472e0e04abc31df9fd1a9dd3b68bba0d4e1","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Avoid reloading the taglist on every refresh:\n\nUnder #123.\n\nWhen masterlist not present - given that most Oblivion users did not use\nLOOT this should have been more apparent in Oblivion.\n\nEDIT: correct exception chaining, see\nhttp://stackoverflow.com/a/1350981/281545\n\nTested with:\n```\n         try:\n             self.tagCache = {}\n+            raise loot.LootError(99)\n             lootDb.Load(self.tagList.s)\n         except loot.LootError as e:\n             raise bolt.BoltError, (u'An error occurred while parsing '\n```\n\nhence the small corrections in GetLastErrorDetails(). Took the\nopportunity to correct the imports too.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/9f27f472e0e04abc31df9fd1a9dd3b68bba0d4e1"},{"sha":"aaceab0015a29d4c789ba05b51970626cca62d7f","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Common code refactoring in anneal/uninstall:\n\nMay also help with #93\n_filter() deserves a better name and comments\n_removeFiles() renamed to make clear it is private\n`.data` pruning\nshadowing warnings","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/aaceab0015a29d4c789ba05b51970626cca62d7f"},{"sha":"4d872ab4fd53da6a8034852780dd1dc1ffe313b9","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Renames and nitpick around refresh calls:\n\nresetMTimes: I need to readily pin uses of _ModInfos_ one\n\nRenamed non DataDict refreshes - now I only have 50 occurences of\n`refresh(` in the code to skim through.\n\nMopy/bash/basher/installer_links.py:\nanother RefreshUIMods/RefreshData combo - have it in one place\n\nMopy/bash/basher/mod_links.py:\nminimal wrapping","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/4d872ab4fd53da6a8034852780dd1dc1ffe313b9"},{"sha":"787eafe3b49f1f6997f26f4cb28241a3ce15841b","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"BAIN: Installing a mod last when mod times are used:\n\nPrevious code would install at an arbitrary position and might give rise\nto time conflicts","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/787eafe3b49f1f6997f26f4cb28241a3ce15841b"},{"sha":"a1bf3ce715e89e5a4aa93038a6cd6f017d20db47","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"WIP: fleshing out the caches\n\nFix for Plugins cache not being updated correctly:\n\nDeleting mods outside Bash and then running Bash would crash.\nLong story short: KeyError in LoadOrder.__init__ cause I passed an\nempty loadOrder and tried to order active with it. It would raise\ncausing plugins.lord never being set in plugins.refresh() leading to\nAttributeError:\n\nTraceback (most recent call last):\n  File \"Wrye Bash Launcher.pyw\", line 88, in <module>\n\tbash.main()\n  File \"bash\\bash.py\", line 465, in main\n\tframe = app.Init() # Link.Frame is set here !\n  File \"bash\\basher\\__init__.py\", line 4339, in Init\n\tself.InitData(progress)\n  File \"bash\\basher\\__init__.py\", line 4370, in InitData\n\tbosh.modInfos.refresh() #\n  File \"bash\\bosh.py\", line 4220, in refresh\n\thasChanged += self.plugins.refresh(forceRefresh=hasChanged)\n  File \"bash\\bosh.py\", line 2948, in wrapper\n\targs[0].lord.loadOrder), list(args[0].lord.activeOrdered)\nAttributeError: 'NoneType' object has no attribute 'loadOrder'\n\nThis was masking the original exception hence the added e variable.\n\nTest with:\n\ndef GetLo(cached=False):\n+    raise Exception('TEST')\n     if not cached or _current_lo is __empty: _updateCache()\n\nAdded comments.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/a1bf3ce715e89e5a4aa93038a6cd6f017d20db47"},{"sha":"870a986af6809af1f867fc92e11568abafe22184","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Fix for Bash not updating loadorder.txt:\n\n- when deleting a mod outside Bash - introduced in\n6822b85a710a71737b973d01ea9517e19c3671a9...\n\nAdding plugins I have no way (in liblo 4) to update loadorder.txt - must\npatch the dll.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/870a986af6809af1f867fc92e11568abafe22184"},{"sha":"d7079d3c91257c57c20f7c0dcb771e34bb8aedb9","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Bin load_order.py import in basher/files_links.py:\n\nNow load_order is only used inside Plugins and ModInfos - good. Still\nneeded to encapsulate further and usingTextFile() must be buried inside\nload_order.py - client code should not care. This is related to #210\n(so `_append(self, window): return not bosh.modInfos.usingTxtFile()`\nis dropped) and also to moving the conflicts stuff inside LoadOrder\nclass.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/d7079d3c91257c57c20f7c0dcb771e34bb8aedb9"},{"sha":"490e678d2cec8c325ea94f0b88ba0ef40f64b685","author":{"email":"4940bdc6f784780ad32bf9f03596977cf7f253eb@gmail.com","name":"MrD"},"message":"Merge branch 'utumno-123-regressions-nitpick-taglist' into dev:\n\nFixing couple minor regressions introduced by latest merge (notably the\none on deleted files reported by @Sharlikran in #187).\nVarious preformance fixups - notably avoid reloading the taglist\non every refresh.\nA lot of internal code nitpick to clean the code around refresh()\n\nPositive line count - includes a fair amount of wrapping long lines.","distinct":true,"url":"https://api.github.com/repos/wrye-bash/wrye-bash/commits/490e678d2cec8c325ea94f0b88ba0ef40f64b685"}]}