{"id":21891224,"url":"https://github.com/deathbeds/wxyz","last_synced_at":"2026-03-17T03:35:54.151Z","repository":{"id":40750717,"uuid":"172186206","full_name":"deathbeds/wxyz","owner":"deathbeds","description":"Some Experimental Widgets","archived":false,"fork":false,"pushed_at":"2023-02-03T04:49:56.000Z","size":10838,"stargazers_count":31,"open_issues_count":14,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-03T13:52:58.521Z","etag":null,"topics":["ipywidgets","jupyter","jupyterlab","traitlets","wxyz"],"latest_commit_sha":null,"homepage":"https://deathbeds.github.io/wxyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deathbeds.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-23T07:39:22.000Z","updated_at":"2024-12-05T14:53:17.000Z","dependencies_parsed_at":"2023-02-08T16:46:22.618Z","dependency_job_id":null,"html_url":"https://github.com/deathbeds/wxyz","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/deathbeds/wxyz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathbeds%2Fwxyz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathbeds%2Fwxyz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathbeds%2Fwxyz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathbeds%2Fwxyz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deathbeds","download_url":"https://codeload.github.com/deathbeds/wxyz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathbeds%2Fwxyz/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264752923,"owners_count":23658747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ipywidgets","jupyter","jupyterlab","traitlets","wxyz"],"created_at":"2024-11-28T12:23:31.363Z","updated_at":"2026-03-17T03:35:49.109Z","avatar_url":"https://github.com/deathbeds.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wxyz\n\n\u003e Experimental [Widgets][] for [JupyterLab][].\n\n|           build           |            demo             |                            docs                            |\n| :-----------------------: | :-------------------------: | :--------------------------------------------------------: |\n| [![build-badge][]][build] | [![binder-badge][]][binder] | [DOCS][] — [EXAMPLES][] — [CHANGELOG][] — [CONTRIBUTING][] |\n\n## Install and Use\n\n| `pip or conda install W` |      `from wxyz.Y` | `import Z`                                                                                 | _powered by_                               |\n| :----------------------- | -----------------: | :----------------------------------------------------------------------------------------- | ------------------------------------------ |\n| `wxyz_core`              |             `core` | `JSON`\u003cbr/\u003e`UnJSON`\u003cbr/\u003e                                                                   | `jsonpointer`\u003cbr/\u003e`jsonschema`             |\n| `wxyz_datagrid`          |         `datagrid` | `DataGrid`\u003cbr/\u003e`GridStyle`\u003cbr/\u003e`SelectGrid`\u003cbr/\u003e`StyleGrid`                                | `pandas`\u003cbr/\u003e`wxyz_core`                   |\n| `wxyz_html`              |             `html` | `AlphaColorPicker`\u003cbr/\u003e`File`\u003cbr/\u003e`FileBox`\u003cbr/\u003e`FullScreen`\u003cbr/\u003e`JSONFile`\u003cbr/\u003e`TextFile` | `wxyz_core`                                |\n| `wxyz_dvcs`              |             `dvcs` | `repos.repo_git.Git`\u003cbr/\u003e`Watcher`                                                         | `gitpython`\u003cbr/\u003e`watchgod`\u003cbr/\u003e`wxyz_core` |\n| `wxyz_json_e`            |           `json_e` | `JSONE`                                                                                    | `jsone`\u003cbr/\u003e`wxyz_core`                    |\n| `wxyz_json_schema_form`  | `json_schema_form` | `JSONSchemaForm`                                                                           | `wxyz_core`                                |\n| `wxyz_jsonld`            |           `jsonld` | `Compact`\u003cbr/\u003e`Expand`\u003cbr/\u003e`Flatten`\u003cbr/\u003e`Frame`\u003cbr/\u003e`Normalize`                           | `pyld`\u003cbr/\u003e`wxyz_core`                     |\n| `wxyz_lab`               |              `lab` | `DockBox`\u003cbr/\u003e`DockPop`\u003cbr/\u003e`Editor`\u003cbr/\u003e`Markdown`\u003cbr/\u003e`Terminal`\u003cbr/\u003e`ModeInfo`          | `jupyterlab`\u003cbr/\u003e`wxyz_core`               |\n| `wxyz_svg`               |              `svg` | `SVGBox`                                                                                   | `wxyz_core`                                |\n| `wxyz_tpl_jinja`         |        `tpl_jinja` | `Template`                                                                                 | `jinja2`\u003cbr/\u003e`wxyz_core`                   |\n| `wxyz_yaml`              |             `yaml` | `YAML`                                                                                     | `pyyaml`\u003cbr/\u003e`wxyz_core`                   |\n\n### Strongly Discouraged\n\n`wxyz_notebooks`, not **recommended for production use**, requires all of the `wxyz_*`\npackages.\n\nSome _`extra(s)` dangerous_ dependencies are available as well\n\n```bash\npip install wxyz_notebooks              # wxyz_*\npip install wxyz_notebooks[binder]      # everything used on binder demos, used in tests\npip install wxyz_notebooks[thirdparty]  # some casually co-tested third-party packages\npip install wxyz_notebooks[all]         # everything. it's a lot. good luck.\n```\n\nIt is unknown whether the heavier dependencies will continue to work in the future and\nmay carry _very specific version pins_ which might not be solveable with any old:\n\n- operating system\n- version of python\n- package manager\n\n## Motivation\n\n`wxyz` contains a number of \"missing pieces\" from the [ipywidgets][] toolbox. It is made\nup of a number of packages for Python and the browser, in [this repo][]. While many\ncreate _pixels on the page_, some are focused around configurably transforming the\n[traitlets][] of one widget to another, in the _kernel_, the _browser_ or _both_.\n\n## Uninstall\n\nWe're sad to see you go!\n\nUse `pip` or `conda` to uninstall any `wxyz_*` packages.\n\n## Alternatives\n\nIf you don't like `wxyz`, that's fine! There are a number of related tools that might be\nbetter suited to your needs.\n\n- [formulas]\n  - a python-side re-implementation of an Excel/LibreOffice reactive functional\n    programming model\n- [ipyevents]\n  - fine-grained DOM event control\n- [ipylab]\n  - a number of similar utilities as parts of `wxyz.lab`, and nice support for commands,\n    and additional [lumino][] primitives, e.g. `SplitPanel`\n- [ipyregulartable]\n  - a high-performance datagrid solution, supporting pandas `MultiIndex`-type data\n- [jupyter-starters]\n  - wizard-style project templates, driven by simple configuration, JSON Schema or\n    notebooks\n- [jupyterlab-tour]\n  - a pleasant \"guided tour\" of JupyterLab via CSS selectors and JSON Schema\n\n## Code of Conduct\n\n`wxyz` contributors and users are expected to behave in a manner in line with the [code\nof conduct].\n\n## Open Source\n\n`wxyz` is licensed under the [`BSD-3-Clause`][license]\n\n[binder-badge]: https://mybinder.org/badge_logo.svg\n[binder]:\n  https://mybinder.org/v2/gh/deathbeds/wxyz/main?urlpath=lab/tree/src/py/wxyz_notebooks/src/wxyz/notebooks/index.ipynb\n[docs]: https://deathbeds.github.io/wxyz\n[build-badge]:\n  https://dev.azure.com/nickbollweg/deathbeds/_apis/build/status/deathbeds.wxyz?branchName=main\n[build]:\n  https://dev.azure.com/nickbollweg/deathbeds/_build/latest?definitionId=6\u0026branchName=main\n[changelog]: https://github.com/deathbeds/wxyz/blob/main/CHANGELOG.md\n[contributing]: https://github.com/deathbeds/wxyz/blob/main/CONTRIBUTING.md\n[examples]:\n  https://github.com/deathbeds/wxyz/blob/main/src/py/wxyz_notebooks/src/wxyz/notebooks/index.ipynb\n[formulas]: https://pypi.org/project/formulas/\n[ipyevents]: https://github.com/mwcraig/ipyevents\n[ipylab]: https://github.com/jtpio/ipylab\n[ipyregulartable]: https://github.com/jpmorganchase/ipyregulartable\n[ipywidgets]: https://github.com/jupyter-widgets/ipywidgets\n[jupyter-starters]: https://pypi.org/project/jupyter-starters/\n[jupyterlab-tour]: https://github.com/fcollonval/jupyterlab-tour\n[jupyterlab]: https://github.com/jupyterlab/jupyterlab\n[lumino]: https://github.com/jupyterlab/lumino\n[this repo]: https://github.com/deathbeds/wxyz\n[traitlets]: https://github.com/ipython/traitlets\n[widgets]: https://jupyter.org/widgets\n[license]: https://github.com/deathbeds/wxyz/blob/main/CHANGELOG.md\n[code of conduct]: https://github.com/deathbeds/wxyz/blob/main/CODE_OF_CONDUCT.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeathbeds%2Fwxyz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeathbeds%2Fwxyz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeathbeds%2Fwxyz/lists"}