Code Monkey home page Code Monkey logo

wxyz's Introduction

wxyz

Experimental Widgets for JupyterLab.

build demo docs
build-badge binder-badge DOCSEXAMPLESCHANGELOGCONTRIBUTING

Install and Use

pip or conda install W from wxyz.Y import Z powered by
wxyz_core core JSON
UnJSON
jsonpointer
jsonschema
wxyz_datagrid datagrid DataGrid
GridStyle
SelectGrid
StyleGrid
pandas
wxyz_core
wxyz_html html AlphaColorPicker
File
FileBox
FullScreen
JSONFile
TextFile
wxyz_core
wxyz_dvcs dvcs repos.repo_git.Git
Watcher
gitpython
watchgod
wxyz_core
wxyz_json_e json_e JSONE jsone
wxyz_core
wxyz_json_schema_form json_schema_form JSONSchemaForm wxyz_core
wxyz_jsonld jsonld Compact
Expand
Flatten
Frame
Normalize
pyld
wxyz_core
wxyz_lab lab DockBox
DockPop
Editor
Markdown
Terminal
ModeInfo
jupyterlab
wxyz_core
wxyz_svg svg SVGBox wxyz_core
wxyz_tpl_jinja tpl_jinja Template jinja2
wxyz_core
wxyz_yaml yaml YAML pyyaml
wxyz_core

Strongly Discouraged

wxyz_notebooks, not recommended for production use, requires all of the wxyz_* packages.

Some extra(s) dangerous dependencies are available as well

pip install wxyz_notebooks              # wxyz_*
pip install wxyz_notebooks[binder]      # everything used on binder demos, used in tests
pip install wxyz_notebooks[thirdparty]  # some casually co-tested third-party packages
pip install wxyz_notebooks[all]         # everything. it's a lot. good luck.

It is unknown whether the heavier dependencies will continue to work in the future and may carry very specific version pins which might not be solveable with any old:

  • operating system
  • version of python
  • package manager

Motivation

wxyz contains a number of "missing pieces" from the ipywidgets toolbox. It is made up of a number of packages for Python and the browser, in this repo. While many create pixels on the page, some are focused around configurably transforming the traitlets of one widget to another, in the kernel, the browser or both.

Uninstall

We're sad to see you go!

Use pip or conda to uninstall any wxyz_* packages.

Alternatives

If you don't like wxyz, that's fine! There are a number of related tools that might be better suited to your needs.

  • formulas
    • a python-side re-implementation of an Excel/LibreOffice reactive functional programming model
  • ipyevents
    • fine-grained DOM event control
  • ipylab
    • a number of similar utilities as parts of wxyz.lab, and nice support for commands, and additional lumino primitives, e.g. SplitPanel
  • ipyregulartable
    • a high-performance datagrid solution, supporting pandas MultiIndex-type data
  • jupyter-starters
    • wizard-style project templates, driven by simple configuration, JSON Schema or notebooks
  • jupyterlab-tour
    • a pleasant "guided tour" of JupyterLab via CSS selectors and JSON Schema

Code of Conduct

wxyz contributors and users are expected to behave in a manner in line with the code of conduct.

Open Source

wxyz is licensed under the BSD-3-Clause

wxyz's People

Contributors

bollwyvl avatar nrbgt avatar tonyfast avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wxyz's Issues

Release 0.6.0

  • merge all outstanding PRs
  • ensure the versions have been bumped (check with doit)
  • ensure the CHANGELOG is up-to-date
    • move the new release to the top of the stack
  • validate on binder
  • validate on ReadTheDocs
  • wait for a successful build of main
  • download the dist archive and unpack somewhere (maybe a fresh dist)
  • create a new release through the GitHub UI
    • paste in the relevant CHANGELOG entries
    • upload the artifacts
  • actually upload to npm.com, pypi.org
    cd dist
    twine upload *.tar.gz *.whl
    npm login
    npm publish deathbeds-*-$VERSION.tgz
    npm logout
  • postmortem
    • handle conda-forge feedstock tasks
    • validate on binder via simplest-possible gists
    • bump to next development version
    • bump the CACHE_EPOCH
    • rebuild yarn.lock
    • update release procedures with lessons learned

