This fixes the ability to pass custom theme directories to
the management command which compiles site themes, a la:
./manage.py lms compile_sass --theme-dirs /my/custom/themes/dir
The exception, which was due to a incompatible use of @lru_cache, was:
File "openedx/core/djangoapps/theming/management/commands/compile_sass.py",
line 93, in parse_arguments:
available_themes.update({t.theme_dir_name: t for t in get_themes([theme_dir])})
TypeError: unhashable type: 'list'
This has been broken since the @lru_cache decorator was added, but it
wasn't noticed because:
* We weren't compiling any comprehensive themes in CI.
* Tutor supports compehensive theming, but not *site theming*, so
it doesn't use this management command at all
(site themeing == comp theming * site configuration).
* Although edx.org executes this management command, it does not provide
use the `--theme-dirs` argument, so the bug was not hit.
Open edX -------- This is the root package for Open edX. The intent is that all importable code from Open edX will eventually live here, including the code in the lms, cms, and common directories. If you're adding a new Django app, place it in core/djangoapps. If you're adding utilities that require Django, place them in core/djangolib. If you're adding code that defines no Django models or views of its own but is widely useful, put it in core/lib. Note: All new code should be created in this package, and the legacy code will be moved here gradually. For now the code is not structured like this, and hence legacy code will continue to live in a number of different packages.