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: Return whether or not the item is contained in this specifier.
  
  :param item: The item to check for.
  
  This is used for the ``in`` operator and behaves the same as
  :meth:`contains` with no ``prereleases`` argument passed.
  
  >>> "1.2.3" in Specifier(">=1.2.3")
  True
  >>> Version("1.2.3") in Specifier(">=1.2.3")
  True
  >>> "1.0.0" in Specifier(">=1.2.3")
  False
  >>> "1.3.0a1" in Specifier(">=1.2.3")
  False
  >>> "1.3.0a1" in Specifier(">=1.2.3", prereleases=True)
  True
docstr_tok: ["Return","whether","or","not","the","item","is","contained","in","this","specifier",".",":","param","item",":","The","item","to","check","for",".","This","is","used","for","the","``","in","``","operator","and","behaves","the","same","as",":","meth",":","`","contains","`","with","no","``","prereleases","``","argument","passed",".",">",">",">","``","1.2.3","''","in","Specifier","(","``",">","=1.2.3","''",")","True",">",">",">","Version","(","``","1.2.3","''",")","in","Specifier","(","``",">","=1.2.3","''",")","True",">",">",">","``","1.0.0","''","in","Specifier","(","``",">","=1.2.3","''",")","False",">",">",">","``","1.3.0a1","''","in","Specifier","(","``",">","=1.2.3","''",")","False",">",">",">","``","1.3.0a1","''","in","Specifier","(","``",">","=1.2.3","''",",","prereleases=True",")","True"]
code: def __contains__(self, item: Union[str, Version]) -> bool:
      """Return whether or not the item is contained in this specifier.
  
      :param item: The item to check for.
  
      This is used for the ``in`` operator and behaves the same as
      :meth:`contains` with no ``prereleases`` argument passed.
  
      >>> "1.2.3" in Specifier(">=1.2.3")
      True
      >>> Version("1.2.3") in Specifier(">=1.2.3")
      True
      >>> "1.0.0" in Specifier(">=1.2.3")
      False
      >>> "1.3.0a1" in Specifier(">=1.2.3")
      False
      >>> "1.3.0a1" in Specifier(">=1.2.3", prereleases=True)
      True
      """
      return self.contains(item)
  
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 20 for calling the Specifier obj's underlying member method code with example usage: obj.__contains__(item) and returns: self