oemof/oemof-solph

View on GitHub

Showing 424 of 424 total issues

File variable_chp.py has 371 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# -*- coding: utf-8 -*-

"""
General description
-------------------
Severity: Minor
Found in examples/variable_chp/variable_chp.py - About 4 hrs to fix

    File diesel_genset_nonconvex_investment.py has 369 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    # -*- coding: utf-8 -*-
    
    """
    General description
    -------------------

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

          duals = pd.DataFrame(
              {
                  str(k[0].label): v["sequences"]["duals"]
                  for k, v in results.items()
                  if k[1] is None and isinstance(k[0], buses.Bus)
      Severity: Major
      Found in examples/dual_variable_example/dual_variable_example.py and 1 other location - About 4 hrs to fix
      examples/tuple_as_labels/tuple_as_label.py on lines 304..308

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

      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 _Q_flow_rule(block, n, p, t):
                  """Link heat flow to component outflow."""
                  expr = 0
                  expr += self.Q[n, t]
                  expr += -m.flow[n, list(n.heat_output.keys())[0], p, t]
      Severity: Major
      Found in src/oemof/solph/components/_generic_chp.py and 1 other location - About 4 hrs to fix
      src/oemof/solph/components/_generic_chp.py on lines 362..367

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

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

          duals = pd.DataFrame(
              {
                  str(k[0].label): v["sequences"]["duals"]
                  for k, v in results.items()
                  if k[1] is None and isinstance(k[0], buses.Bus)
      Severity: Major
      Found in examples/tuple_as_labels/tuple_as_label.py and 1 other location - About 4 hrs to fix
      examples/dual_variable_example/dual_variable_example.py on lines 278..282

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

      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 _P_flow_rule(block, n, p, t):
                  """Link power flow to component outflow."""
                  expr = 0
                  expr += self.P[n, t]
                  expr += -m.flow[n, list(n.electrical_output.keys())[0], p, t]
      Severity: Major
      Found in src/oemof/solph/components/_generic_chp.py and 1 other location - About 4 hrs to fix
      src/oemof/solph/components/_generic_chp.py on lines 351..356

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

      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

      File views.py has 368 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      # -*- coding: utf-8 -*-
      
      """Modules for providing convenient views for solph results.
      
      See examples for to learn about the possible usage of the provided functions.
      Severity: Minor
      Found in src/oemof/solph/views.py - About 4 hrs to fix

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

            storage = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["storage_content"]
                    for k, v in results.items()
                    if k[1] is None and k[0] == storage
        Severity: Major
        Found in examples/tuple_as_labels/tuple_as_label.py and 2 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 270..274
        examples/gradient_example/gradient_example.py on lines 193..197

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

        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

            flows_from_bus = pd.DataFrame(
                {
                    str(k[1].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[0] == bel
        Severity: Major
        Found in examples/tuple_as_labels/tuple_as_label.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 255..259
        examples/dual_variable_example/dual_variable_example.py on lines 262..266
        examples/gradient_example/gradient_example.py on lines 178..182
        examples/gradient_example/gradient_example.py on lines 185..189
        examples/tuple_as_labels/tuple_as_label.py on lines 281..285

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

        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

            flows_from_bus = pd.DataFrame(
                {
                    str(k[1].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[0] == bus_elec
        Severity: Major
        Found in examples/dual_variable_example/dual_variable_example.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 255..259
        examples/gradient_example/gradient_example.py on lines 178..182
        examples/gradient_example/gradient_example.py on lines 185..189
        examples/tuple_as_labels/tuple_as_label.py on lines 281..285
        examples/tuple_as_labels/tuple_as_label.py on lines 288..292

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

        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

            flows_to_bus = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[1] == bel
        Severity: Major
        Found in examples/tuple_as_labels/tuple_as_label.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 255..259
        examples/dual_variable_example/dual_variable_example.py on lines 262..266
        examples/gradient_example/gradient_example.py on lines 178..182
        examples/gradient_example/gradient_example.py on lines 185..189
        examples/tuple_as_labels/tuple_as_label.py on lines 288..292

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

        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

            flows_from_bus = pd.DataFrame(
                {
                    str(k[1].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[0] == bel
        Severity: Major
        Found in examples/gradient_example/gradient_example.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 255..259
        examples/dual_variable_example/dual_variable_example.py on lines 262..266
        examples/gradient_example/gradient_example.py on lines 178..182
        examples/tuple_as_labels/tuple_as_label.py on lines 281..285
        examples/tuple_as_labels/tuple_as_label.py on lines 288..292

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

        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

            flows_to_bus = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[1] == bel
        Severity: Major
        Found in examples/gradient_example/gradient_example.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 255..259
        examples/dual_variable_example/dual_variable_example.py on lines 262..266
        examples/gradient_example/gradient_example.py on lines 185..189
        examples/tuple_as_labels/tuple_as_label.py on lines 281..285
        examples/tuple_as_labels/tuple_as_label.py on lines 288..292

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

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

            storage = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["storage_content"]
                    for k, v in results.items()
                    if k[1] is None and k[0] == storage
        Severity: Major
        Found in examples/dual_variable_example/dual_variable_example.py and 2 other locations - About 4 hrs to fix
        examples/gradient_example/gradient_example.py on lines 193..197
        examples/tuple_as_labels/tuple_as_label.py on lines 296..300

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

        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

            flows_to_bus = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["flow"]
                    for k, v in results.items()
                    if k[1] is not None and k[1] == bus_elec
        Severity: Major
        Found in examples/dual_variable_example/dual_variable_example.py and 5 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 262..266
        examples/gradient_example/gradient_example.py on lines 178..182
        examples/gradient_example/gradient_example.py on lines 185..189
        examples/tuple_as_labels/tuple_as_label.py on lines 281..285
        examples/tuple_as_labels/tuple_as_label.py on lines 288..292

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

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

            storage = pd.DataFrame(
                {
                    str(k[0].label): v["sequences"]["storage_content"]
                    for k, v in results.items()
                    if k[1] is None and k[0] == storage
        Severity: Major
        Found in examples/gradient_example/gradient_example.py and 2 other locations - About 4 hrs to fix
        examples/dual_variable_example/dual_variable_example.py on lines 270..274
        examples/tuple_as_labels/tuple_as_label.py on lines 296..300

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

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

            storage = solph.components.GenericStorage(
                label="storage",
                inputs={bel: solph.Flow(variable_costs=0.0001)},
                outputs={bel: solph.Flow()},
                loss_rate=0.00,
        examples/storage_investment/v1_invest_optimize_all_technologies.py on lines 184..194
        examples/storage_investment/v3_invest_optimize_only_storage_with_fossil_share.py on lines 187..197
        examples/storage_investment/v4_invest_optimize_all_technologies_with_fossil_share.py on lines 195..205

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

        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

                myplot = oeplot.io_plot(
                    bus_label="heat",
                    df=heat["sequences"],
                    cdict=cdict,
                    smooth=smooth_plot,
        Severity: Major
        Found in examples/variable_chp/variable_chp.py and 1 other location - About 4 hrs to fix
        examples/variable_chp/variable_chp.py on lines 323..336

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

        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

                    expr += -self.Y[n, t] * (
                        list(n.electrical_output.values())[0].P_max_woDH[t]
                        / list(n.electrical_output.values())[0].Eta_el_max_woDH[t]
        Severity: Major
        Found in src/oemof/solph/components/_generic_chp.py and 1 other location - About 4 hrs to fix
        src/oemof/solph/components/_generic_chp.py on lines 415..417

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

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

            storage = solph.components.GenericStorage(
                label="storage",
                inputs={bel: solph.Flow(variable_costs=0.0001)},
                outputs={bel: solph.Flow()},
                loss_rate=0.00,
        examples/storage_investment/v1_invest_optimize_all_technologies.py on lines 184..194
        examples/storage_investment/v2_invest_optimize_only_gas_and_storage.py on lines 177..187
        examples/storage_investment/v3_invest_optimize_only_storage_with_fossil_share.py on lines 187..197

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

        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

        Severity
        Category
        Status
        Source
        Language