* Improve by far error reporting around PyEditor bootstrap
* Improve by far error reporting around PyEditor bootstrapiImprove by far error reporting around PyEditor bootstrap
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix#2146 - Workaround Pyodide issue with attributes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix#2146 - Updated polyscript
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Implemented pyminify for our stdlib
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix#2093 - Show setup errors with the editor
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Minor cleanups: move all Element classes to bottom of module.
* Commenting.
* Commenting.
* Commenting.
* Group dunder methods.
* Don't cache the element's parent.
* Remove style type check until we decide whether or not to add for classes too.
* Add ability to register/unregister element classes.
* Implement __iter__ for container elements.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Minor renaming to make it clear when we have an Element instance vs an actual DOM element.
* remove duplication: added Element.get_tag_name
* Commenting.
* Allow Element.append to 1) use *args, 2) accept iterables
* Remove iterable check - inteferes with js proxies.
* Don't use *args, so it quacks more like a list ;)
* Element.append take 2 :)
* Remove unused code.
* Move to web.py with a page object!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Added 'page.title' too :)
* Add __getitem__ as a shortcut for page.find
* Add Element.__getitem__ to be consistent
* Make __getitem__ consistent for Page, Element and ElementCollection.
* Docstringing.
* Docstringing.
* Docstringing/commenting.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix select.add (revert InnerHTML->html)
* Commenting.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Hand-edit some of the AI :)
* Rename ElementCollection.children -> ElementCollection.elements
* Remove unnecessary guard.
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Updated Polyscript and added Panel worker test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Override __getattr__ and __setattr__ on ElementCollection.
* fix: bug when using a string to query an ElementCollection.
* Use Element.find when indexing ElementCollection with a string.
* For consistency also have a find method on ElementCollection.
* ElementCollection.find now returns a collection of collections :)
* fix tests: for textContent
* Revert to extend for ElementCollection.find :)
* Make element_from_dom a classmethod Element.from_dom
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* rename: Element.from_dom -> Element.from_dom_element
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* PyCharm warning sweep.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Workaround for mp not allowing setting via __dict__
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* change pydom example to use new pyscript.web namespace
* change tests to use new pyscript.web namespace
* create new pyscript.web package and move pydom to pyscript.web.dom
* add __init__ to pyscript.web and expose the dom instance instead of the pyscript.web.dom module
* move elements from pyweb.ui to pyscript.web and temp fix pydom import
* moved of elements file completed
* moved media from pyweb to pyscript.web
* RIP pyweb
* move JSProperty from pyscript.web.dom to pyscript.web.elements
* move element classes from pyscript.web.dom to pyscript.web.elements
* first round of fixes while running tests
* fix test typo
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore right type type returned for Element.parent. ALL TESTS PASS LOCALLY NOW
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* clean up dom.py from dead commented code and osbolete comments
* bugfix: dom shouldn't return None when it can't find any element for a specific selector so it now returns an empty collection
* additional cleanup in tests
* lint
* initial cleaning up of unused modules
* change element.append to not consider types anymore and add tests for appending elements.Element or a JsProxy object
* add Element.append tests for append JS elements directly and appending nodeList as well
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Tag and create the correct subclass of Element.
* Move: Element.snap -> video.snap
* Move: Element.download and draw to canvas.download and draw.
* Minor cleanups.
* Commenting.
* Allow css classes to be passed to Element constructor.
* Commenting.
* Typo fix.
* Make html, id and text JSProperties.
* Commenting.
* Remove unnecessary selected attribute on BaseElement.
* Extract: BaseElement.from_js -> element_from_js
* Pass *args and **kwargs to element_from_js and remove BaseElement.create
* Move value attribute to specific Element subclasses.
* fix: wrapping of existing js elements.
* Add body and head elements so parent and children work everywhere.
* Revert order of HasOptions mixin for the select element.
* Comment out tests that are no longer relevant (see comment).
* Use correct super args in mixin.
* Have to use element_from_js when returning options from OptionsProxy.
* rename: StyleProxy -> Style, OptionsProxy -> Options and added Classes.
* Remove cached_property.
* Remove list-y methods from Classes collection.
* Allow explicit children or *args for containers.
* controversial: fix tests to use find rather than dom
* Add html element so (say) body.parent does what is expected.
* Collapse Element class hierarchy.
* rename: js_element -> dom_element
* rename: element_from_js -> element_from_dom
* replace: JS with DOM
* rename: _js -> _dom_element
* fix dom tests.
* Complete element list with void elements derived from Element.
* Added attributes to the newly added Element subclasses.
* remove dom module, replace with instance.
Also, remove media :)
* fix: typo in test for 'b' element.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove dom and media modules.
* fix up ts definitions.
* Added missing import (used in content property).
* Added TODO :)
* wip: Add ClassesCollection
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Attempt to ask black to leave class list alone.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add classes attribute to ElementCollection
* wip: work on classes collection
* Extract code to get set of all class names in ClassesCollection.
* Update elements.py
* Polishing.
* Make children return an ElementCollection
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: Add the ability to set multiple properties.
* Add __getitem__ back to the dom object.
* Put validation when setting DOM properties back in.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* All tests green.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove unnecessary comment.
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Martin <martin.chilvers@gmail.com>
* Updated Polyscript with its workers feature
* Worked around the inconsistent behavior between Pyodide and MicroPython
* Fixed Pyodide greedy access to undesired Proxy fields
* PyEditor fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* PyEditor cumulative fixes & improvements
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* change pydom example to use new pyscript.web namespace
* change tests to use new pyscript.web namespace
* create new pyscript.web package and move pydom to pyscript.web.dom
* add __init__ to pyscript.web and expose the dom instance instead of the pyscript.web.dom module
* move elements from pyweb.ui to pyscript.web and temp fix pydom import
* moved of elements file completed
* moved media from pyweb to pyscript.web
* RIP pyweb
* move JSProperty from pyscript.web.dom to pyscript.web.elements
* move element classes from pyscript.web.dom to pyscript.web.elements
* first round of fixes while running tests
* fix test typo
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore right type type returned for Element.parent. ALL TESTS PASS LOCALLY NOW
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* clean up dom.py from dead commented code and osbolete comments
* bugfix: dom shouldn't return None when it can't find any element for a specific selector so it now returns an empty collection
* additional cleanup in tests
* lint
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add JSProperty to pydom so it can be used to create descriptors mapping to specific JS attributes
* add pyweb.ui
* fix pyweb imports
* fix link and a elements and add a script element
* fix imports and add initialization to load resources to shoelace module
* new pyweb.ui test folder
* remove comments
* add Icon to shoelace components
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* use html property rather than accessing _js directly
* add markdown suppport
* move examples section out of stdlib pyweb to examples.py in the demo itself
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* simplify demo code
* improve docstrings
* precommit fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* simplify code for main page
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add load_resources to markdown
* add showlace extra style dynamically
* precommit
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add gallery files
* add global attributes and dynamic property assignment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add shoelace radio component (#1961)
* add shoelace radio component
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix type that lead using the the JSDescriptor directly instead of the factory method
* add missing marked dependency
* refactor gallary to simplify codebase
* precommig lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add text attribute to pydom Elements
* add global JS attributes to elements and improve demos
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix image instantiation on card since the API has changed
* add attributes to all classes in elements
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* change example creation functions to take the label and the object directly
* fix input name clashing with input keyword
* refactor examples to better simplify and automate
* fix div clashing names
* fix demo left menu width
* simplify base elements demo by moving all the examples to the examples module
* rename Grid to grid to align to other elements
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reorg classes order in elements.py and add missing elements to examples
* fix issue related to now importing div from pyweb.ui
* improve demo
* link and fix spelling typo
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add a bunch more elements (#1966)
* Add copy button
* Add skeleton and spinner
* Add Switch
* Add text area
* Add more elements
* More styling to each component
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Fabio Pliger <fpliger@users.noreply.github.com>
* Add radio group (#1963)
* add radio group
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Fabio Pliger <fpliger@users.noreply.github.com>
* Small tweaks to main demo page (#1962)
* Small tweaks to main demo page
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Fabio Pliger <fpliger@users.noreply.github.com>
* fix post merge issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed issues with renaming Grid to grid, after we merged
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add multple HTML elements in alphabetical order from abbr to em
* fix attributes of some of the elements added in the previous commit and add embed
* fix embed attributes and add fieldset
* add figcation, figure and form. Also fix ordering of definitoin of img and input_
* add style and lint
* wrap up adding all major html elements
* fix test failing due to different error message from fake server compared to a real test server
* change default docstring associated with all classes dynamically patched
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add pyweb tests
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add global attributes and change abbr test
* fix abbr to inherit from TextElementBase
* add address test and improve error messaging when ElementBase gets a bad input as style
* change test helper function to be more flexible on attributes and manage content vs non content based elements. Also adds area tests
* add test for more elements up to caption
* fix canvas and caption as elements that have content and fix name typo on figcaption
* fix another typo on figcaption
* minor fixes and complete tests for all elements
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* adapt shoelace to latest upates in ui.elements
* fix issue with example code not showing created button
* move global attributes to base class
* replace all the calls to _add_js_properties with defining attributes directly in the classes
* finish moving all properties manually on each class
* remove _add_js_properties
* replace JSProperty with js_property
* replace JSProperty with js_property
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fixed merge conflicts
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* remove js_property and just use JSProperty with name and allow_nones as arguments
* fix bug around Element not being able to map global attributes in subclasses
* remove js_property and fix references
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit
* precommit again
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* enable pyweb on micropython
* switch examples to micropython
* fix pydom issue with micropython, created by the monkeypatch around JsProxy
* print micropython version on micropython pydom example
* lint and remove of textwrap in stdlib for micropython compatibility
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* added msising attributes on the option Element. Tests are all passing now
* fix tests
* lint
* temp ugly fix for micropython, using the when decorator with a function without arguments
* small fixes and improvements to examples
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix examples and broken link from the removal of markdown and shoelace from stdlib
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* dynamically change the server address in tests
* use the right element in test_a
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* skipping test_audio in CI due to different behavior of fake_server vs a real server, that runs in local tests
* add conditional expected_missing_file_errors property to manage different behaviour between local tests and CI (due to fake_server)
* lint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Askat <aaskat@users.noreply.github.com>
Co-authored-by: Fábio Rosado <hello@fabiorosado.dev>
Co-authored-by: Andrea Giammarchi <andrea.giammarchi@gmail.com>
* Expose pyscript.py_modules for lazy Python modules
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Expose py-editor code content read/write
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Allow MicroPython Terminal on Main
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add spinner to disabled py-editor run buttons
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* css nit suggested by WebReflection
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* update python dependencies to latest versions
* isort automatic formatting nits
* update eslint config to non-deprecated flat format
* `npm update` to upgrade javascript dependencies
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Updated MicroPython to its latest
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix#2056 - Provide a default empty config per editor env
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Even better PyEditor offline use case (#2050)
* Even better PyEditor offline use case
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* PyEditor - process(code) ability
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Even better PyEditor offline use case
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix#2031 - Add pyscript.WebSocket to the mix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Working on a test case anyone can run
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix#2040 - Polyscript update to provide config dictionary
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Avoid PyWeb as part of stdlib on MicroPython
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Added @xterm/addon-web-links to the terminal
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* PyTerminal .process(code) utility
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
## Changes
* fixed an issue with the **py-editor** related to the new `linebuffer` directive
* provide in worker hook scope a simple callback that pre-buffers unicode sequences [accordingly to the standard](https://encoding.spec.whatwg.org/#utf-8-bytes-needed) so that the buffer is sent to the terminal only once those sequences are fulfilled
* test with both `µ` and way more convoluted sequences such as 👩❤️👨 that the output, if either requested as input or already evaluated from the page works ... in latter case `test = "👩❤️👨"` completely messes up the program and the resulting string is empty