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 string representation of the specifier set that can be round-tripped.
  
  Note that the ordering of the individual specifiers within the set may not
  match the input string.
  
  >>> str(SpecifierSet(">=1.0.0,!=1.0.1"))
  '!=1.0.1,>=1.0.0'
  >>> str(SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False))
  '!=1.0.1,>=1.0.0'
docstr_tok: ["A","string","representation","of","the","specifier","set","that","can","be","round-tripped",".","Note","that","the","ordering","of","the","individual","specifiers","within","the","set","may","not","match","the","input","string",".",">",">",">","str","(","SpecifierSet","(","``",">","=1.0.0",",","!","=1.0.1","''",")",")","'","!","=1.0.1",",",">","=1.0.0'",">",">",">","str","(","SpecifierSet","(","``",">","=1.0.0",",","!","=1.0.1","''",",","prereleases=False",")",")","'","!","=1.0.1",",",">","=1.0.0","'"]
code: def __str__(self) -> str:
      """A string representation of the specifier set that can be round-tripped.
  
      Note that the ordering of the individual specifiers within the set may not
      match the input string.
  
      >>> str(SpecifierSet(">=1.0.0,!=1.0.1"))
      '!=1.0.1,>=1.0.0'
      >>> str(SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False))
      '!=1.0.1,>=1.0.0'
      """
      return ",".join(sorted(str(s) for s in self._specs))
  
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 5 for calling the SpecifierSet obj's underlying member method code with example usage: obj.__str__() and returns: str