Skip to content

[2.0.0] - 2021-08-24

Compare
Choose a tag to compare
@david-yz-liu david-yz-liu released this 24 Aug 21:01

PythonTA's adopting semantic versioning as of this release, so we've bumped the version to 2.0.

Enhancements

  • Added basic CLI. Users can now run PythonTA in the command line either as a standalone script ($ python_ta my_file) or as a Python module ($ python -m python_ta my_file).
  • Added new documentation website, hosted at https://www.cs.toronto.edu/~david/pyta.
  • Added support for relative paths in output argument to check_all.
  • Added new configuration option pycodestyle-ignore to customize the pycodestyle errors checked by pep8-errors.

Changes

  • Changed HTML report template to make it more user-friendly.
  • Changed default HTML report output: by default now loads in a web browser without creating a temporary file (previously, pyta_report.html). This file can still be generated by passing output='pyta_report.html' to calls to check_all.
  • Added new output-format option to specify reporter class.
  • Changed API of PythonTA custom reporters.
  • Updated to Pylint v2.10. See "New checks" below for the new checks enabled by default.
  • Renamed for-target-subscript checker to invalid-for-target, and added support checking for loop targets that are attributes (e.g., for obj.x in [1, 2, 3]). (#701)

Bug fixes

  • Fixed bug with python_ta.contracts: do not check representation invariants when a helper method is called within an initializer.
  • Fixed bug with python_ta.contracts: do not check class representation invariants in the initializer of a superclass.
  • Fixed bug with shadowing-in-comprehension checker: do not treat _ as a shadowed variable.
  • Fixed bug with unnecessary-indexing checker: handle case where loop variable is first assigned before the for loop. (#699)
  • Fixed bug where PythonTA would crash on files that used encodings other than UTF-8. PythonTA now reports an error and displays the invalid characters to the user.

Deprecations

  • Deprecated pyta-reporter option; use output-format instead.

New checkers

Custom checkers:

  • missing-space-in-doctest: Flag when a doctest prompt (>>>) is not followed by a space. E.g., >>>my_function(1).

Pylint checkers v2.10:

  • forgotten-debug-statement
  • format-string-without-interpolation
  • use-dict-literal
  • use-list-literal

Pylint checkers v2.9:

  • consider-using-from-import
  • unnecessary-dict-index-lookup

Pylint checkers v2.8:

  • consider-using-with

For more information on these checkers, please see the Pylint release notes. Note that the above list only contains the Pylint checkers enabled by default in PythonTA.

Internal

  • Adopted semantic versioning.
  • Created a Changelog.
  • Added pre-commit hooks using pre-commit, black, isort, and prettier.
  • Adopted Sphinx for documentation generation, using a Read the Docs template.
  • Adopted setup.cfg file for configuration.