The `tag_autocomplete_data`, `add_tag_async`, and `remove_tag_async`
endpoints served a long-removed jQuery/YUI autocomplete widget and have
zero non-self references in the codebase. Modern tagging uses
`PUT /api/tags` (`FastAPITags.update`).
- Remove is_path_within_dependency_dir() and is_path_within_repo() (no callers)
- Remove unused os import from shed_util_common
- Delete empty tool_shed/webapp/framework/ package
- Remove stale mypy.ini and Sphinx doc references
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move display_image_in_repository to FastAPI with hardened security:
realpath symlink validation, image-only MIME type restriction, stdlib
mimetypes fallback. Delete controllers/repository.py, remove image
route from buildapp, clean stale mypy/sphinx refs, drop orphaned
test_0140/test_1160 image tests. Add 5 new API tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The project seems to be a deadend and it was never adopted in production as far as I am aware. The cgroup plugin seems to provide similar information with much less overhead and with easier to manage dependencies.
The new Makefile-based command ``make serve-selenium-notebooks`` will serve notebooks in lib/galaxy_test/selenium/jupyter.
The notebooks will target a Galaxy host running on port 8080 - but are parameterized to be run with papermill (https://papermill.readthedocs.io/) for automate targeting different Galaxy servers, remote Selenium servers, etc..
Screenshots will be embedded right into the notebook.
Example notebooks setup to target just the library code in ``galaxy-selenium`` as well as one appropriate to leverage the Galaxy testing framework are included and documented in depth via modules docstring for ``galaxy_test.selenium.jupyter``.
Otherwise there may be import issues:
```
==================================== ERRORS ====================================
________________________ ERROR collecting test session _________________________
.tox/py27-unit/lib/python2.7/site-packages/py/_path/common.py:383: in visit
for x in Visitor(fil, rec, ignore, bf, sort).gen(self):
.tox/py27-unit/lib/python2.7/site-packages/py/_path/common.py:425: in gen
if p.check(dir=1) and (rec is None or rec(p))])
.tox/py27-unit/lib/python2.7/site-packages/_pytest/main.py:667: in _recurse
ihook = self.gethookproxy(dirpath)
.tox/py27-unit/lib/python2.7/site-packages/_pytest/main.py:482: in gethookproxy
my_conftestmodules = pm._getconftestmodules(fspath)
.tox/py27-unit/lib/python2.7/site-packages/_pytest/config/__init__.py:424: in _getconftestmodules
mod = self._importconftest(conftestpath.realpath())
.tox/py27-unit/lib/python2.7/site-packages/_pytest/config/__init__.py:463: in _importconftest
raise ConftestImportFailure(conftestpath, sys.exc_info())
E ConftestImportFailure: (local('/home/circleci/repo/test/unit/queue_worker/conftest.py'), (<type 'exceptions.AttributeError'>, AttributeError("'module' object has no attribute 'getLogger'",), <traceback object at 0x7fabd96b7eb0>))
----- generated html file: file:///home/circleci/repo/run_unit_tests.html ------
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 1.83 seconds ============================
```
Also simplify updaterst target in doc/Makefile
Partially revert commit b4feb85f11 : re-add
doc/source/lib/galaxy.webapps.galaxy.api.rst and
doc/source/lib/galaxy.webapps.tool_shed.api.rst and include them in
doc/source/api/api.rst and doc/source/api/ts_api.rst respectively to
simplify doc maintenance.