code: def _check_errors(self):
          
          # use this to make sure that sweep, sstart, sstop, and sinterval
          # all have values if one of them has values
          # (P^Q^R^S) OR (-P and -Q and -R and -S)
          # above is the minimal form for this logical statement in DNF
          if not ((self._inn(self.args.sweep) and self._inn(self.args.sstart)
                   and self._inn(self.args.sstop) and self._inn(self.args.sinterval))
                  or
                  (not self._inn(self.args.sweep) and not self._inn(self.args.sstart) and not
                   self._inn(self.args.sstop) and not self._inn(self.args.sinterval))):
              mutually_inclusive = ["sweep", "sstart", "sstop", "sinterval"]
              print_str = ""
              for each in mutually_inclusive:
                  print_str += "    {0}: {1}\n".format(each, getattr(self.args, each))
              raise AssertionError("""You specified one or more of the --sweep,
              --sstart, --stop, or --sinterval arguments but did not specify all of
              them. All of them are required when running the program in sweep mode.
              Do not specify any of these arguments if not running the program in
              sweep mode.\n{0}""".format(print_str))
docs: Call this function after parsing the args to see if there are any
          errors in the way things are input. Specifically for glotk-sweep, make
          sure that all of the parameters for sweep have arguemnts if at least one
          does.