{"id":26925,"library":"edx-sga","title":"edx-sga Staff Graded Assignment XBlock","description":"An XBlock for Open edX that provides a staff-graded assignment component. Version 0.28.0 is the latest release. The library is maintained as part of MIT Open Learning's Open edX tools, with an active development cadence.","status":"active","version":"0.28.0","language":"python","source_language":"en","source_url":"https://github.com/mitodl/edx-sga","tags":["xblock","open-edx","edx","staff-graded","assignment"],"install":[{"cmd":"pip install edx-sga","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"","wrong":"","symbol":"StaffGradedAssignmentXBlock","correct":"from sga import StaffGradedAssignmentXBlock"}],"quickstart":{"code":"from sga import StaffGradedAssignmentXBlock\n\n# Instantiate the XBlock (requires runtime, typically used within Open edX)\n# Example for testing (not for production):\nfrom xblock.field_data import DictFieldData\nfrom xblock.runtime import KvsFieldData, DictKeyValueStore\n\nfield_data = DictFieldData({})\nkvs = KvsFieldData(DictKeyValueStore())\nruntime = type('MockRuntime', (), {\n    'field_data': field_data,\n    'get_field_data': lambda self: field_data,\n    'course_id': 'course-v1:edX+DemoX+Demo_Course'\n})()\nblock = StaffGradedAssignmentXBlock(runtime, scope_ids=0)\nprint('SGA XBlock initialized successfully')","lang":"python","description":"Initialize a StaffGradedAssignmentXBlock instance (for development/testing purposes)."},"warnings":[{"fix":"Migrate to the built-in Open edX SGA if running Open edX Juniper or later.","message":"The XBlock is deprecated in favor of the built-in Open edX staff-graded assignment (since Open edX Juniper).","severity":"deprecated","affected_versions":">=0.0"},{"fix":"Use `from sga import StaffGradedAssignmentXBlock`.","message":"The import path is `from sga import StaffGradedAssignmentXBlock`, not `from edx_sga` or `from edx_sga import ...`.","severity":"gotcha","affected_versions":">=0.0"},{"fix":"Use Python 3.5+ (recommended Python 3.8+ for latest).","message":"Python 2 support was dropped in version 0.22.0.","severity":"breaking","affected_versions":">=0.22.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from sga import StaffGradedAssignmentXBlock` instead of `from edx_sga import ...`.","cause":"Incorrect import path; the package installs as 'sga'.","error":"ModuleNotFoundError: No module named 'edx_sga'"},{"fix":"Ensure you have installed edx-sga (pip install edx-sga) and use `from sga import StaffGradedAssignmentXBlock`.","cause":"The XBlock class might have been renamed in older versions, or the import is wrong.","error":"ImportError: cannot import name 'StaffGradedAssignmentXBlock' from 'sga'"},{"fix":"Check the documentation for the version you are using. Use `get_max_score()` if available.","cause":"You may be calling a method that exists only in a certain version or relying on deprecated attributes.","error":"AttributeError: 'StaffGradedAssignmentXBlock' object has no attribute 'max_score'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}