code: def extract_edges_from_callable(fn):
      
  
      def extractor(*args, **kwargs):
          """
          Because I don't think this technique is common in python...
  
          Service constructors were defined as:
              lambda c: c('a')
  
          In this function:
              fn = lambda c: c('a')
              fn(anything)  # Results in anything('a')
  
          Here we provide a function which returns all args/kwargs
              fn(extractor)  # ["a"]
  
          This isn't voodoo, it's just treating a function's call if it is data.
          """
          return list(args) + list(kwargs.values())
  
      edges = fn(extractor)
  
      for edge in edges:
          if not isinstance(edge, str):
              raise ValueError('Provided edge "{}" is not a string'.format(edge))
  
      return list(edges)
docs: This takes args and kwargs provided, and returns the names of the strings
      assigned. If a string is not provided for a value, an exception is raised.
  
      This is how we extract the edges provided in the brap call lambdas.