#-----------------------------------------------------------------------------# Copyright (c) Anaconda, Inc., and Bokeh Contributors.# All rights reserved.## The full license is in the file LICENSE.txt, distributed with this software.#-----------------------------------------------------------------------------"""Models representing selector queries for UI components."""#-----------------------------------------------------------------------------# Boilerplate#-----------------------------------------------------------------------------from__future__importannotationsimportlogging# isort:skiplog=logging.getLogger(__name__)#-----------------------------------------------------------------------------# Imports#-----------------------------------------------------------------------------# Standard library importsfromtypingimportAny# Bokeh importsfrom..core.has_propsimportabstractfrom..core.propertiesimportRequired,Stringfrom..core.property.basesimportInitfrom..core.property.singletonsimportIntrinsicfrom..modelimportModel#-----------------------------------------------------------------------------# Globals and constants#-----------------------------------------------------------------------------__all__=("ByID","ByClass","ByCSS","ByXPath",)#-----------------------------------------------------------------------------# General API#-----------------------------------------------------------------------------@abstractclassSelector(Model):""" Base class for selector queries. """# explicit __init__ to support Init signaturesdef__init__(self,*args:Any,**kwargs:Any)->None:super().__init__(*args,**kwargs)
[docs]classByID(Selector):""" Represents a CSS ID selector query. """# explicit __init__ to support Init signaturesdef__init__(self,query:Init[str]=Intrinsic,**kwargs:Any)->None:super().__init__(query=query,**kwargs)query=Required(String,help=""" Element CSS ID without ``#`` prefix. Alternatively use ``ByCSS("#id")``. """)
[docs]classByClass(Selector):""" Represents a CSS class selector query. """# explicit __init__ to support Init signaturesdef__init__(self,query:Init[str]=Intrinsic,**kwargs:Any)->None:super().__init__(query=query,**kwargs)query=Required(String,help=""" CSS class name without ``.`` prefix. Alternatively use ``ByCSS(".class")``. """)
[docs]classByCSS(Selector):""" Represents a CSS selector query. """# explicit __init__ to support Init signaturesdef__init__(self,query:Init[str]=Intrinsic,**kwargs:Any)->None:super().__init__(query=query,**kwargs)query=Required(String,help=""" CSS selector query (see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors). """)
[docs]classByXPath(Selector):""" Represents an XPath selector query. """# explicit __init__ to support Init signaturesdef__init__(self,query:Init[str]=Intrinsic,**kwargs:Any)->None:super().__init__(query=query,**kwargs)query=Required(String,help=""" XPath selector query (see https://developer.mozilla.org/en-US/docs/Web/XPath). """)
#-----------------------------------------------------------------------------# Dev API#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Private API#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Code#-----------------------------------------------------------------------------