Repository  -  API  -  Source


  • Project renamed as it


  • Project-local config files
  • Project-local plugins with ? prefix
  • inspectortiger.server package for Inspector Web API
  • Refactorment of internal/public run API (prev aka inspects module) (#18)
  • Design of new Session API (#18)
  • Renaming of Upgrade (hard to say) and General (doesn't look important) to upgrade & general
  • Constant check with True/False/1/0/1.0/0.0 fixed (#20)
  • --serial for running hooks by serial.
  • --show-plugins for showing active running plugins.
  • Plugin.direct_load for directly loading plugins without buffering.
  • Plugin.apply for marking handlers with belonged plugins without buffering.
  • Session.load_plugin for loading a single plugin (load_plugins for multiple)
  • Session.plugins for list of loaded active plugins.
  • CORS support for server
  • contextlib.suppress(SomeException) instead of try: something except SomeException: pass (#21)
  • Remove community plugin support because lack of maintenance
  • Tests now uses ast.unparse if available


October 10, 2019


  • Pass db reference to TREE_TRANSFORMERs
  • Remove old-style ini configs (#4)
  • Implement JSON configuration files (#4)
  • Refactor plugin loading system (#4)
  • Implement logging system (#7)
  • Remove annotation support
  • Python3.7 support!!!!
  • Buffered imports with Inspector.buffer
  • @Plugin.require decorator for defining dependencies
  • inactive and python_version fields to Plugin object
  • Python-version bound plugins with specifying __py_version__
  • Outputs are in a simple human readable form instead of JSON
  • configmanager module renamed as config_manager
  • Debug mode with --debug
  • Use conast if available
  • Cache __getattr__ calls
  • Column offset to reports
  • Move traverse_path to utils
  • Union[Type, None] replacement warning for Optional[Type]
  • enumerate handler for for x in range(len(a)): a[x]
  • use_comprehension handler
  • alphabet_constant handler
  • map_use_comprehension handler
  • unreachable-except moved inside General


February 10, 2019
  • Fixed typo that caused crash of command line tool


February 10, 2019
  • Handler priority system with utils.Priority decorator
  • New event (utils.Events.NODE_FINALIZE) for doing work after all handlers called and node traversed
  • Instead of reportme, reports are now in JSON format (#2)
  • Severity level system removed (eg @Level.AVG) (#3)
  • Report grouping changed to plugins instead of levels (#3)
  • Event registration changed to on_event instead of register
  • Now both register and on_event can take multiple triggerers
  • An option to not exit with 1 on fails (--fail-exit)
  • A (which automatically generated by bin/ from pre-commit) added
  • Inspector initalisation with a filename and a ast.AST allowed
  • Report annotation implemented if Inspector is initalized with filename and script ran with --annotate
  • New event type, TREE_TRANSFORMER, which takes ast.Module and returns a modified version before the actual check starts
  • Instead of whitelisting, use blacklisting in plugin loading (for consistency).
  • Context management improved with scope finalizing
  • Implemented a handler for old super usage with arguments
  • Implemented PEP 601
  • New plugin for adding references to child nodes about their parent nodes
  • Unimport plugin is updated for unimport@v0.1