Skip to content

Instantly share code, notes, and snippets.

@serifcolakel
Created June 18, 2025 21:21
Show Gist options
  • Save serifcolakel/31477840889c18f8ce2ae406ed961382 to your computer and use it in GitHub Desktop.
Save serifcolakel/31477840889c18f8ce2ae406ed961382 to your computer and use it in GitHub Desktop.
from functools import partial
from typing import Callable
from enum import Enum
import datetime
import asyncio
import random
class Priority(Enum):
HIGH = 'high'
NORMAL = 'normal'
LOW = 'low'
class Retry(Enum):
ENABLED = 'enabled'
DISABLED = 'disabled'
def create_task(
assignee: str,
title: str,
description: str,
priority: Priority = Priority.NORMAL,
retry: Retry = Retry.ENABLED
) -> None:
now = datetime.datetime.now()
print(f"Creating task for {assignee} with title '{title}' and description '{description}' with priority '{priority.value}'")
print("Loading", end="", flush=True)
for _ in range(random.randint(3, 4)):
print(".", end="", flush=True)
asyncio.run(asyncio.sleep(0.5))
asyncio.run(asyncio.sleep(random.uniform(0.1, 1.0)))
if retry == Retry.ENABLED:
diff = datetime.datetime.now() - now
print(f"\nRetrying is enabled. Time taken to create task: {diff} \n")
else:
diff = datetime.datetime.now() - now
print(f"\nRetrying is disabled. Time taken to create task: {diff} \n")
create_task_urgent: Callable[[str, str, str], None] = partial(create_task, priority=Priority.HIGH, retry=Retry.DISABLED)
create_task_normal: Callable[[str, str, str], None] = partial(create_task, priority=Priority.NORMAL, retry=Retry.ENABLED)
create_task_low: Callable[[str, str, str], None] = partial(create_task, priority=Priority.LOW, retry=Retry.ENABLED)
def main() -> None:
create_task_urgent("alice", "Fix critical bug", "Resolve the production outage immediately.")
create_task_normal("bob", "Update documentation", "Add usage examples to the README.")
create_task_low("carol", "Refactor code", "Clean up unused imports in the codebase.")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment