Install & Compatibility
Where this runs
tested against v4.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.828s · 122.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 8.6s · import 0.790s · 124MB
132MB installed
● package 132MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
StudioContainerXBlockMixin
✓ from xblockutils.studio_editable import StudioContainerXBlockMixin
✗ from xblockutils import StudioContainerXBlockMixin
StudioContainerXBlockMixin is in the studio_editable submodule, not top-level
StudioEditableXBlockMixin
✓ from xblockutils.studio_editable import StudioEditableXBlockMixin
✗ from xblockutils.base import StudioEditableXBlockMixin
Old import path was in base module; moved to studio_editable
Define an XBlock with studio-editable fields using StudioEditableXBlockMixin.
from xblock.core import XBlock
from xblockutils.studio_editable import StudioEditableXBlockMixin
class MyXBlock(StudioEditableXBlockMixin, XBlock):
display_name = 'My Editable Block'
editable_fields = ['display_name']
Errors
Common errors & fixes
ImportError: cannot import name 'StudioEditableXBlockMixin' from 'xblockutils'
The import path changed from top-level to submodule in an older version.
fixUse: from xblockutils.studio_editable import StudioEditableXBlockMixin
ModuleNotFoundError: No module named 'xblockutils'
xblock-utils is not installed.
fixRun: pip install xblock-utils
AttributeError: 'MyXBlock' object has no attribute 'editable_fields'
You must set editable_fields on the class when using StudioEditableXBlockMixin.
fixAdd editable_fields = ['field1', 'field2'] to your XBlock class.
Upgrade
Version history
4.0.0latest on PyPI · released Oct 4, 2023
Audit
Dependencies
xblockrequiredCore XBlock package required for development
xblock[django]requiredRequired for Django integration since v3.4.0