https://github.com/xnuinside/pythons-language-tools-list
Supported list of Python Packages and articles that allows you to work with language on different levels - tokens, CST, AST and etc
https://github.com/xnuinside/pythons-language-tools-list
Last synced: 5 months ago
JSON representation
Supported list of Python Packages and articles that allows you to work with language on different levels - tokens, CST, AST and etc
- Host: GitHub
- URL: https://github.com/xnuinside/pythons-language-tools-list
- Owner: xnuinside
- Created: 2020-03-14T11:01:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-14T11:02:19.000Z (over 6 years ago)
- Last Synced: 2025-04-06T16:18:15.010Z (about 1 year ago)
- Size: 2.93 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pythons-language-tools-list
Supported list of Python Packages and articles that allows you to work with language on different levels - tokens, CST, AST and etc
TODO: need clean up list and structure
https://github.com/davidhalter/jedi
Jedi - an awesome autocompletion/static analysis library for Python
https://jedi.readthedocs.io/en/latest/
Features:
autocompletion
getting types based on docstrings (4 types) and type annotations
Parso is a Python parser that supports error recovery and round-trip parsing for different Python versions (in multiple Python versions). Parso is also able to list multiple syntax errors in your python file.
Parso has been battle-tested by jedi. It was pulled out of jedi to be useful for other projects as well.
Was part of Jedi, separated in package
https://github.com/davidhalter/parso
https://parso.readthedocs.io/en/latest/
Features:
Parso consists of a small API to parse Python and analyse the syntax tree.
Language services:
https://github.com/palantir/python-language-server (use Jedi inside, so if you want some usage samples - welcome)
Rope
https://github.com/python-rope/rope/blob/master/docs/library.rst#quick-start
https://github.com/python-rope/rope
python refactoring library ...
Samples of how to work with language tools:
https://github.com/PyCQA/pyflakes/blob/master/pyflakes/checker.py
https://github.com/PyCQA/mccabe/blob/master/mccabe.py
Linters:
Tool Category Description
Mccabe Analytical Checks McCabe complexity
Radon Analytical Analyzes code for various metrics (lines of code, complexity, and so on)
Black Formatter Formats Python code without compromise
Isort Formatter Formats imports by sorting alphabetically and separating into sections
Pylint Logical & Stylistic Checks for errors, tries to enforce a coding standard, looks for code smells
PyFlakes Logical Analyzes programs and detects various errors
pycodestyle Stylistic Checks against some of the style conventions in PEP 8
pydocstyle Stylistic Checks compliance with Python docstring conventions
Bandit Logical Analyzes code to find common security issues
MyPy Logical Checks for optionally-enforced static types
https://github.com/timothycrosley/isort
https://github.com/timothycrosley/isort/blob/develop/pyproject.toml
https://github.com/psf/black/blob/master/black.py
App dirs
https://pypi.org/project/appdirs/
https://radon.readthedocs.io/en/latest/
Radon is a Python tool which computes various code metrics. Supported metrics are:
* raw metrics: SLOC, comment lines, blank lines, &c.
* Cyclomatic Complexity (i.e. McCabe’s Complexity)
* Halstead metrics (all of them)
* the Maintainability Index (a Visual Studio metric)
Radon can be used either from the command line or programm
https://pivotfinland.com/pytest-sugar/
Bytecode
https://pypi.org/project/xdis/
https://github.com/rocky/python-xasm
Parsers language
An Earley Algorithm Parser toolkit.
https://github.com/rocky/python-spark/tree/master/example
https://pypi.org/project/uncompyle6/
Meta http://srossross.github.io/Meta/html/index.html
Python code to xml https://pythonhosted.org/pyRegurgitator/
Pyupgrade https://github.com/asottile/pyupgrade/blob/master/pyupgrade.py
Auto type annotation
https://pypi.org/project/MonkeyType/ - by trace
Julia Volkova 12:39 PM
good tool if you have project with tests, but without type annotations https://pypi.org/project/MonkeyType/ package catch trace when you run your code (like in tests) with passing inside args and based on it generated type annotations and add it to code, and article about it https://instagram-engineering.com/let-your-code-type-hint-itself-introducing-open-source-monkeytype-a855c7284881 (also similar tools +-: https://github.com/dropbox/pyannotate, https://github.com/ambv/retype) (edited)
LibCST https://github.com/Instagram/LibCST
https://github.com/gyermolenko/awesome-python-ast
Bowler
https://github.com/facebookincubator/bowler
https://github.com/PyCQA/redbaron
https://github.com/Yelp/undebt
https://github.com/facebook/codemod
https://github.com/lihaoyi/macropy
https://github.com/llllllllll/codetransformer
https://github.com/hhatto/autopep8
https://github.com/PyCQA/baron