fossasia/knittingpattern

View on GitHub

Showing 166 of 166 total issues

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

    def test_i_1_0_consumed(self, i_1, i_2):
        assert i_1[0].consuming_instructions == [i_2[0]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_1_3_consumed(self, i_1, i_2):
        assert i_1[3].consuming_instructions == [i_2[3]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_3_1_produced(self, i_2, i_3):
        assert i_3[1].producing_instructions == [i_2[1]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_3_0_consumed(self, i_3, i_4):
        assert i_3[0].consuming_instructions == [i_4[1]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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

def test_other_color_is_white(pattern):
    assert pattern.rows[1].instructions[1].color == "white"
Severity: Minor
Found in knittingpattern/convert/test/test_png_to_knittingpattern.py and 2 other locations - About 35 mins to fix
knittingpattern/convert/test/test_png_to_knittingpattern.py on lines 47..48
knittingpattern/convert/test/test_png_to_knittingpattern.py on lines 55..56

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_2_1_produced(self, i_1, i_2):
        assert i_2[1].producing_instructions == [i_1[1]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_4_3_produced(self, i_3, i_4):
        assert i_4[3].producing_instructions == [i_3[2]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_3_2_produced(self, i_2, i_3):
        assert i_3[2].producing_instructions == [i_2[2]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 233..234
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 20 locations. Consider refactoring.
Open

    def test_i_3_2_consumed(self, i_3, i_4):
        assert i_3[2].consuming_instructions == [i_4[3]]
Severity: Major
Found in knittingpattern/convert/test/test_layout.py and 19 other locations - About 35 mins to fix
knittingpattern/convert/test/test_layout.py on lines 168..169
knittingpattern/convert/test/test_layout.py on lines 171..172
knittingpattern/convert/test/test_layout.py on lines 174..175
knittingpattern/convert/test/test_layout.py on lines 177..178
knittingpattern/convert/test/test_layout.py on lines 182..183
knittingpattern/convert/test/test_layout.py on lines 185..186
knittingpattern/convert/test/test_layout.py on lines 188..189
knittingpattern/convert/test/test_layout.py on lines 191..192
knittingpattern/convert/test/test_layout.py on lines 199..200
knittingpattern/convert/test/test_layout.py on lines 202..203
knittingpattern/convert/test/test_layout.py on lines 205..206
knittingpattern/convert/test/test_layout.py on lines 216..217
knittingpattern/convert/test/test_layout.py on lines 219..220
knittingpattern/convert/test/test_layout.py on lines 222..223
knittingpattern/convert/test/test_layout.py on lines 227..228
knittingpattern/convert/test/test_layout.py on lines 230..231
knittingpattern/convert/test/test_layout.py on lines 241..242
knittingpattern/convert/test/test_layout.py on lines 244..245
knittingpattern/convert/test/test_layout.py on lines 247..248

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 33.

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 relative_folder(self, module, folder):
        """Load a folder located relative to a module and return the processed
        result.

        :param str module: can be
Severity: Minor
Found in knittingpattern/Loader.py and 1 other location - About 30 mins to fix
knittingpattern/Loader.py on lines 122..136

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 32.

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 relative_file(self, module, file):
        """Load a file relative to a module.

        :param str module: can be

Severity: Minor
Found in knittingpattern/Loader.py and 1 other location - About 30 mins to fix
knittingpattern/Loader.py on lines 100..120

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 32.

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

Function rows_after has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
Open

    def rows_after(self):
        """The rows that consume meshes from this row.

        :rtype: list
        :return: a list of rows that consume meshes from this row. Each row
Severity: Minor
Found in knittingpattern/Row.py - About 25 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function folder has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
Open

    def folder(self, folder):
        """Load all files from a folder recursively.

        Depending on :meth:`chooses_path` some paths may not be loaded.
        Every loaded path is processed and returned part of the returned list.
Severity: Minor
Found in knittingpattern/Loader.py - About 25 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function rows_before has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
Open

    def rows_before(self):
        """The rows that produce meshes for this row.

        :rtype: list
        :return: a list of rows that produce meshes for this row. Each row
Severity: Minor
Found in knittingpattern/Row.py - About 25 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function _relative_to_absolute has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
Open

    def _relative_to_absolute(self, module_location, folder):
        """:return: the absolute path for the `folder` relative to
        the module_location.
        :rtype: str
        """
Severity: Minor
Found in knittingpattern/Loader.py - About 25 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Expected 2 blank lines after class or function definition, found 1
Open

__all__ = ["KnittingPattern"]
Severity: Minor
Found in knittingpattern/KnittingPattern.py by pep8

Separate top-level function and class definitions with two blank lines.

Method definitions inside a class are separated by a single blank
line.

Extra blank lines may be used (sparingly) to separate groups of
related functions.  Blank lines may be omitted between a bunch of
related one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical
sections.

Okay: def a():\n    pass\n\n\ndef b():\n    pass
Okay: def a():\n    pass\n\n\nasync def b():\n    pass
Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
Okay: default = 1\nfoo = 1
Okay: classify = 1\nfoo = 1

E301: class Foo:\n    b = 0\n    def bar():\n        pass
E302: def a():\n    pass\n\ndef b(n):\n    pass
E302: def a():\n    pass\n\nasync def b(n):\n    pass
E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
E303: def a():\n\n\n\n    pass
E304: @decorator\n\ndef a():\n    pass
E305: def a():\n    pass\na()
E306: def a():\n    def b():\n        pass\n    def c():\n        pass

Expected 2 blank lines after class or function definition, found 1
Open

__all__ = ["Row", "COLOR"]
Severity: Minor
Found in knittingpattern/Row.py by pep8

Separate top-level function and class definitions with two blank lines.

Method definitions inside a class are separated by a single blank
line.

Extra blank lines may be used (sparingly) to separate groups of
related functions.  Blank lines may be omitted between a bunch of
related one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical
sections.

Okay: def a():\n    pass\n\n\ndef b():\n    pass
Okay: def a():\n    pass\n\n\nasync def b():\n    pass
Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
Okay: default = 1\nfoo = 1
Okay: classify = 1\nfoo = 1

E301: class Foo:\n    b = 0\n    def bar():\n        pass
E302: def a():\n    pass\n\ndef b(n):\n    pass
E302: def a():\n    pass\n\nasync def b(n):\n    pass
E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
E303: def a():\n\n\n\n    pass
E304: @decorator\n\ndef a():\n    pass
E305: def a():\n    pass\na()
E306: def a():\n    def b():\n        pass\n    def c():\n        pass

Expected 2 blank lines after class or function definition, found 1
Open

DEFAULT_SVG_FOLDER = "instruction-svgs"

Separate top-level function and class definitions with two blank lines.

Method definitions inside a class are separated by a single blank
line.

Extra blank lines may be used (sparingly) to separate groups of
related functions.  Blank lines may be omitted between a bunch of
related one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical
sections.

Okay: def a():\n    pass\n\n\ndef b():\n    pass
Okay: def a():\n    pass\n\n\nasync def b():\n    pass
Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
Okay: default = 1\nfoo = 1
Okay: classify = 1\nfoo = 1

E301: class Foo:\n    b = 0\n    def bar():\n        pass
E302: def a():\n    pass\n\ndef b(n):\n    pass
E302: def a():\n    pass\n\nasync def b(n):\n    pass
E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
E303: def a():\n\n\n\n    pass
E304: @decorator\n\ndef a():\n    pass
E305: def a():\n    pass\na()
E306: def a():\n    def b():\n        pass\n    def c():\n        pass

Invalid escape sequence '\s'
Open

TRANSFORM_REGEX = "^translate\(\s*(\S+?)\s*,\s*(\S+?)\s*\)\s*,"\

Invalid escape sequences are deprecated in Python 3.6.

Okay: regex = r'\.png$'
W605: regex = '\.png$'

Expected 2 blank lines after class or function definition, found 1
Open

__all__ = ["JSONDumper"]
Severity: Minor
Found in knittingpattern/Dumper/json.py by pep8

Separate top-level function and class definitions with two blank lines.

Method definitions inside a class are separated by a single blank
line.

Extra blank lines may be used (sparingly) to separate groups of
related functions.  Blank lines may be omitted between a bunch of
related one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical
sections.

Okay: def a():\n    pass\n\n\ndef b():\n    pass
Okay: def a():\n    pass\n\n\nasync def b():\n    pass
Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
Okay: default = 1\nfoo = 1
Okay: classify = 1\nfoo = 1

E301: class Foo:\n    b = 0\n    def bar():\n        pass
E302: def a():\n    pass\n\ndef b(n):\n    pass
E302: def a():\n    pass\n\nasync def b(n):\n    pass
E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
E303: def a():\n\n\n\n    pass
E304: @decorator\n\ndef a():\n    pass
E305: def a():\n    pass\na()
E306: def a():\n    def b():\n        pass\n    def c():\n        pass
Severity
Category
Status
Source
Language