class_docstr: This class abstracts handling of version specifiers.
  
  .. tip::
  
      It is generally not required to instantiate this manually. You should instead
      prefer to work with :class:`SpecifierSet` instead, which can parse
      comma-separated version specifiers (which is what package metadata contains).
docstr: A string representation of the Specifier that can be round-tripped.
  
  >>> str(Specifier('>=1.0.0'))
  '>=1.0.0'
  >>> str(Specifier('>=1.0.0', prereleases=False))
  '>=1.0.0'
docstr_tok: ["A","string","representation","of","the","Specifier","that","can","be","round-tripped",".",">",">",">","str","(","Specifier","(","'",">","=1.0.0","'",")",")","'",">","=1.0.0'",">",">",">","str","(","Specifier","(","'",">","=1.0.0","'",",","prereleases=False",")",")","'",">","=1.0.0","'"]
code: def __str__(self) -> str:
      """A string representation of the Specifier that can be round-tripped.
  
      >>> str(Specifier('>=1.0.0'))
      '>=1.0.0'
      >>> str(Specifier('>=1.0.0', prereleases=False))
      '>=1.0.0'
      """
      return "{}{}".format(*self._spec)
  
imports: import abc
  import itertools
  import re
  from typing import Callable, Iterable, Iterator, List, Optional, Tuple, TypeVar, Union
  from .utils import canonicalize_version
  from .version import Version
label_desc: Use image node_id 7 for calling the Specifier obj's underlying member method code with example usage: obj.__str__() and returns: str