code: def cvss_base_v3_value(cls, cvss_base_vector):
          
          if not cvss_base_vector:
              return None
          _ver, _av, _ac, _pr, _ui, _s, _c, _i, _a = cls._parse_cvss_base_vector(
              cvss_base_vector)
  
          scope_changed = cvss_v3_metrics['S'].get(_s)
  
          isc_base = 1 - (
              (1 - cvss_v3_metrics['C'].get(_c)) *
              (1 - cvss_v3_metrics['I'].get(_i)) *
              (1 - cvss_v3_metrics['A'].get(_a))
          )
  
          if scope_changed:
              _priv_req = cvss_v3_metrics['PR_SC'].get(_pr)
          else:
              _priv_req = cvss_v3_metrics['PR_SU'].get(_pr)
  
          _exploitability = (
              8.22 *
              cvss_v3_metrics['AV'].get(_av) *
              cvss_v3_metrics['AC'].get(_ac) *
              _priv_req *
              cvss_v3_metrics['UI'].get(_ui)
          )
  
          if scope_changed:
              _impact = (7.52 * (isc_base - 0.029) -
                         3.25 * pow(isc_base - 0.02, 15))
              _base_score = min (1.08 * (_impact + _exploitability), 10)
          else:
              _impact = 6.42 * isc_base
              _base_score = min (_impact + _exploitability, 10)
  
          if _impact > 0 :
              return cls.roundup(_base_score)
  
          return 0
docs: Calculate the cvss base score from a cvss base vector
          for cvss version 3.
          Arguments:
              cvss_base_vector (str) Cvss base vector v3.
  
          Return the calculated score, None on fail.