fossasia/knittingpattern

View on GitHub

Showing 166 of 166 total issues

Function place_svg_dict has 5 arguments (exceeds 4 allowed). Consider refactoring.
Open

    def place_svg_dict(self, x, y, svg_dict, layer_id, group=None):
Severity: Minor
Found in knittingpattern/convert/SVGBuilder.py - About 35 mins to fix

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

        def test_i_2_1_consumed(self, i_2, i_3):
            assert i_2[1].consuming_instructions == [i_3[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 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

    Function _make_definition has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

        def _make_definition(self, svg_dict, instruction_id):
            """Create a symbol out of the supplied :paramref:`svg_dict`.
    
            :param dict svg_dict: dictionary containing the SVG for the
              instruction currently processed
    Severity: Minor
    Found in knittingpattern/convert/KnittingPatternToSVG.py - About 35 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

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

        def test_i_1_1_consumed(self, i_1, i_2):
            assert i_1[1].consuming_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 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_2_3_produced(self, i_1, i_2):
            assert i_2[3].producing_instructions == [i_1[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 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_2_2_consumed(self, i_2, i_3):
            assert i_2[2].consuming_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 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_2_0_consumed(self, i_2, i_3):
            assert i_2[0].consuming_instructions == [i_3[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 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 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_1_produced(self, i_3, i_4):
            assert i_4[1].producing_instructions == [i_3[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 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 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_2_produced(self, i_3, i_4):
            assert i_4[2].producing_instructions == [i_3[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 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 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_2_consumed(self, i_1, i_2):
            assert i_1[2].consuming_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 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_2_0_produced(self, i_1, i_2):
            assert i_2[0].producing_instructions == [i_1[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 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 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_2_2_produced(self, i_1, i_2):
            assert i_2[2].producing_instructions == [i_1[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 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 3 locations. Consider refactoring.
    Open

    def test_first_color_is_white(pattern):
        assert pattern.rows[0].instructions[0].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 51..52
    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 3 locations. Consider refactoring.
    Open

        def test_consumed_mesh_of_row2(self, row2, mesh21c):
            assert mesh21c.is_consumed()
            assert mesh21c.is_produced()
            assert mesh21c.consuming_row == row2
    Severity: Minor
    Found in knittingpattern/test/test_change_row_mapping.py and 2 other locations - About 35 mins to fix
    knittingpattern/test/test_change_row_mapping.py on lines 151..154
    knittingpattern/test/test_change_row_mapping.py on lines 156..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 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_produced(self, i_2, i_3):
            assert i_3[0].producing_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 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 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_consumed(self, i_3, i_4):
            assert i_3[1].consuming_instructions == [i_4[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 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_black_exists(pattern):
        assert pattern.rows[20].instructions[64].color == "black"
    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 51..52

    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_consumed_mesh_of_row3(self, row3, mesh31c):
            assert mesh31c.is_consumed()
            assert mesh31c.is_produced()
            assert mesh31c.consuming_row == row3
    Severity: Minor
    Found in knittingpattern/test/test_change_row_mapping.py and 2 other locations - About 35 mins to fix
    knittingpattern/test/test_change_row_mapping.py on lines 146..149
    knittingpattern/test/test_change_row_mapping.py on lines 151..154

    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_produced_mesh_of_row2(self, row2, mesh21p):
            assert mesh21p.is_consumed()
            assert mesh21p.is_produced()
            assert mesh21p.producing_row == row2
    Severity: Minor
    Found in knittingpattern/test/test_change_row_mapping.py and 2 other locations - About 35 mins to fix
    knittingpattern/test/test_change_row_mapping.py on lines 146..149
    knittingpattern/test/test_change_row_mapping.py on lines 156..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 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

    Function _instructions_changed has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

        def _instructions_changed(self, change):
            """Call when there is a change in the instructions."""
            if change.adds():
                for index, instruction in change.items():
                    if isinstance(instruction, dict):
    Severity: Minor
    Found in knittingpattern/Row.py - About 35 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

    Severity
    Category
    Status
    Source
    Language