Okay, the problem is that L227 in item.py can't handle None as an asserted value for grader_type as None may mean that it wasn't provided. Perhaps change L129 to give a different default if 'graderType' is missing so that None means 'graderType' == None? Then you can get rid of the 'Not Graded' references (L176, L182) in this file,  There are probably other changes.

In general, I think the value should be None/null for not set and the client should be the only one that knows it should use the l10n 'Not Graded' string w/ its unique display formatting.