docstr: Compare full versions, comprising main release, pre-release, and development segments
  
  Parameters
  ----------
  other: String, or HHVersion
      Version with which to compare self
  
  Returns
  -------
  Integer in {0, 1, -1}
      * 0 if `self` and `other` are equivalent versions
      * 1 if `self` is greater than `other`
      * -1 if `other` is greater than `self`
docstr_tok: ["Compare","full","versions",",","comprising","main","release",",","pre-release",",","and","development","segments","Parameters","--","--","--","--","--","other",":","String",",","or","HHVersion","Version","with","which","to","compare","self","Returns","--","--","--","-","Integer","in","{","0",",","1",",","-1","}","*","0","if","`","self","`","and","`","other","`","are","equivalent","versions","*","1","if","`","self","`","is","greater","than","`","other","`","*","-1","if","`","other","`","is","greater","than","`","self","`"]
code: def _compare(self, other: Union[str, "HHVersion"]) -> int:
      """Compare full versions, comprising main release, pre-release, and development segments
  
      Parameters
      ----------
      other: String, or HHVersion
          Version with which to compare self
  
      Returns
      -------
      Integer in {0, 1, -1}
          * 0 if `self` and `other` are equivalent versions
          * 1 if `self` is greater than `other`
          * -1 if `other` is greater than `self`"""
      if not isinstance(other, (string_types, HHVersion)):
          raise ValueError("Invalid object to compare with HHVersion")
  
      if isinstance(other, string_types):
          other = HHVersion(other)
  
      cmp = self._compare_main_version(other)
  
      if cmp == 0:
          # Same x.y.z version, check for alpha/beta/rc
          cmp = self._compare_pre_release(other)
          if cmp == 0:
              # Same version and same pre-release, check if dev version
              if self.is_dev_version is other.is_dev_version:
                  cmp = 0
              elif self.is_dev_version:
                  cmp = -1
              else:
                  cmp = 1
  
      return cmp
  
imports: from hyperparameter_hunter.i_o.exceptions import DeprecatedWarning, UnsupportedWarning
  from functools import wraps
  import re
  from six import string_types
  from textwrap import dedent
  from typing import Union
  from warnings import warn, simplefilter
label_desc: Use image node_id 4 for calling the HHVersion obj's underlying member method code with example usage: obj._compare(other) and returns: cmp