nodes: 0, module; 1, function_definition; 2, function_name:enqueue_at; 3, parameters; 4, block; 5, identifier:self; 6, identifier:scheduled_time; 7, identifier:func; 8, list_splat_pattern; 9, dictionary_splat_pattern; 10, expression_statement; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, expression_statement; 15, expression_statement; 16, expression_statement; 17, expression_statement; 18, expression_statement; 19, return_statement; 20, identifier:args; 21, identifier:kwargs; 22, comment:"""
          Pushes a job to the scheduler queue. The scheduled queue is a Redis sorted
          set ordered by timestamp - which in this case is job's scheduled execution time.
  
          All args and kwargs are passed onto the job, except for the following kwarg
          keys (which affect the job creation itself):
          - timeout
          - job_id
          - job_ttl
          - job_result_ttl
          - job_description
  
          Usage:
  
          from datetime import datetime
          from redis import Redis
          from rq.scheduler import Scheduler
  
          from foo import func
  
          redis = Redis()
          scheduler = Scheduler(queue_name='default', connection=redis)
          scheduler.enqueue_at(datetime(2020, 1, 1), func, 'argument', keyword='argument')
          """; 23, assignment; 24, assignment; 25, assignment; 26, assignment; 27, assignment; 28, assignment; 29, assignment; 30, call; 31, identifier:job; 32, identifier:timeout; 33, call; 34, identifier:job_id; 35, call; 36, identifier:job_ttl; 37, call; 38, identifier:job_result_ttl; 39, call; 40, identifier:job_description; 41, call; 42, identifier:meta; 43, call; 44, identifier:job; 45, call; 46, attribute; 47, argument_list; 48, attribute; 49, argument_list; 50, attribute; 51, argument_list; 52, attribute; 53, argument_list; 54, attribute; 55, argument_list; 56, attribute; 57, argument_list; 58, attribute; 59, argument_list; 60, attribute; 61, argument_list; 62, attribute; 63, identifier:zadd; 64, attribute; 65, dictionary; 66, identifier:kwargs; 67, identifier:pop; 68, string; 69, None; 70, identifier:kwargs; 71, identifier:pop; 72, string; 73, None; 74, identifier:kwargs; 75, identifier:pop; 76, string; 77, None; 78, identifier:kwargs; 79, identifier:pop; 80, string; 81, None; 82, identifier:kwargs; 83, identifier:pop; 84, string; 85, None; 86, identifier:kwargs; 87, identifier:pop; 88, string; 89, None; 90, identifier:self; 91, identifier:_create_job; 92, identifier:func; 93, keyword_argument; 94, keyword_argument; 95, keyword_argument; 96, keyword_argument; 97, keyword_argument; 98, keyword_argument; 99, keyword_argument; 100, keyword_argument; 101, identifier:self; 102, identifier:connection; 103, identifier:self; 104, identifier:scheduled_jobs_key; 105, pair; 106, string_content:timeout; 107, string_content:job_id; 108, string_content:job_ttl; 109, string_content:job_result_ttl; 110, string_content:job_description; 111, string_content:meta; 112, identifier:args; 113, identifier:args; 114, identifier:kwargs; 115, identifier:kwargs; 116, identifier:timeout; 117, identifier:timeout; 118, identifier:id; 119, identifier:job_id; 120, identifier:result_ttl; 121, identifier:job_result_ttl; 122, identifier:ttl; 123, identifier:job_ttl; 124, identifier:description; 125, identifier:job_description; 126, identifier:meta; 127, identifier:meta; 128, attribute; 129, call; 130, identifier:job; 131, identifier:id; 132, identifier:to_unix; 133, argument_list; 134, identifier:scheduled_time
code: def enqueue_at(self, scheduled_time, func, *args, **kwargs):
          """
          Pushes a job to the scheduler queue. The scheduled queue is a Redis sorted
          set ordered by timestamp - which in this case is job's scheduled execution time.
  
          All args and kwargs are passed onto the job, except for the following kwarg
          keys (which affect the job creation itself):
          - timeout
          - job_id
          - job_ttl
          - job_result_ttl
          - job_description
  
          Usage:
  
          from datetime import datetime
          from redis import Redis
          from rq.scheduler import Scheduler
  
          from foo import func
  
          redis = Redis()
          scheduler = Scheduler(queue_name='default', connection=redis)
          scheduler.enqueue_at(datetime(2020, 1, 1), func, 'argument', keyword='argument')
          """
          timeout = kwargs.pop('timeout', None)
          job_id = kwargs.pop('job_id', None)
          job_ttl = kwargs.pop('job_ttl', None)
          job_result_ttl = kwargs.pop('job_result_ttl', None)
          job_description = kwargs.pop('job_description', None)
          meta = kwargs.pop('meta', None)
  
          job = self._create_job(func, args=args, kwargs=kwargs, timeout=timeout,
                                 id=job_id, result_ttl=job_result_ttl, ttl=job_ttl,
                                 description=job_description, meta=meta)
          self.connection.zadd(self.scheduled_jobs_key,
                                {job.id: to_unix(scheduled_time)})
          return job