django/django

View on GitHub
django/contrib/gis/gdal/srs.py

Summary

Maintainability
D
1 day
Test Coverage

SpatialReference has 35 functions (exceeds 20 allowed). Consider refactoring.
Open

class SpatialReference(GDALBase):
    """
    A wrapper for the OGRSpatialReference object. According to the GDAL web site,
    the SpatialReference object "provide[s] services to represent coordinate
    systems (projections and datums) and to transform between them."
Severity: Minor
Found in django/contrib/gis/gdal/srs.py - About 4 hrs to fix

    File srs.py has 296 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    """
      The Spatial Reference class, represents OGR Spatial Reference objects.
    
      Example:
      >>> from django.contrib.gis.gdal import SpatialReference
    Severity: Minor
    Found in django/contrib/gis/gdal/srs.py - About 3 hrs to fix

      Function __init__ has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
      Open

          def __init__(self, srs_input="", srs_type="user", axis_order=None):
              """
              Create a GDAL OSR Spatial Reference object from the given input.
              The input may be string of OGC Well Known Text (WKT), an integer
              EPSG code, a PROJ string, and/or a projection "well known" shorthand
      Severity: Minor
      Found in django/contrib/gis/gdal/srs.py - About 2 hrs 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 2 locations. Consider refactoring.
      Open

          def auth_name(self, target):
              "Return the authority name for the given string target node."
              return capi.get_auth_name(
                  self.ptr, target if target is None else force_bytes(target)
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 1 other location - About 1 hr to fix
      django/contrib/gis/gdal/srs.py on lines 162..165

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

      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 auth_code(self, target):
              "Return the authority code for the given string target node."
              return capi.get_auth_code(
                  self.ptr, target if target is None else force_bytes(target)
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 1 other location - About 1 hr to fix
      django/contrib/gis/gdal/srs.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 38.

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

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

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

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

      Refactorings

      Further Reading

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

          @property
          def angular_name(self):
              "Return the name of the angular units."
              units, name = capi.angular_units(self.ptr, byref(c_char_p()))
              return name
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 3 other locations - About 55 mins to fix
      django/contrib/gis/gdal/srs.py on lines 213..217
      django/contrib/gis/gdal/srs.py on lines 219..223
      django/contrib/gis/gdal/srs.py on lines 231..235

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

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

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

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

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

      Refactorings

      Further Reading

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

          @property
          def linear_units(self):
              "Return the value of the linear units."
              units, name = capi.linear_units(self.ptr, byref(c_char_p()))
              return units
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 3 other locations - About 55 mins to fix
      django/contrib/gis/gdal/srs.py on lines 213..217
      django/contrib/gis/gdal/srs.py on lines 225..229
      django/contrib/gis/gdal/srs.py on lines 231..235

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

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

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

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

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

      Refactorings

      Further Reading

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

          @property
          def angular_units(self):
              "Return the value of the angular units."
              units, name = capi.angular_units(self.ptr, byref(c_char_p()))
              return units
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 3 other locations - About 55 mins to fix
      django/contrib/gis/gdal/srs.py on lines 213..217
      django/contrib/gis/gdal/srs.py on lines 219..223
      django/contrib/gis/gdal/srs.py on lines 225..229

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

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

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

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

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

      Refactorings

      Further Reading

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

          @property
          def linear_name(self):
              "Return the name of the linear units."
              units, name = capi.linear_units(self.ptr, byref(c_char_p()))
              return name
      Severity: Major
      Found in django/contrib/gis/gdal/srs.py and 3 other locations - About 55 mins to fix
      django/contrib/gis/gdal/srs.py on lines 219..223
      django/contrib/gis/gdal/srs.py on lines 225..229
      django/contrib/gis/gdal/srs.py on lines 231..235

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

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

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

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

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

      Refactorings

      Further Reading

      There are no issues that match your filters.

      Category
      Status