Skip to main content

py3kwarn

Build status Test coverage status

py3kwarn is a small wrapper around lib2to3 to help write Python3 compatible code. It provides flake8-style warning messages.

See also:

Pull requests are welcome!

Installation

Supports Python 2.6, 2.7, and 3.3+

$ pip install py3kwarn

…or to install from the git repository:

$ pip install -e git+git://github.com/liamcurry/py3kwarn.git#egg=py3kwarn

Usage with vim

You can use py3kwarn with syntastic. If you want to use py3kwarn with another syntax checker (like flake8), then you will have to add this to your vim config:

let g:syntastic_python_checkers=['flake8', 'py3kwarn']

Usage from the command line

$ py3kwarn example.py
example.py:2:1: PY3K (FixApply) apply(hello, args, kwargs) -> hello(*args, **kwargs)
example.py:5:1: PY3K (FixBasestring) basestring -> str
example.py:11:1: PY3K (FixCallable) callable('hello') -> isinstance('hello', collections.Callable)
example.py:15:1: PY3K (FixDict) d.iteritems(); -> iter(d.items());
example.py:16:1: PY3K (FixDict) d.viewvalues(); -> d.values();
example.py:19:1: PY3K (FixExcept) try:import asdf;except E, T:pass; -> try:import asdf;except E as T:pass;
example.py:25:1: PY3K (FixExec) exec code in ns1, ns2; -> exec(code, ns1, ns2);
example.py:28:1: PY3K (FixExecfile) execfile('test.py') -> exec(compile(open('test.py').read(), 'test.py', 'exec'))
example.py:31:1: PY3K (FixFilter) filter(lambda x: x, [1, 2, 3]) -> [x for x in [1, 2, 3] if x]
example.py:44:1: PY3K (FixHasKey) d.has_key('foobar') -> 'foobar' in d
example.py:56:1: PY3K (FixInput) input('FixInput') -> eval(input('FixInput'))
example.py:59:1: PY3K (FixIntern) intern(s) -> sys.intern(s)
example.py:66:1: PY3K (FixItertoolsImports) from itertools import ->
example.py:67:1: PY3K (FixItertoolsImports) from itertools import; ->
example.py:68:1: PY3K (FixItertoolsImports) from itertools import; ->
example.py:72:1: PY3K (FixUnicode) u'Hello World' -> 'Hello World'

Modifying code automatically

Problems can be fixed via py3kwarn2to3:

$ py3kwarn2to3 --write example.py

Testing

Testing can be done with make test. py3kwarn also supports tox. This enables quickly testing changes in many versions of python. Take a look at the tox.ini file for more details.

Contributing

To contribute, fork the repo and clone to your local machine.

Create a virtual environment and

pip install -r requirements_dev.txt

Then just make a pull request with the issues you’ve fixed!

TODO

  • Friendlier messages.

  • A flake8 extension.

  • Use argparse to add smarter options.

  • Flags to ignore certain errors

  • Compatibility mode, where warning messages provide suggestions to write forwards compatible code. Make this the default.

  • Make it faster. Right now it is quite slow compared to other syntax checkers. Major refactoring may be necessary.

Metadata

Release files for py3kwarn 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py3kwarn 0.4.1
File Size Uploaded
py3kwarn-0.4.1.tar.gz 92.4 kB Details

Release files / py3kwarn-0.4.1.tar.gz

Download URL py3kwarn-0.4.1.tar.gz
Size 92.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6d24cea4d5c8ae5391f11c390889cc9634d71c3fa7ffc6f1c3f45b7bc7732fc7
BLAKE2b-256 checksum
How to use checksums
a6fc3aeae2350e4e6c94d78742f4b7ab3afd99ccc1841ee573ada398b4a194ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

This release

0.4.1 This release

1 release file

0.4

1 release file

0.3

1 release file

0.2.3

1 release file

0.2.0

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page