{"id":21651,"library":"openedx-filters","title":"Open edX Filters","description":"Open edX Filters implement the Hooks Extensions Framework (OEP-50), allowing third-party plugins to hook into and modify Open edX platform behavior. Current version is 3.1.0, requiring Python >=3.12. The library is actively maintained by the Open edX community with regular releases.","status":"active","version":"3.1.0","language":"python","source_language":"en","source_url":"https://github.com/openedx/openedx-filters","tags":["openedx","filters","hooks","plugins","OEP-50"],"install":[{"cmd":"pip install openedx-filters","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"wrong":"from openedx_filters import PipelineData","symbol":"PipelineStep","correct":"from openedx_filters import PipelineStep"}],"quickstart":{"code":"import openedx_filters\nfrom openedx_filters import PipelineData, ToolImplementationError\n\n# Define a simple filter function that adds data\ndef my_filter(data, **kwargs):\n    data['extra'] = 'added by filter'\n    return PipelineData(data)\n\n# Register the filter (typically in your plugin's app config)\n# This assumes the filter is already defined in the Open edX pipeline.\nprint(\"Filter registered. See official docs for full example.\")","lang":"python","description":"Minimal example showing how to import key symbols. Full integration requires Django app configuration and settings."},"warnings":[{"fix":"Upgrade your environment to Python 3.12 or later.","message":"Python 3.12 minimum: version 3.0.0 dropped support for Python 3.8, 3.9, 3.10, and 3.11.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Refer to the official filter list at https://github.com/openedx/openedx-filters/tree/main/openedx_filters/learning/filters.","message":"Filter class names have changed over time; always use the latest naming as per the docs for your version.","severity":"gotcha","affected_versions":"all"},{"fix":"Always use PipelineData(data_dict) and access via data.your_key or data['your_key'] (it supports both).","message":"The PipelineData object is not a dict; treating it as one may break attribute access.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'-50':13,53 '3.1.0':31 '3.12':34 'activ':38 'allow':14 'behavior':27 'communiti':44 'current':28 'edx':2,5,25,43 'extens':10 'filter':3,6,49 'framework':11 'hook':9,20,50 'implement':7 'librari':36 'maintain':39 'modifi':23 'oep':12,52 'open':1,4,24,42 'openedx':48 'parti':17 'platform':26 'plugin':18,51 'python':33 'regular':46 'releas':47 'requir':32 'third':16 'third-parti':15 'version':29","created_at":"2026-04-27T17:01:01.885391+00:00","updated_at":"2026-04-27T17:01:01.885391+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.5.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/openedx/openedx-filters","docs":null,"changelog":null,"pypi":"https://pypi.org/project/openedx-filters/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}