[2.0.0] - 2021-08-24
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 tocheck_all
. - Added new configuration option
pycodestyle-ignore
to customize the pycodestyle errors checked bypep8-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 passingoutput='pyta_report.html'
to calls tocheck_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 toinvalid-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; useoutput-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.