Skip to content

Commit

Permalink
Merge pull request #1662 from PyCQA/issue/1661
Browse files Browse the repository at this point in the history
Issue #1661: Add wemake profile
  • Loading branch information
timothycrosley committed Feb 10, 2021
2 parents 05cf7ae + 22d2cc7 commit bc22ad9
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -8,6 +8,7 @@ Find out more about isort's release policy [here](https://pycqa.github.io/isort/
- Fixed #1631: as import comments can in some cases be duplicated.
- Implemented #1648: Export MyPY type hints.
- Implemented #1641: Identified import statements now return runnable code.
- Implemented #1661: Added "wemake" profile.

### 5.7.0 December 30th 2020
- Fixed #1612: In rare circumstances an extra comma is added after import and before comment.
Expand Down
8 changes: 8 additions & 0 deletions docs/configuration/profiles.md
Expand Up @@ -76,3 +76,11 @@ To use any of the listed profiles, use `isort --profile PROFILE_NAME` from the c
- **force_grid_wrap**: `0`
- **use_parentheses**: `True`
- **line_length**: `100`

#wemake


- **multi_line_output**: `3`
- **include_trailing_comma**: `True`
- **use_parentheses**: `True`
- **line_length**: `80`
7 changes: 7 additions & 0 deletions isort/profiles.py
Expand Up @@ -55,6 +55,12 @@
"use_parentheses": True,
"line_length": 100,
}
wemake = {
"multi_line_output": 3,
"include_trailing_comma": True,
"use_parentheses": True,
"line_length": 80,
}

profiles: Dict[str, Dict[str, Any]] = {
"black": black,
Expand All @@ -65,4 +71,5 @@
"plone": plone,
"attrs": attrs,
"hug": hug,
"wemake": wemake,
}
87 changes: 87 additions & 0 deletions tests/unit/profiles/test_wemake.py
@@ -0,0 +1,87 @@
"""A set of test cases for the wemake isort profile.
Snippets are taken directly from the wemake-python-styleguide project here:
https://github.com/wemake-services/wemake-python-styleguide
"""
from functools import partial

from ..utils import isort_test

wemake_isort_test = partial(
isort_test, profile="wemake", known_first_party=["wemake_python_styleguide"]
)


def test_wemake_snippet_one():
wemake_isort_test(
"""
import ast
import tokenize
import traceback
from typing import ClassVar, Iterator, Sequence, Type
from flake8.options.manager import OptionManager
from typing_extensions import final
from wemake_python_styleguide import constants, types
from wemake_python_styleguide import version as pkg_version
from wemake_python_styleguide.options.config import Configuration
from wemake_python_styleguide.options.validation import validate_options
from wemake_python_styleguide.presets.types import file_tokens as tokens_preset
from wemake_python_styleguide.presets.types import filename as filename_preset
from wemake_python_styleguide.presets.types import tree as tree_preset
from wemake_python_styleguide.transformations.ast_tree import transform
from wemake_python_styleguide.violations import system
from wemake_python_styleguide.visitors import base
VisitorClass = Type[base.BaseVisitor]
"""
)


def test_wemake_snippet_two():
wemake_isort_test(
"""
from collections import defaultdict
from typing import ClassVar, DefaultDict, List
from flake8.formatting.base import BaseFormatter
from flake8.statistics import Statistics
from flake8.style_guide import Violation
from pygments import highlight
from pygments.formatters import TerminalFormatter
from pygments.lexers import PythonLexer
from typing_extensions import Final
from wemake_python_styleguide.version import pkg_version
#: That url is generated and hosted by Sphinx.
DOCS_URL_TEMPLATE: Final = (
'https://wemake-python-stylegui.de/en/{0}/pages/usage/violations/'
)
"""
)


def test_wemake_snippet_three():
wemake_isort_test(
"""
import ast
from pep8ext_naming import NamingChecker
from typing_extensions import final
from wemake_python_styleguide.transformations.ast.bugfixes import (
fix_async_offset,
fix_line_number,
)
from wemake_python_styleguide.transformations.ast.enhancements import (
set_if_chain,
set_node_context,
)
@final
class _ClassVisitor(ast.NodeVisitor): ...
"""
)

0 comments on commit bc22ad9

Please sign in to comment.