cornellGrading 2.16.0__tar.gz → 2.16.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cornellGrading-2.16.0/cornellGrading.egg-info → cornellGrading-2.16.2}/PKG-INFO +12 -3
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/README.md +0 -1
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/__init__.py +1 -1
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/cornellGrading.py +16 -9
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/cornellQualtrics.py +21 -5
- {cornellGrading-2.16.0 → cornellGrading-2.16.2/cornellGrading.egg-info}/PKG-INFO +12 -3
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/LICENSE +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/MANIFEST.in +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/cornellInterface.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/dueDatesFromCSV.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/pandocHTMLParser.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading/upload_MC_questions.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/SOURCES.txt +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/dependency_links.txt +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/entry_points.txt +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/requires.txt +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/top_level.txt +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/pyproject.toml +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/scripts/canvastex.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/scripts/matlabgrader.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/scripts/setupSelfGrading.py +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/setup.cfg +0 -0
- {cornellGrading-2.16.0 → cornellGrading-2.16.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cornellGrading
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.2
|
|
4
4
|
Summary: Routines for interacting with Cornell installations of Canvas and Qualtrics
|
|
5
5
|
Home-page: https://github.com/dsavransky/grading
|
|
6
6
|
Author: Dmitry Savransky
|
|
@@ -12,9 +12,19 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Requires-Python: >=3.7
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: requests
|
|
17
|
+
Requires-Dist: numpy
|
|
18
|
+
Requires-Dist: pandas
|
|
19
|
+
Requires-Dist: keyring
|
|
20
|
+
Requires-Dist: canvasapi
|
|
21
|
+
Requires-Dist: pytz
|
|
15
22
|
Provides-Extra: latex2html
|
|
23
|
+
Requires-Dist: pdf2image; extra == "latex2html"
|
|
24
|
+
Requires-Dist: Pillow; extra == "latex2html"
|
|
16
25
|
Provides-Extra: interface
|
|
17
|
-
|
|
26
|
+
Requires-Dist: console-menu; platform_system == "Windows" and extra == "interface"
|
|
27
|
+
Requires-Dist: bullet; (platform_system == "Linux" or platform_system == "Darwin") and extra == "interface"
|
|
18
28
|
|
|
19
29
|
# grading
|
|
20
30
|
Routines for semi-automated grading of MATLAB coding assignments and interaction with Canvas and Qualtrics.
|
|
@@ -26,7 +36,6 @@ Please note: the Canvas routines have the potential to bork your gradebook and (
|
|
|
26
36
|
[](https://grading.readthedocs.io/en/latest/?badge=latest)
|
|
27
37
|
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
28
38
|
[](https://badge.fury.io/py/cornellGrading)
|
|
29
|
-
[](https://requires.io/github/dsavransky/grading/requirements/?branch=main)
|
|
30
39
|
|
|
31
40
|
cornellGrading Installation
|
|
32
41
|
==============================
|
|
@@ -8,7 +8,6 @@ Please note: the Canvas routines have the potential to bork your gradebook and (
|
|
|
8
8
|
[](https://grading.readthedocs.io/en/latest/?badge=latest)
|
|
9
9
|
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
10
10
|
[](https://badge.fury.io/py/cornellGrading)
|
|
11
|
-
[](https://requires.io/github/dsavransky/grading/requirements/?branch=main)
|
|
12
11
|
|
|
13
12
|
cornellGrading Installation
|
|
14
13
|
==============================
|
|
@@ -795,7 +795,7 @@ class cornellGrading:
|
|
|
795
795
|
|
|
796
796
|
listids = []
|
|
797
797
|
listemails = []
|
|
798
|
-
for el in tmp
|
|
798
|
+
for el in tmp:
|
|
799
799
|
listids.append(el["id"])
|
|
800
800
|
listemails.append(el["email"])
|
|
801
801
|
|
|
@@ -1157,7 +1157,7 @@ class cornellGrading:
|
|
|
1157
1157
|
# won't work if we don't have pandoc
|
|
1158
1158
|
assert shutil.which("pandoc"), (
|
|
1159
1159
|
"Cannot locate pandoc. Please visit https://pandoc.org/installing.html"
|
|
1160
|
-
"for
|
|
1160
|
+
"for installation instructions."
|
|
1161
1161
|
)
|
|
1162
1162
|
|
|
1163
1163
|
# going to assume that the pdf file is located in the working dir with the tex
|
|
@@ -1308,7 +1308,8 @@ class cornellGrading:
|
|
|
1308
1308
|
imtag = re.search(
|
|
1309
1309
|
# r'<p>(<img class="equation_image"(.*?)(?={})([\s\S]*?)(?=/></p>)/>)</p>'.format(
|
|
1310
1310
|
# r'(<img class="equation_image"(.*?)(?={})([\s\S]*?)(?=/>)/>)'.format(
|
|
1311
|
-
r'(<img class="equation_image" src="https://canvas.cornell.edu/equation_images/([\w%]*?)(?={})([\s\S]*?)(?=/>)/>)'.format(
|
|
1311
|
+
# r'(<img class="equation_image" src="https://canvas.cornell.edu/equation_images/([\w%]*?)(?={})([\s\S]*?)(?=/>)/>)'.format(
|
|
1312
|
+
r'(<img class="equation_image" src="https://canvas.cornell.edu/equation_images/([\w%.-]*?)(?={})([\s\S]*?)(?=/>)/>)'.format(
|
|
1312
1313
|
enclabel
|
|
1313
1314
|
),
|
|
1314
1315
|
out,
|
|
@@ -1497,7 +1498,7 @@ class cornellGrading:
|
|
|
1497
1498
|
"""
|
|
1498
1499
|
|
|
1499
1500
|
# create survey and distribution
|
|
1500
|
-
surveyname = "%s HW%d Self-
|
|
1501
|
+
surveyname = "%s HW%d Self-Assessment" % (self.coursename, assignmentNum)
|
|
1501
1502
|
surveyId = self.genPrivateHWSurvey(
|
|
1502
1503
|
surveyname, nprobs, ecprobs=ecprobs, scoreOptions=scoreOptions
|
|
1503
1504
|
)
|
|
@@ -1511,7 +1512,7 @@ class cornellGrading:
|
|
|
1511
1512
|
distnetids = np.array([d["email"].split("@")[0] for d in dist])
|
|
1512
1513
|
|
|
1513
1514
|
# grab the original assignment and all the submissions
|
|
1514
|
-
hwname = "HW%d" % assignmentNum
|
|
1515
|
+
hwname = "Written HW%d" % assignmentNum
|
|
1515
1516
|
hw = self.getAssignment(hwname)
|
|
1516
1517
|
subs = hw.get_submissions()
|
|
1517
1518
|
|
|
@@ -1898,7 +1899,7 @@ class cornellGrading:
|
|
|
1898
1899
|
|
|
1899
1900
|
return md
|
|
1900
1901
|
|
|
1901
|
-
def add2module(self, module, title, obj, indent=0, position=
|
|
1902
|
+
def add2module(self, module, title, obj, indent=0, position="bottom"):
|
|
1902
1903
|
"""Adds an object to a module
|
|
1903
1904
|
|
|
1904
1905
|
Args:
|
|
@@ -1913,10 +1914,10 @@ class cornellGrading:
|
|
|
1913
1914
|
indent (int):
|
|
1914
1915
|
Item indent level (defaults to zero)
|
|
1915
1916
|
position (str, int, or None):
|
|
1916
|
-
If None
|
|
1917
|
+
If None, add new item in the module's default position
|
|
1917
1918
|
(typically at the bottom, but, confusingly, sometimes at the top). If
|
|
1918
1919
|
a string, must be either 'top' or 'bottom' (case-isensitive). If int,
|
|
1919
|
-
this is interpreted as the desired position.
|
|
1920
|
+
this is interpreted as the desired position. Defaults to 'bottom'.
|
|
1920
1921
|
|
|
1921
1922
|
"""
|
|
1922
1923
|
|
|
@@ -1948,7 +1949,13 @@ class cornellGrading:
|
|
|
1948
1949
|
|
|
1949
1950
|
position = maxpos + 1
|
|
1950
1951
|
else:
|
|
1951
|
-
|
|
1952
|
+
minpos = 999999
|
|
1953
|
+
for mi in module.get_module_items():
|
|
1954
|
+
if mi.position < minpos:
|
|
1955
|
+
minpos = mi.position
|
|
1956
|
+
|
|
1957
|
+
position = minpos
|
|
1958
|
+
|
|
1952
1959
|
else:
|
|
1953
1960
|
position = int(position)
|
|
1954
1961
|
|
|
@@ -290,8 +290,8 @@ class cornellQualtrics:
|
|
|
290
290
|
getMailingListId
|
|
291
291
|
|
|
292
292
|
Returns:
|
|
293
|
-
|
|
294
|
-
|
|
293
|
+
list:
|
|
294
|
+
list of dicts encoding all mailing list contacts
|
|
295
295
|
|
|
296
296
|
Notes:
|
|
297
297
|
|
|
@@ -310,7 +310,15 @@ class cornellQualtrics:
|
|
|
310
310
|
response.status_code == 200
|
|
311
311
|
), "Could not get contacts for list {}.".format(mailingListId)
|
|
312
312
|
|
|
313
|
-
|
|
313
|
+
out = response.json()["result"]["elements"]
|
|
314
|
+
|
|
315
|
+
while response.json()["result"]["nextPage"] is not None:
|
|
316
|
+
response = requests.get(
|
|
317
|
+
response.json()["result"]["nextPage"], headers=self.headers_tokenOnly
|
|
318
|
+
)
|
|
319
|
+
out += response.json()["result"]["elements"]
|
|
320
|
+
|
|
321
|
+
return out
|
|
314
322
|
|
|
315
323
|
def dumpContacts(self, mailingListId):
|
|
316
324
|
"""Repackage all contacts in a mailing list into a pandas DataFrame
|
|
@@ -329,7 +337,7 @@ class cornellQualtrics:
|
|
|
329
337
|
|
|
330
338
|
"""
|
|
331
339
|
|
|
332
|
-
contacts = self.getListContacts(mailingListId)
|
|
340
|
+
contacts = self.getListContacts(mailingListId)
|
|
333
341
|
|
|
334
342
|
fn = []
|
|
335
343
|
ln = []
|
|
@@ -461,7 +469,15 @@ class cornellQualtrics:
|
|
|
461
469
|
)
|
|
462
470
|
response2 = requests.get(baseUrl2, headers=self.headers_tokenOnly)
|
|
463
471
|
|
|
464
|
-
|
|
472
|
+
out = response2.json()["result"]["elements"]
|
|
473
|
+
|
|
474
|
+
while response2.json()["result"]["nextPage"] is not None:
|
|
475
|
+
response2 = requests.get(
|
|
476
|
+
response2.json()["result"]["nextPage"], headers=self.headers_tokenOnly
|
|
477
|
+
)
|
|
478
|
+
out += response2.json()["result"]["elements"]
|
|
479
|
+
|
|
480
|
+
return out
|
|
465
481
|
|
|
466
482
|
def getDistributionLinks(self, distributionId, surveyId):
|
|
467
483
|
"""Retrieve distribution info
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cornellGrading
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.2
|
|
4
4
|
Summary: Routines for interacting with Cornell installations of Canvas and Qualtrics
|
|
5
5
|
Home-page: https://github.com/dsavransky/grading
|
|
6
6
|
Author: Dmitry Savransky
|
|
@@ -12,9 +12,19 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Requires-Python: >=3.7
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: requests
|
|
17
|
+
Requires-Dist: numpy
|
|
18
|
+
Requires-Dist: pandas
|
|
19
|
+
Requires-Dist: keyring
|
|
20
|
+
Requires-Dist: canvasapi
|
|
21
|
+
Requires-Dist: pytz
|
|
15
22
|
Provides-Extra: latex2html
|
|
23
|
+
Requires-Dist: pdf2image; extra == "latex2html"
|
|
24
|
+
Requires-Dist: Pillow; extra == "latex2html"
|
|
16
25
|
Provides-Extra: interface
|
|
17
|
-
|
|
26
|
+
Requires-Dist: console-menu; platform_system == "Windows" and extra == "interface"
|
|
27
|
+
Requires-Dist: bullet; (platform_system == "Linux" or platform_system == "Darwin") and extra == "interface"
|
|
18
28
|
|
|
19
29
|
# grading
|
|
20
30
|
Routines for semi-automated grading of MATLAB coding assignments and interaction with Canvas and Qualtrics.
|
|
@@ -26,7 +36,6 @@ Please note: the Canvas routines have the potential to bork your gradebook and (
|
|
|
26
36
|
[](https://grading.readthedocs.io/en/latest/?badge=latest)
|
|
27
37
|
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
28
38
|
[](https://badge.fury.io/py/cornellGrading)
|
|
29
|
-
[](https://requires.io/github/dsavransky/grading/requirements/?branch=main)
|
|
30
39
|
|
|
31
40
|
cornellGrading Installation
|
|
32
41
|
==============================
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cornellGrading-2.16.0 → cornellGrading-2.16.2}/cornellGrading.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|