77[ ![ Binder] ( https://mybinder.org/badge_logo.svg )] ( https://mybinder.org/v2/gh/gosling-lang/gos/main?filepath=notebooks%2Fmultiple-coordinated-views.ipynb )
88[ ![ Open In Colab] ( https://colab.research.google.com/assets/colab-badge.svg )] ( https://colab.research.google.com/github/gosling-lang/gos/blob/main/notebooks/multiple-coordinated-views.ipynb )
99
10- ** gos** is a declarative genomics visualization library for Python.
11- It is built on top of the [ Gosling] JSON specification, providing a
12- simplified interface for authoring interactive genomic visualizations.
13-
10+ ** gos** is a declarative genomics visualization library for Python. It is built
11+ on top of the [ Gosling] JSON specification, providing a simplified interface for
12+ authoring interactive genomic visualizations.
1413
1514## Installation
1615
17- > The ** gos** API is under active development. Feedback is appreciated and welcomed.
16+ > The ** gos** API is under active development. Feedback is appreciated and
17+ > welcomed.
1818
1919``` bash
2020pip install gosling[all]
2121```
2222
2323## Documentation
2424
25- See the [ Documentation Site] ( https://gosling-lang.github.io/gos ) for more information.
25+ See the [ Documentation Site] ( https://gosling-lang.github.io/gos ) for more
26+ information.
2627
2728## Example
2829
@@ -74,15 +75,17 @@ gos.vertical(heatmap, bars, lines).properties(
7475
7576## Example Gallery
7677
77- We have started a [ gallery] ( https://gosling-lang.github.io/gos/gallery/index.html ) of
78- community examples in ` gosling/examples/ ` . If you are interested in contributing, please
79- feel free to submit a PR! Checkout the [ existing JSON examples] ( http://gosling-lang.org/examples/ )
80- if you are looking for inspiration.
78+ We have started a
79+ [ gallery] ( https://gosling-lang.github.io/gos/gallery/index.html ) of community
80+ examples in ` gosling/examples/ ` . If you are interested in contributing, please
81+ feel free to submit a PR! Checkout the
82+ [ existing JSON examples] ( http://gosling-lang.org/examples/ ) if you are looking
83+ for inspiration.
8184
8285## Changelog
8386
84- Check the [ GitHub Releases] ( https://github.com/gosling-lang/gos/releases )
85- for a detailed changelog.
87+ Check the [ GitHub Releases] ( https://github.com/gosling-lang/gos/releases ) for a
88+ detailed changelog.
8689
8790## ** Development**
8891
@@ -102,10 +105,18 @@ Run the test suite with:
102105uv run pytest
103106```
104107
108+ ** Notebooks**
109+
110+ To try out the library in the example ` notebooks/ ` , launch Jupyter Lab with:
111+
112+ ``` sh
113+ uv run jupyter lab
114+ ```
115+
105116** Widget**
106117
107118The widgets implementation is split between ` ./gosling/_widget.py ` (the Python
108- component) and ` ./frontend/widget.ts ` (the TypeScript component).
119+ component) and ` ./frontend/widget.ts ` (the TypeScript component).
109120
110121To modify the widget's behavior in the front end, edit ` ./frontend/widget.ts `
111122and compile with:
@@ -116,6 +127,17 @@ deno task build
116127
117128Use ` deno task dev ` to watch for changes and recompile automatically.
118129
130+ ** Docs**
131+
132+ To build and preview the documentation locally:
133+
134+ ``` sh
135+ uv run docs/build.py
136+ uv run python -m http.server -d docs/dist
137+ ```
138+
139+ Open your browser to http://localhost:8000 to view the generated docs.
140+
119141** Auto-generate Schema Bindings**
120142
121143Much of the Python code in this repository is automatically generated from the
@@ -132,8 +154,8 @@ uv run tools/generate_schema_wrapper.py <tag_name>
132154uv run tools/generate_api_docs.py
133155```
134156
135- Use a ` tag_name ` that corresponds to a valid [ Gosling.js
136- Release] ( https://github.com/gosling-lang/gosling.js/releases ) (e.g.,
157+ Use a ` tag_name ` that corresponds to a valid
158+ [ Gosling.js Release] ( https://github.com/gosling-lang/gosling.js/releases ) (e.g.,
137159` v0.12.3 ` ).
138160
139161You must commit the changes and create a new release. Schema updates usually
@@ -142,8 +164,8 @@ maintainer.
142164
143165## Release
144166
145- Releases are managed via the GitHub UI. The release ** tag determines the
146- package version** published to PyPI.
167+ Releases are managed via the GitHub UI. The release ** tag determines the package
168+ version** published to PyPI.
147169
148170[ Draft a new release] ( https://github.com/gosling-lang/gos/releases/new ) :
149171
@@ -168,16 +190,16 @@ package version** published to PyPI.
168190
169191 - Click _ Publish release_ to make it public.
170192 - This triggers a [ workflow] ( .github/workflows/release.yml ) that builds the
171- package and publishes it to PyPI using the new tag.
193+ package and publishes it to PyPI using the new tag.
172194
173195## Design & Implementation
174196
175197gos is inspired by and borrows heavily from [ Altair] both in project philosophy
176- and implementation. The internal Python API is auto-generated from the
177- [ Gosling ] specification using code adapted directly from Altair to generate
178- [ Vega-Lite ] bindings. This design choice guarantees that visualizations are
179- type-checked in complete concordance with the [ Gosling] specification, and that
180- the Python API remains consistent with the evolving schema over time. Special thanks to
198+ and implementation. The internal Python API is auto-generated from the [ Gosling ]
199+ specification using code adapted directly from Altair to generate [ Vega-Lite ]
200+ bindings. This design choice guarantees that visualizations are type-checked in
201+ complete concordance with the [ Gosling] specification, and that the Python API
202+ remains consistent with the evolving schema over time. Special thanks to
181203[ Jake Vanderplas] ( https://github.com/jakevdp ) and others on
182204[ ` schemapi ` ] ( https://github.com/altair-viz/altair/tree/master/tools/schemapi ) .
183205
0 commit comments