How to use the hacking.core.flake8ext function in hacking

To help you get started, we’ve selected a few hacking examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github openstack / masakari-monitors / masakarimonitors / hacking / checks.py View on Github external
@core.flake8ext
def yield_followed_by_space(logical_line):
    """Yield should be followed by a space.

    Yield should be followed by a space to clarify that yield is
    not a function. Adding a space may force the developer to rethink
    if there are unnecessary parentheses in the written code.

    Not correct: yield(x), yield(a, b)
    Correct: yield x, yield (a, b), yield a, b

    M303
    """
    if yield_not_followed_by_space.match(logical_line):
        yield (0,
               "M303: Yield keyword should be followed by a space.")
github openstack / magnum / magnum / hacking / checks.py View on Github external
@core.flake8ext
def assert_true_isinstance(logical_line):
    """Check for assertTrue(isinstance(a, b)) sentences

    M316
    """
    if assert_true_isinstance_re.match(logical_line):
        yield (0, "M316: assertTrue(isinstance(a, b)) sentences not allowed")
github openstack / hacking / hacking / checks / docstrings.py View on Github external
@core.flake8ext
def hacking_docstring_start_space(physical_line, previous_logical, tokens):
    r"""Check for docstring not starting with space.

    OpenStack HACKING guide recommendation for docstring:
    Docstring should not start with space

    Okay: def foo():\n    '''This is good.'''
    Okay: def foo():\n    r'''This is good.'''
    Okay: def foo():\n    a = ''' This is not a docstring.'''
    Okay: def foo():\n    pass\n    ''' This is not.'''
    H401: def foo():\n    ''' This is not.'''
    H401: def foo():\n    r''' This is not.'''
    """
    docstring = is_docstring(tokens, previous_logical)
    if docstring:
        start, start_triple = _find_first_of(docstring, START_DOCSTRING_TRIPLE)
github openstack / magnum / magnum / hacking / checks.py View on Github external
@core.flake8ext
def assert_equal_in(logical_line):
    """Check for assertEqual(True|False, A in B), assertEqual(A in B, True|False)

    M338
    """
    res = (assert_equal_in_start_with_true_or_false_re.search(logical_line) or
           assert_equal_in_end_with_true_or_false_re.search(logical_line))
    if res:
        yield (0, "M338: Use assertIn/NotIn(A, B) rather than "
                  "assertEqual(A in B, True/False) when checking collection "
github openstack / zun / zun / hacking / checks.py View on Github external
@core.flake8ext
def use_timeutils_utcnow(logical_line, filename):
    # tools are OK to use the standard datetime module
    if "/tools/" in filename:
        return

    msg = "Z310: timeutils.utcnow() must be used instead of datetime.%s()"
    datetime_funcs = ['now', 'utcnow']
    for f in datetime_funcs:
        pos = logical_line.find('datetime.%s' % f)
        if pos != -1:
            yield (pos, msg % f)
github openstack / keystoneauth / keystoneauth1 / hacking / checks.py View on Github external
@core.flake8ext
def check_oslo_namespace_imports(logical_line, blank_before, filename):
    oslo_namespace_imports = re.compile(
        r"(((from)|(import))\s+oslo\.)|(from\s+oslo\s+import\s+)")

    if re.match(oslo_namespace_imports, logical_line):
        msg = ("K333: '%s' must be used instead of '%s'.") % (
            logical_line.replace('oslo.', 'oslo_'),
            logical_line)
        yield(0, msg)
github openstack / searchlight / searchlight / hacking / checks.py View on Github external
@core.flake8ext
def assert_equal_type(logical_line):
    """Check for assertEqual(type(A), B) sentences

    SL317
    """
    if asse_equal_type_re.match(logical_line):
        yield (0, "SL317: assertEqual(type(A), B) sentences not allowed")
github openstack / cyborg / cyborg / hacking / checks.py View on Github external
@core.flake8ext
def assert_equal_in(logical_line):
    """Check for assertEqual(True|False, A in B), assertEqual(A in B, True|False)

    M338
    """
    res = (assert_equal_in_start_with_true_or_false_re.search(logical_line) or
           assert_equal_in_end_with_true_or_false_re.search(logical_line))
    if res:
        yield (0, "M338: Use assertIn/NotIn(A, B) rather than "
                  "assertEqual(A in B, True/False) when checking collection "
github openstack / osprofiler / osprofiler / hacking / checks.py View on Github external
@core.flake8ext
def check_raises(physical_line, filename):
    """Check raises usage

    N354
    """

    ignored_files = ["./tests/unit/test_hacking.py",
                     "./tests/hacking/checks.py"]
    if filename not in ignored_files:
        if re_raises.search(physical_line):
            return (0, "N354 ':Please use ':raises Exception: conditions' "
                       "in docstrings.")