code: def angle(self):
          
          result = self._get_value()
          if result is None:
              return None
          else:
              # NOTE: Why round(n, 12) here instead of 14? Angle ranges can be
              # much larger than -1..1 so we need a little more rounding to
              # smooth off the rough corners!
              return round(
                  self._angular_range *
                  ((result - self._min_value) / self._value_range) +
                  self._min_angle, 12)
docs: The position of the servo as an angle measured in degrees. This will
          only be accurate if :attr:`min_angle` and :attr:`max_angle` have been
          set appropriately in the constructor.
  
          This can also be the special value :data:`None` indicating that the
          servo is currently "uncontrolled", i.e. that no control signal is being
          sent.  Typically this means the servo's position remains unchanged, but
          that it can be moved by hand.