parameters: (self, tags, requestContext=None)
return_statement: return result
docstring: Find series by tag, accepts a list of tag specifiers and returns a list of matching paths.
  
          Tags specifiers are strings, and may have the following formats:
  
          .. code-block:: none
  
            tag=spec    tag value exactly matches spec
            tag!=spec   tag value does not exactly match spec
            tag=~value  tag value matches the regular expression spec
            tag!=~spec  tag value does not match the regular expression spec
  
          Any tag spec that matches an empty value is considered to match series that don't have that tag.
  
          At least one tag spec must require a non-empty value.
  
          Regular expression conditions are treated as being anchored at the start of the value.
  
          Matching paths are returned as a list of strings.
docstring_summary: Find series by tag, accepts a list of tag specifiers and returns a list of matching paths.
docstring_tokens: Find series by tag accepts a list of tag specifiers and returns a list of matching paths .
function: def find_series(self, tags, requestContext=None):
          """
          Find series by tag, accepts a list of tag specifiers and returns a list of matching paths.
  
          Tags specifiers are strings, and may have the following formats:
  
          .. code-block:: none
  
            tag=spec    tag value exactly matches spec
            tag!=spec   tag value does not exactly match spec
            tag=~value  tag value matches the regular expression spec
            tag!=~spec  tag value does not match the regular expression spec
  
          Any tag spec that matches an empty value is considered to match series that don't have that tag.
  
          At least one tag spec must require a non-empty value.
  
          Regular expression conditions are treated as being anchored at the start of the value.
  
          Matching paths are returned as a list of strings.
          """
          start_time = time.time()
          log_msg = 'completed in'
  
          try:
              cacheKey = self.find_series_cachekey(tags, requestContext=requestContext)
              result = self.cache.get(cacheKey) if self.cache else None
              if result is not None:
                  log_msg = 'completed (cached) in'
              else:
                  result = self._find_series(tags, requestContext)
                  if self.cache:
                      self.cache.set(cacheKey, result, self.settings.TAGDB_CACHE_DURATION)
          except Exception:
              log_msg = 'failed in'
              raise
          finally:
              self.log_info('find_series',
                  '{msg} {sec:.6}s'.format(
                      msg=log_msg,
                      sec=time.time() - start_time,
                  )
              )
  
          return result
function_tokens: def find_series ( self , tags , requestContext = None ) : start_time = time . time ( ) log_msg = 'completed in' try : cacheKey = self . find_series_cachekey ( tags , requestContext = requestContext ) result = self . cache . get ( cacheKey ) if self . cache else None if result is not None : log_msg = 'completed (cached) in' else : result = self . _find_series ( tags , requestContext ) if self . cache : self . cache . set ( cacheKey , result , self . settings . TAGDB_CACHE_DURATION ) except Exception : log_msg = 'failed in' raise finally : self . log_info ( 'find_series' , '{msg} {sec:.6}s' . format ( msg = log_msg , sec = time . time ( ) - start_time , ) ) return result