Release 0.4.0

  • update (test?) for newest rjsf #32
  • build, upload artifacts in CI #34
  • verify on binder
  • tag
  • upload to npm/pip
  • badge
  • bump version for next dev cycle

Collapsable table widget?

Assuming that it is possible to get a UI that looks like the example here:

https://dgothrek.gitlab.io/ipyaggrid/guide/customize.html#user-params

Specifically:

image

How would we define a Python panda table/dict to do the same kind of thing with wxyz_datagrid?

A related question: is there a way to add some event callbacks?

E.g, if the user clicks on a row/col table cell, can we get a callback event in Python?

The use case would be display in some kind of property sheet UI some information pertaining to the table selection.

Git tree grid

Goal

  • figure out a data structure (might be text) for the output of
$> git log --all --decorate --oneline --graph

* 386ca15 (HEAD -> add-git-tree-grid, origin/add-git-tree-grid) resolve locks
| * fecc708 (origin/add-qfd-grid-example, add-qfd-grid-example) resolve
| * b083871 relock
|/  
* c0064c5 (tag: v0.5.0, upstream/master, master, fix-doit-lab) Check Lab 3.0.5, Preflight release (#55)
* 9645f1c Use myst-nb for docs (#54)
| * 0e0bb02 (upstream/gh-pages) Delete CNAME
| * 3a8fe63 wxyz 0.5.0 c0064c5
| * b3b2360 initial commit
| * a4c740e (origin/use-myst, use-myst) more work on myst output
| * 21d0f49 some tweaks for docs
| * b264e59 start trying myst-nb
|/  
* 14e8111 Docs and dependencies for wxyz_notebooks, third-party packages for demo/testing (#51)
| * dde7405 (origin/fix-docs-and-deps, fix-docs-and-deps) update spelling
| * ecbffef fix integrity (don't check for npm package names)
| * 432ac9c some docs for wxyz_notebook, add extras
| * a4f6ace re-lock envs with new demo deps
| * 30c9de7 update readme, tpot deps
|/  
* e0c2739 (fix-editor-undo) JupyterLab 3 Support (#50)
* 5bda783 (tag: v0.4.2) Decomission azure, improve github actions (#49)
  • add a grid renderer that can draw the output
    • initially as monospace text
    • eventually pretty lines and symbols on canvas
    • some cute things for heads, tags, branches
    • maybe render LabIcons down to canvas
  • include in a demo
  • test it

Design ideas

  • it should be possible to use the absolute width of the ascii art to make a fairly good, consistent line drawing where the | would line up with its parent

Add Github Actions

This is one of the last hold-outs on azure. Let's move it over to GHA before the Lab 3 push (#42).

  • #45 restored parity with azure
  • #46 starts making some optimizations for file structure (keep/appease azure and gha)
  • make ci.yml source of truth for lock creation, etc., update conda-lock behavior, remove azure
  • do better version validation, cut a 0.4.2 release to fix #47

Support jupyterlab-classic?

#51 added jupyterlab-classic but it breaks pretty hard at the widget loading level.

If it's low-effort to support, if not test, we should, but doesn't block #42

Add JupyterLite Compatibility

Elevator Pitch

Offer as many of the wxyz packages for jupyterlite as possible.

Proposed Solution

  • review dependencies, optimize for noarch or pyodide-compatible technologies
  • split labextension distributions from kernel components a la deathbeds/ipydrawio#63 (comment)
  • add a lite build to docs site

Challenges

  • dvcs will be particularly challenging: a dulwich driver might be a possibility

Release 0.4.2

This is the last planned JupyterLab 2-compatible release.

Notes:

  • lays groundwork for pypi-distributable extensions on JupyterLab 3 (#42)

Tasks:

  • #45 migrate build/test infrastructure to github actions (for #44)
  • #46 unifies versions between python/javscript packages (for #47)
  • #49 turn off azure pipelines
    • changelog
  • docs no significant changes needed
  • tag
  • publish

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.