Source code for pykubegrader.tokens.token_panel
import os
import panel as pn
import requests
from requests.auth import HTTPBasicAuth
from ..utils import api_base_url
# Dummy credentials for HTTP Basic Auth
AUTH = HTTPBasicAuth("user", "password")
# Panel configuration
pn.extension()
[docs]
def get_jhub_user():
"""
Fetches the JupyterHub user from the environment.
"""
jhub_user = os.getenv("JUPYTERHUB_USER")
if jhub_user is None:
raise ValueError("JupyterHub user not found")
return jhub_user
[docs]
def get_students():
# Make the request
response = requests.get(
f"{api_base_url}students",
auth=HTTPBasicAuth("user", "pass"), # Basic Auth
params={"requester": get_jhub_user()}, # Query parameter
)
# Print response
if response.status_code == 200:
return [student["email"].split("@")[0] for student in response.json()]
else:
print(f"Error {response.status_code}: {response.text}")
[docs]
def get_assignments():
# Make the request
response = requests.get(
f"{api_base_url}assignments",
auth=HTTPBasicAuth("user", "pass"), # Basic Auth
params={"requester": get_jhub_user()}, # Query parameter
)
# Print response
if response.status_code == 200:
return [assignment["title"] for assignment in response.json()]
else:
print(f"Error {response.status_code}: {response.text}")