A set of internal tools for Ohio University's CS3560 course.
Project description
cs3560cli
A set of internal tools for Ohio University's CS3560 course.
Installation
python -m pip install cs3560cli
Features
blackboard student-list
Command
Offer a link to get student enrollment data and offer to parse the JSON data into TSV data for an Excel sheet or Google Sheet
Usage
$ python -m cs3560cli blackboard student-list https://blackboard.ohio.edu/ultra/courses/_642196_1/cl/outline
Student list link:
https://blackboard.ohio.edu/learn/api/public/v1/courses/_642196_1/users?fields=id,userId,user,courseRoleId
Visit the link above in your browser.
Then copy and paste in the JSON data below and hit Ctrl-D (EOF) when you are done:
... [JSON Data pasted in by the user] ...
TSV data of the students:
firstName lastName emailHandle isDrop github-username team-id team-name m1 m2 m3 m4 final assigned-ta note discord-username codewars-username userId courseMembershipId
... [formatted row of TSV data] ...
You can then copy this TSV data and paste into Excel sheet or Google Sheet.
blackboard categorize
Command
When you download all submissions from an assignment, you will get a zip file with files from all students together in one place. This command can group files from a student together in a folder of their username.
$ python -m cs3560cli blackboard categorize gradebook_CS_3560_100_LEC_SPRG_2023-24_HW2.zip hw2
Categorizing files ...
$ ls hw2/
kc555014 ...
watch-zip
Command
Watch for an archive file and extract it. This can be useful when you are grading student's submission, so you do not have to manually unzip it.
Usage
$ python -m cs3560cli watch-zip .
$ python -m cs3560cli watch-zip ~/Downloads
highlight
Command
Create a syntax highlight code block with in-line style. The result can thus be embed into a content of LMS.
create-gitignore
Command
Create a .gitignore
file using content from github/gitignore repository.
Usage
$ python -m cs3560cli create-gitignore python
$ python -m cs3560cli create-gitignore cpp
By default, it also add windows
and macos
to the .gitignore
file.
check-username
Command
TBD
Scenario
New semester preparation
- Obtain the list of enrolled students.
- Creating a team in GitHub organization.
- Add
OU-CS3560/examples
to the team. - Invite all students into the team in GitHUb organization.
Requirements
gh extension install mislav/gh-repo-collab
$TeamName = "entire-class-24f"
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/orgs/OU-CS3560/teams \
-f name="$TeamName" \
-f notification_setting='notifications_disabled' \
-f privacy='closed'
gh repo-collab add OU-CS3560/examples "OU-CS3560/$TeamName" --permission read
python -m cs3560cli github bulk-invite
Creating repositories for teams
- (manual) Obtain team information (internal-id, members).
- Create a team.
- Create a repository.
- Add team to the repository with
maintain
permission. - (manual) Invite students to the team.
Requirements
gh extension install mislav/gh-repo-collab
$TeamId = ""
$TeamHandle = "OU-CS3560/" + $TeamId
$RepoHandle = "OU-CS3560/" + $TeamId
$ParentTeamId = python -m cs3560cli github get-team-id OU-CS3560 entire-class-24f | Out-String
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/orgs/OU-CS3560/teams \
-f parent_team_id=$ParentTeamId \
-f name="$TeamId" \
-f notification_setting='notifications_disabled' \
-f privacy='closed'
gh repo create --private --template OU-CS3560/team-template $RepoHandle
gh repo-collab add $RepoHandle $TeamHandle --permission maintain
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cs3560cli-0.2.1.tar.gz
.
File metadata
- Download URL: cs3560cli-0.2.1.tar.gz
- Upload date:
- Size: 36.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 145f4ca19b4618f4e9c0f0e8c47d4452c2a09a5223156d3a1264a01f4516f97e |
|
MD5 | 468db6b5ba4fa42609eef58e410f44ac |
|
BLAKE2b-256 | 36809cf2477ffd7a0b2eb1a1fb8d9e11aff63e479be6611646d051a246d0eef6 |
File details
Details for the file cs3560cli-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: cs3560cli-0.2.1-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62914ac5b9d07a78cbf9313b5868065b13e69ef52d0501146c1d67ebd282a792 |
|
MD5 | fb95b4898e23f33c3800c4ad83e00377 |
|
BLAKE2b-256 | a7890e8c03b8656e42cab61ac41efaa190c0e03427eea60a2e34c2482865ade0 |