Skip to content

Commit

Permalink
chore: linting as a separate commit (#36179)
Browse files Browse the repository at this point in the history
I'm letting autoformat hit this file to make it match our current
standards before I actually make any code changes.
  • Loading branch information
deborahgu authored Jan 27, 2025
1 parent dc2a38b commit 8e1e55a
Showing 1 changed file with 46 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
This management command will manually trigger the receivers we care about. (We don't want to trigger all receivers
for these signals, since these are busy signals.)
"""

import logging
import shlex

Expand Down Expand Up @@ -58,105 +59,106 @@ class Command(BaseCommand):
course-v1:edX+RecordsSelfPaced+1 for user 17
course-v1:edX+RecordsSelfPaced+1 for user 18
"""

help = (
"Simulate certificate/grade changes without actually modifying database "
"content. Specifically, trigger the handlers that send data to Credentials."
)

def add_arguments(self, parser):
parser.add_argument(
'--dry-run',
action='store_true',
help='Just show a preview of what would happen.',
"--dry-run",
action="store_true",
help="Just show a preview of what would happen.",
)
parser.add_argument(
'--site',
"--site",
default=None,
help="Site domain to notify for (if not specified, all sites are notified). Uses course_org_filter.",
)
parser.add_argument(
'--courses',
nargs='+',
help='Send information only for specific course runs.',
"--courses",
nargs="+",
help="Send information only for specific course runs.",
)
parser.add_argument(
'--program_uuids',
nargs='+',
help='Send user data for course runs for courses within a program based on program uuids provided.',
"--program_uuids",
nargs="+",
help="Send user data for course runs for courses within a program based on program uuids provided.",
)
parser.add_argument(
'--start-date',
"--start-date",
type=parsetime,
help='Send information only for certificates or grades that have changed since this date.',
help="Send information only for certificates or grades that have changed since this date.",
)
parser.add_argument(
'--end-date',
"--end-date",
type=parsetime,
help='Send information only for certificates or grades that have changed before this date.',
help="Send information only for certificates or grades that have changed before this date.",
)
parser.add_argument(
'--delay',
"--delay",
type=float,
default=0,
help="Number of seconds to sleep between processing queries, so that we don't flood our queues.",
)
parser.add_argument(
'--page-size',
"--page-size",
type=int,
default=100,
help="Number of items to query at once.",
)
parser.add_argument(
'--auto',
action='store_true',
help='Use to run the management command periodically',
"--auto",
action="store_true",
help="Use to run the management command periodically",
)
parser.add_argument(
'--args-from-database',
action='store_true',
help='Use arguments from the NotifyCredentialsConfig model instead of the command line.',
"--args-from-database",
action="store_true",
help="Use arguments from the NotifyCredentialsConfig model instead of the command line.",
)
parser.add_argument(
'--verbose',
action='store_true',
help='Run grade/cert change signal in verbose mode',
"--verbose",
action="store_true",
help="Run grade/cert change signal in verbose mode",
)
parser.add_argument(
'--notify_programs',
action='store_true',
help='Send program award notifications with course notification tasks',
"--notify_programs",
action="store_true",
help="Send program award notifications with course notification tasks",
)
parser.add_argument(
'--user_ids',
"--user_ids",
default=None,
nargs='+',
help='Run the command for the given user or list of users',
nargs="+",
help="Run the command for the given user or list of users",
)
parser.add_argument(
'--revoke_program_certs',
action='store_true',
help="If true, system will check if any program certificates need to be revoked from learners"
"--revoke_program_certs",
action="store_true",
help="If true, system will check if any program certificates need to be revoked from learners",
)

def get_args_from_database(self):
""" Returns an options dictionary from the current NotifyCredentialsConfig model. """
"""Returns an options dictionary from the current NotifyCredentialsConfig model."""
config = NotifyCredentialsConfig.current()
if not config.enabled:
raise CommandError('NotifyCredentialsConfig is disabled, but --args-from-database was requested.')
raise CommandError("NotifyCredentialsConfig is disabled, but --args-from-database was requested.")

# This split will allow for quotes to wrap datetimes, like "2020-10-20 04:00:00" and other
# arguments as if it were the command line
argv = shlex.split(config.arguments)
parser = self.create_parser('manage.py', 'notify_credentials')
return parser.parse_args(argv).__dict__ # we want a dictionary, not a non-iterable Namespace object
parser = self.create_parser("manage.py", "notify_credentials")
return parser.parse_args(argv).__dict__ # we want a dictionary, not a non-iterable Namespace object

def handle(self, *args, **options):
if options['args_from_database']:
if options["args_from_database"]:
options = self.get_args_from_database()

if options['auto']:
options['end_date'] = datetime.now().replace(minute=0, second=0, microsecond=0)
options['start_date'] = options['end_date'] - timedelta(hours=4)
if options["auto"]:
options["end_date"] = datetime.now().replace(minute=0, second=0, microsecond=0)
options["start_date"] = options["end_date"] - timedelta(hours=4)

log.info(
f"notify_credentials starting, dry-run={options['dry_run']}, site={options['site']}, "
Expand All @@ -176,14 +178,9 @@ def handle(self, *args, **options):
course_runs.extend(program_course_run_keys)

course_run_keys = self._get_validated_course_run_keys(course_runs)
if not (
course_run_keys or
options['start_date'] or
options['end_date'] or
options['user_ids']
):
if not (course_run_keys or options["start_date"] or options["end_date"] or options["user_ids"]):
raise CommandError(
'You must specify a filter (e.g. --courses, --program_uuids, --start-date, or --user_ids)'
"You must specify a filter (e.g. --courses, --program_uuids, --start-date, or --user_ids)"
)

handle_notify_credentials.delay(options, course_run_keys)
Expand Down

0 comments on commit 8e1e55a

Please sign in to comment.