**This release deliberately contains backwards-incompatible changes**. To avoid automatically picking up releases like this, you can pin the exact version of `higlass-python` in your `pyproject.toml` or `requirements.txt` file .
* Switch to Jupyter comms-based server (remove `hg.server`) by manzt in https://github.com/higlass/higlass-python/pull/145
HiGlass now uses Jupyter's built-in communication system to serve tilesets, removing the need for `hg.server`. Previously, `hg.server` ran a background HTTP server, but it caused issues on remote machines (e.g., authentication, port configuration).
This update removes `hg.server` and replaces it with a Jupyter comms-based approach, leveraging existing WebSocket connections. This makes HiGlass more robust across different environments and simplifies setup.
If HiGlass already works for you, nothing should change! If you previously used `hg.server.enable_proxy`, you can simple remove that line in your code:
diff
-- hg.server.enable_proxy()
This is a new feature, so please report any issues!
* Add `higlass.Tileset` for making custom tilesets by manzt in https://github.com/higlass/higlass-python/pull/172, https://github.com/higlass/higlass-python/pull/177
With the removal of `hg.server`, HiGlass now provides a simpler way to define custom tilesets.
Instead of `hg.server.add(tileset)`, you can now **subclass** `hg.Tileset`:
py
from dataclasses import dataclass
import higlass as hg
from clodius.tiles import cooler
dataclass
class MyCustomCoolerTileset(hg.Tileset):
path: str
datatype = "matrix"
def tiles(self, tile_ids):
return cooler.tiles(self.path, tile_ids)
def info(self):
return cooler.tileset_info(self.path)
tileset = MyCustomCoolerTileset("test.mcool")
hg.view(tileset.track())
`hg.Tileset` automatically registers the tileset via Jupyter comms and provides a `.track()` method to create a HiGlass track with the correct tileset information.
* Remove `higlass.fuse` by manzt in https://github.com/higlass/higlass-python/pull/175
`higlass.fuse` was an incomplete and poorly documented feature that added complexity without clear benefits. Filehandle-like interfaces now provide a more reliable alternative. If you relied on this feature, please open an issue!
**Full Changelog**: https://github.com/higlass/higlass-python/compare/v1.2.1...v1.3.0