# Stubs for packaging.specifiers (Python 3.5)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
import abc

class InvalidSpecifier(ValueError): ...

class BaseSpecifier:
    def __hash__(self): ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...
    @abc.abstractproperty
    def prereleases(self): ...
    @prereleases.setter
    def prereleases(self, value): ...
    def contains(self, item, prereleases=None): ...
    def filter(self, iterable, prereleases=None): ...

class _IndividualSpecifier(BaseSpecifier):
    def __init__(self, spec:str=..., prereleases=None) -> None: ...
    def __hash__(self): ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...
    @property
    def operator(self): ...
    @property
    def version(self): ...
    @property
    def prereleases(self): ...
    @prereleases.setter
    def prereleases(self, value): ...
    def __contains__(self, item): ...
    def contains(self, item, prereleases=None): ...
    def filter(self, iterable, prereleases=None): ...

class LegacySpecifier(_IndividualSpecifier): ...

class Specifier(_IndividualSpecifier):
    @property
    def prereleases(self): ...
    @prereleases.setter
    def prereleases(self, value): ...

class SpecifierSet(BaseSpecifier):
    def __init__(self, specifiers:str=..., prereleases=None) -> None: ...
    def __hash__(self): ...
    def __and__(self, other): ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...
    def __len__(self): ...
    def __iter__(self): ...
    @property
    def prereleases(self): ...
    @prereleases.setter
    def prereleases(self, value): ...
    def __contains__(self, item): ...
    def contains(self, item, prereleases=None): ...
    def filter(self, iterable, prereleases=None): ...
