class_docstr: This class abstracts handling of a set of version specifiers.
  
  It can be passed a single specifier (``>=3.0``), a comma-separated list of
  specifiers (``>=3.0,!=3.1``), or no specifier at all.
docstr: A representation of the specifier set that shows all internal state.
  
  Note that the ordering of the individual specifiers within the set may not
  match the input string.
  
  >>> SpecifierSet('>=1.0.0,!=2.0.0')
  <SpecifierSet('!=2.0.0,>=1.0.0')>
  >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=False)
  <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=False)>
  >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=True)
  <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=True)>
docstr_tok: ["A","representation","of","the","specifier","set","that","shows","all","internal","state",".","Note","that","the","ordering","of","the","individual","specifiers","within","the","set","may","not","match","the","input","string",".",">",">",">","SpecifierSet","(","'",">","=1.0.0",",","!","=2.0.0","'",")","<","SpecifierSet","(","'","!","=2.0.0",",",">","=1.0.0","'",")",">",">",">",">","SpecifierSet","(","'",">","=1.0.0",",","!","=2.0.0","'",",","prereleases=False",")","<","SpecifierSet","(","'","!","=2.0.0",",",">","=1.0.0","'",",","prereleases=False",")",">",">",">",">","SpecifierSet","(","'",">","=1.0.0",",","!","=2.0.0","'",",","prereleases=True",")","<","SpecifierSet","(","'","!","=2.0.0",",",">","=1.0.0","'",",","prereleases=True",")",">"]
code: def __repr__(self) -> str:
      """A representation of the specifier set that shows all internal state.
  
      Note that the ordering of the individual specifiers within the set may not
      match the input string.
  
      >>> SpecifierSet('>=1.0.0,!=2.0.0')
      <SpecifierSet('!=2.0.0,>=1.0.0')>
      >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=False)
      <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=False)>
      >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=True)
      <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=True)>
      """
      pre = (
          f", prereleases={self.prereleases!r}"
          if self._prereleases is not None
          else ""
      )
  
      return f"<SpecifierSet({str(self)!r}{pre})>"
  
imports: import abc
  import itertools
  import re
  from typing import Callable, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union
  from .utils import canonicalize_version
  from .version import Version
label_desc: Use image node_id 4 for calling the SpecifierSet obj's underlying member method code with example usage: obj.__repr__() and returns: str, str, pre, str