wafo-project/pywafo

View on GitHub
src/wafo/graphutil.py

Summary

Maintainability
F
3 days
Test Coverage

Try, Except, Pass detected.
Open

    except Exception:
Severity: Info
Found in src/wafo/graphutil.py by bandit

Cyclomatic complexity is too high in function cltext. (6)
Open

def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0, figure=None,
           axis=None):
    '''
    Places contour level text in the current window

Severity: Minor
Found in src/wafo/graphutil.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Cyclomatic complexity is too high in function tallibing. (6)
Open

def tallibing(*args, **kwds):
    '''
    TALLIBING  Display numbers on field-plot

    CALL h=tallibing(x,y,n,size,color)
Severity: Minor
Found in src/wafo/graphutil.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Cyclomatic complexity is too high in function _parse_data. (6)
Open

def _parse_data(*args, **kwds):
    nargin = len(args)
    data = np.atleast_2d(args[-1]).copy()
    M, N = data.shape
    if nargin == 1:
Severity: Minor
Found in src/wafo/graphutil.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Function cltext has 8 arguments (exceeds 7 allowed). Consider refactoring.
Open

def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0, figure=None,
Severity: Major
Found in src/wafo/graphutil.py - About 35 mins to fix

    Function "cltext" has 8 parameters, which is greater than the 7 authorized.
    Open

    def cltext(levels, percent=False, n=4, xs=0.036, ys=0.94, zs=0, figure=None,
               axis=None):
    Severity: Major
    Found in src/wafo/graphutil.py by sonar-python

    A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

    Noncompliant Code Example

    With a maximum number of 4 parameters:

    def do_something(param1, param2, param3, param4, param5):
        ...
    

    Compliant Solution

    def do_something(param1, param2, param3, param4):
        ...
    

    TODO found
    Open

        # TODO : Make it work like legend does (but without the box): include
    Severity: Minor
    Found in src/wafo/graphutil.py by fixme

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        xss = xint[0] + xs * (xint[1] - xint[0])
    Severity: Major
    Found in src/wafo/graphutil.py and 1 other location - About 3 hrs to fix
    src/wafo/graphutil.py on lines 131..131

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 41.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        yss = yint[0] + ys * (yint[1] - yint[0])
    Severity: Major
    Found in src/wafo/graphutil.py and 1 other location - About 3 hrs to fix
    src/wafo/graphutil.py on lines 130..130

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 41.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Identical blocks of code found in 5 locations. Consider refactoring.
    Open

    def test_docstrings():
        import doctest
        print('Testing docstrings in %s' % __file__)
        doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE)
    Severity: Major
    Found in src/wafo/graphutil.py and 4 other locations - About 2 hrs to fix
    src/wafo/objects.py on lines 2613..2616
    src/wafo/spectrum/models.py on lines 2157..2160
    src/wafo/wave_theory/core.py on lines 587..590
    src/wafo/wavemodels.py on lines 261..264

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 29.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 16 locations. Consider refactoring.
    Open

        if figure is None:
            figure = plotbackend.gcf()
    Severity: Major
    Found in src/wafo/graphutil.py and 15 other locations - About 1 hr to fix
    src/wafo/containers.py on lines 230..231
    src/wafo/containers.py on lines 312..313
    src/wafo/containers.py on lines 351..352
    src/wafo/graphutil.py on lines 39..40
    src/wafo/graphutil.py on lines 119..120
    src/wafo/graphutil.py on lines 121..122
    src/wafo/graphutil.py on lines 210..211
    src/wafo/misc.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 544..545
    src/wafo/stats/estimation.py on lines 1449..1450
    src/wafo/stats/estimation.py on lines 1467..1468
    src/wafo/stats/estimation.py on lines 1493..1494
    src/wafo/stats/estimation.py on lines 1545..1546
    src/wafo/stats/estimation.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 1592..1593

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 19.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 16 locations. Consider refactoring.
    Open

        if axis is None:
            axis = figure.gca()
    Severity: Major
    Found in src/wafo/graphutil.py and 15 other locations - About 1 hr to fix
    src/wafo/containers.py on lines 230..231
    src/wafo/containers.py on lines 312..313
    src/wafo/containers.py on lines 351..352
    src/wafo/graphutil.py on lines 37..38
    src/wafo/graphutil.py on lines 119..120
    src/wafo/graphutil.py on lines 121..122
    src/wafo/graphutil.py on lines 210..211
    src/wafo/misc.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 544..545
    src/wafo/stats/estimation.py on lines 1449..1450
    src/wafo/stats/estimation.py on lines 1467..1468
    src/wafo/stats/estimation.py on lines 1493..1494
    src/wafo/stats/estimation.py on lines 1545..1546
    src/wafo/stats/estimation.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 1592..1593

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 19.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 16 locations. Consider refactoring.
    Open

        if axis is None:
            axis = figure.gca()
    Severity: Major
    Found in src/wafo/graphutil.py and 15 other locations - About 1 hr to fix
    src/wafo/containers.py on lines 230..231
    src/wafo/containers.py on lines 312..313
    src/wafo/containers.py on lines 351..352
    src/wafo/graphutil.py on lines 37..38
    src/wafo/graphutil.py on lines 39..40
    src/wafo/graphutil.py on lines 119..120
    src/wafo/graphutil.py on lines 210..211
    src/wafo/misc.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 544..545
    src/wafo/stats/estimation.py on lines 1449..1450
    src/wafo/stats/estimation.py on lines 1467..1468
    src/wafo/stats/estimation.py on lines 1493..1494
    src/wafo/stats/estimation.py on lines 1545..1546
    src/wafo/stats/estimation.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 1592..1593

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 19.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 16 locations. Consider refactoring.
    Open

        if axis is None:
            axis = plotbackend.gca()
    Severity: Major
    Found in src/wafo/graphutil.py and 15 other locations - About 1 hr to fix
    src/wafo/containers.py on lines 230..231
    src/wafo/containers.py on lines 312..313
    src/wafo/containers.py on lines 351..352
    src/wafo/graphutil.py on lines 37..38
    src/wafo/graphutil.py on lines 39..40
    src/wafo/graphutil.py on lines 119..120
    src/wafo/graphutil.py on lines 121..122
    src/wafo/misc.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 544..545
    src/wafo/stats/estimation.py on lines 1449..1450
    src/wafo/stats/estimation.py on lines 1467..1468
    src/wafo/stats/estimation.py on lines 1493..1494
    src/wafo/stats/estimation.py on lines 1545..1546
    src/wafo/stats/estimation.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 1592..1593

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 19.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 16 locations. Consider refactoring.
    Open

        if figure is None:
            figure = plotbackend.gcf()
    Severity: Major
    Found in src/wafo/graphutil.py and 15 other locations - About 1 hr to fix
    src/wafo/containers.py on lines 230..231
    src/wafo/containers.py on lines 312..313
    src/wafo/containers.py on lines 351..352
    src/wafo/graphutil.py on lines 37..38
    src/wafo/graphutil.py on lines 39..40
    src/wafo/graphutil.py on lines 121..122
    src/wafo/graphutil.py on lines 210..211
    src/wafo/misc.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 544..545
    src/wafo/stats/estimation.py on lines 1449..1450
    src/wafo/stats/estimation.py on lines 1467..1468
    src/wafo/stats/estimation.py on lines 1493..1494
    src/wafo/stats/estimation.py on lines 1545..1546
    src/wafo/stats/estimation.py on lines 1569..1570
    src/wafo/stats/estimation.py on lines 1592..1593

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 19.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        dx = np.diff(x) * 0.5
    Severity: Major
    Found in src/wafo/graphutil.py and 1 other location - About 1 hr to fix
    src/wafo/markov.py on lines 383..384

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 17.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 31 locations. Consider refactoring.
    Open

        if mlab.isvector(x) or mlab.isvector(y):
            x, y = np.meshgrid(x, y)
    Severity: Major
    Found in src/wafo/graphutil.py and 30 other locations - About 55 mins to fix
    src/wafo/containers.py on lines 203..203
    src/wafo/demos.py on lines 13..13
    src/wafo/demos.py on lines 23..23
    src/wafo/integrate.py on lines 83..83
    src/wafo/interpolate.py on lines 1161..1161
    src/wafo/kdetools/gridding.py on lines 339..339
    src/wafo/kdetools/kernels.py on lines 116..116
    src/wafo/markov.py on lines 489..493
    src/wafo/misc.py on lines 494..494
    src/wafo/misc.py on lines 1334..1334
    src/wafo/misc.py on lines 2429..2429
    src/wafo/padua.py on lines 326..326
    src/wafo/padua.py on lines 475..475
    src/wafo/padua.py on lines 513..513
    src/wafo/sg_filter/demos.py on lines 418..418
    src/wafo/spectrum/models.py on lines 2099..2099
    src/wafo/spectrum/models.py on lines 2108..2108
    src/wafo/stats/_continuous_distns.py on lines 3779..3779
    src/wafo/stats/core.py on lines 495..495
    src/wafo/stats/core.py on lines 534..534
    src/wafo/stats/core.py on lines 937..937
    src/wafo/stats/estimation.py on lines 474..474
    src/wafo/stats/estimation.py on lines 482..482
    src/wafo/tests/test_gaussian.py on lines 47..47
    src/wafo/tests/test_gaussian.py on lines 154..154
    src/wafo/tests/test_misc.py on lines 546..546
    src/wafo/tests/test_misc.py on lines 556..556
    src/wafo/tests/test_misc.py on lines 569..569
    src/wafo/transform/models.py on lines 231..231
    src/wafo/transform/models.py on lines 240..240

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 15.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 18 locations. Consider refactoring.
    Open

    if __name__ == '__main__':
        test_docstrings()
    Severity: Major
    Found in src/wafo/graphutil.py and 17 other locations - About 55 mins to fix
    source/c_library/build_all.py on lines 24..25
    source/mreg/build_all.py on lines 29..30
    source/mvn/build_all.py on lines 19..20
    source/mvnprd/build_all.py on lines 25..26
    source/mvnprd/old/mvnprodcorrprb/build_all.py on lines 23..24
    source/rind2007/build_all.py on lines 31..32
    src/wafo/covariance/tests/test_covariance.py on lines 27..28
    src/wafo/interpolate.py on lines 1341..1343
    src/wafo/objects.py on lines 2619..2620
    src/wafo/spectrum/core.py on lines 4415..4416
    src/wafo/spectrum/models.py on lines 2172..2173
    src/wafo/stats/core.py on lines 1495..1497
    src/wafo/stats/estimation.py on lines 1693..1695
    src/wafo/wave_theory/core.py on lines 595..596
    src/wafo/wavemodels.py on lines 267..268
    build_package.py on lines 125..126
    setup.py on lines 209..210

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 15.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        ha1 = figure.text(xss, yss, titletxt, **titleProp)
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 55 mins to fix
    src/wafo/graphutil.py on lines 159..159

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 15.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        ha2 = figure.text(xss, yss, cltxt, **txtProp)
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 55 mins to fix
    src/wafo/graphutil.py on lines 153..153

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 15.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

        if percent:
            titletxt = 'Level curves enclosing:'
        else:
            titletxt = 'Level curves at:'
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 55 mins to fix
    src/wafo/spectrum/core.py on lines 1652..1657

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 15.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 4 locations. Consider refactoring.
    Open

            if min(y.shape) != 1:
                y = y[:, 0]
    Severity: Major
    Found in src/wafo/graphutil.py and 3 other locations - About 50 mins to fix
    src/wafo/interpolate.py on lines 388..388
    src/wafo/kdetools/gridding.py on lines 60..60
    src/wafo/kdetools/gridding.py on lines 61..61

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 14.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

            x, y = np.atleast_1d(*args[:-1])
    Severity: Major
    Found in src/wafo/graphutil.py and 2 other locations - About 45 mins to fix
    src/wafo/misc.py on lines 574..574
    src/wafo/tests/test_gaussian.py on lines 46..46

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 13.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

                except:
                    if verbose:
                        warnings.warn(msg)
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 45 mins to fix
    src/wafo/stats/core.py on lines 396..397

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 13.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

            if min(x.shape) != 1:
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 45 mins to fix
    src/wafo/graphutil.py on lines 246..246

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 13.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 22 locations. Consider refactoring.
    Open

        axis = kwds.pop('axis', None)
    Severity: Major
    Found in src/wafo/graphutil.py and 21 other locations - About 40 mins to fix
    src/wafo/containers.py on lines 202..202
    src/wafo/containers.py on lines 229..229
    src/wafo/containers.py on lines 233..233
    src/wafo/containers.py on lines 350..350
    src/wafo/containers.py on lines 353..353
    src/wafo/fig.py on lines 663..663
    src/wafo/fig.py on lines 766..766
    src/wafo/fig.py on lines 861..861
    src/wafo/objects.py on lines 2563..2563
    src/wafo/stats/_continuous_distns.py on lines 345..345
    src/wafo/stats/_continuous_distns.py on lines 346..346
    src/wafo/stats/_continuous_distns.py on lines 646..646
    src/wafo/stats/_continuous_distns.py on lines 647..647
    src/wafo/stats/_continuous_distns.py on lines 1550..1550
    src/wafo/stats/_continuous_distns.py on lines 1551..1551
    src/wafo/stats/_continuous_distns.py on lines 2933..2933
    src/wafo/stats/_continuous_distns.py on lines 2943..2943
    src/wafo/stats/_continuous_distns.py on lines 5077..5077
    src/wafo/stats/_continuous_distns.py on lines 5084..5084
    src/wafo/stats/_continuous_distns.py on lines 7704..7704
    src/wafo/stats/_continuous_distns.py on lines 7705..7705

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 12.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

            msg = "Tried to delete a non-existing {0} from {1}".format(gidtxt,
                                                                       name)
    Severity: Major
    Found in src/wafo/graphutil.py and 2 other locations - About 40 mins to fix
    src/wafo/stats/estimation.py on lines 261..261
    src/wafo/stats/estimation.py on lines 1414..1415

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 12.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 10 locations. Consider refactoring.
    Open

        charHeight = 1.0 / 33.0
    Severity: Major
    Found in src/wafo/graphutil.py and 9 other locations - About 35 mins to fix
    src/wafo/objects.py on lines 2507..2507
    src/wafo/sg_filter/demos.py on lines 312..312
    src/wafo/stats/_continuous_distns.py on lines 515..515
    src/wafo/stats/_continuous_distns.py on lines 517..517
    src/wafo/stats/estimation.py on lines 1673..1673
    src/wafo/stats/estimation.py on lines 1683..1683
    src/wafo/transform/tests/test_models.py on lines 8..8
    src/wafo/transform/tests/test_models.py on lines 21..21
    src/wafo/transform/tests/test_models.py on lines 35..35

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 11.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 6 locations. Consider refactoring.
    Open

    pcolor = getattr(plotbackend, 'pcolor', None)
    Severity: Major
    Found in src/wafo/graphutil.py and 5 other locations - About 35 mins to fix
    src/wafo/graphutil.py on lines 258..258
    src/wafo/stats/_continuous_distns.py on lines 4645..4645
    src/wafo/stats/_continuous_distns.py on lines 4647..4647
    src/wafo/stats/_continuous_distns.py on lines 4683..4683
    src/wafo/stats/_continuous_distns.py on lines 4685..4685

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 11.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 6 locations. Consider refactoring.
    Open

    pcolormesh = getattr(plotbackend, 'pcolormesh', None)
    Severity: Major
    Found in src/wafo/graphutil.py and 5 other locations - About 35 mins to fix
    src/wafo/graphutil.py on lines 257..257
    src/wafo/stats/_continuous_distns.py on lines 4645..4645
    src/wafo/stats/_continuous_distns.py on lines 4647..4647
    src/wafo/stats/_continuous_distns.py on lines 4683..4683
    src/wafo/stats/_continuous_distns.py on lines 4685..4685

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 11.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

        delete_text_object(_TALLIBING_GID, axis=axis)
    Severity: Minor
    Found in src/wafo/graphutil.py and 2 other locations - About 35 mins to fix
    src/wafo/graphutil.py on lines 134..135
    src/wafo/stats/estimation.py on lines 1659..1659

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 11.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

        try:
            delete_text_object(_CLTEXT_GID, axis=axis)
    Severity: Minor
    Found in src/wafo/graphutil.py and 2 other locations - About 35 mins to fix
    src/wafo/graphutil.py on lines 220..220
    src/wafo/stats/estimation.py on lines 1659..1659

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 11.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 25 locations. Consider refactoring.
    Open

        M, N = data.shape
    Severity: Major
    Found in src/wafo/graphutil.py and 24 other locations - About 30 mins to fix
    src/wafo/doc/tutorial_scripts/chapter5.py on lines 187..187
    src/wafo/gaussian.py on lines 335..335
    src/wafo/gaussian.py on lines 717..717
    src/wafo/kdetools/gridding.py on lines 230..230
    src/wafo/kdetools/gridding.py on lines 341..341
    src/wafo/kdetools/kdetools.py on lines 226..226
    src/wafo/kdetools/kdetools.py on lines 709..709
    src/wafo/kdetools/kdetools.py on lines 759..759
    src/wafo/kdetools/kdetools.py on lines 773..773
    src/wafo/kdetools/kdetools.py on lines 805..805
    src/wafo/kdetools/kernels.py on lines 755..755
    src/wafo/kdetools/kernels.py on lines 799..799
    src/wafo/kdetools/kernels.py on lines 885..885
    src/wafo/kdetools/kernels.py on lines 999..999
    src/wafo/kdetools/kernels.py on lines 1103..1103
    src/wafo/kdetools/kernels.py on lines 1230..1230
    src/wafo/misc.py on lines 1188..1188
    src/wafo/misc.py on lines 2885..2885
    src/wafo/spectrum/core.py on lines 4114..4114
    src/wafo/stats/core.py on lines 951..951
    src/wafo/stats/core.py on lines 952..952
    src/wafo/stats/core.py on lines 953..953
    src/wafo/stats/core.py on lines 1253..1253
    src/wafo/stats/core.py on lines 1353..1353

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 10.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

    def delete_text_object(gidtxt, figure=None, axis=None, verbose=False):
    Severity: Minor
    Found in src/wafo/graphutil.py and 1 other location - About 30 mins to fix
    src/wafo/stats/estimation.py on lines 1426..1426

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 10.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    There are no issues that match your filters.

    Category
    Status