New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

robotkernel

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

robotkernel - pypi Package Compare versions

Comparing version
1.5.1
to
1.6a1
+28
.github/workflows/smoketest.yml
name: "smoketest"
on:
push:
pull_request:
jobs:
smoketest:
runs-on: ubuntu-latest
strategy:
matrix:
robotframework-version: [rf32, rf40, rf41, rf50]
steps:
- uses: actions/checkout@v2.4.0
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v10
with:
name: robots-from-jupyter
# If you chose signing key for write access
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
# If you chose API tokens for write access OR if you have a private cache
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix-shell setup.nix -A shell --argstr robotframework ${{ matrix.robotframework-version }} --run "make test"
- run: nix-shell setup.nix -A shell --argstr robotframework ${{ matrix.robotframework-version }} --run "python -m robotkernel.install"
- run: nix-shell setup.nix -A shell --argstr robotframework ${{ matrix.robotframework-version }} --run "jupyter nbconvert --execute tests/Smoketest.ipynb --to html"
- run: nix-shell setup.nix -A shell --argstr robotframework ${{ matrix.robotframework-version }} --run "jupyter nbconvert --execute tests/StickyLibraryMagic.ipynb --to html"
- run: nix-shell setup.nix -A shell --argstr robotframework ${{ matrix.robotframework-version }} --run "nbrobot -v BROWSER:headlessfirefox -F ipynb tests atest"
- run: nix-shell --run "echo OK"
syntax: glob
*.egg-info
*.pyc
.cache
.DS_Store
.idea
.ipynb_checkpoints
.jupyter
.jupyterlab
.jupyter-config
.pytest_cache
/build/
/examples/button.png
/geckodriver.log
/html/
/log.html
/output.xml
/report.html
/result
/selenium-screenshot-*.png
/src/jupyterlab_robotmode/lib/
/src/jupyterlab_robotmode/node_modules/
/tmp/
/Untitle*.ipynb

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

+6
-0
Changelog
=========
1.6.0a1 (2022-02-22)
--------------------
- Add %sticky magic LibraryName -magic to preserve state of global and suite scope libraries between executions
[datakurre]
1.5.1 (2021-09-28)

@@ -5,0 +11,0 @@ ------------------

+1
-0

@@ -9,2 +9,3 @@ graft src/robotkernel

exclude Makefile Dockerfile requirements*.txt *.ipynb *.json
prune nix
prune binder

@@ -11,0 +12,0 @@ prune examples

+540
-530

@@ -1,4 +0,4 @@

Metadata-Version: 1.1
Metadata-Version: 2.1
Name: robotkernel
Version: 1.5.1
Version: 1.6a1
Summary: A Jupyter kernel for interactive acceptance-test-driven development with the Robot Framework

@@ -9,530 +9,2 @@ Home-page: https://github.com/robots-from-jupyter/robotkernel

License: BSD-3-Clause
Description: Robotkernel
===========
|Smoketest Badge|
RobotKernel is a `Robot Framework`_ IPython_ kernel for `Jupyter Notebook`_ and JupyterLab_. It powers RobotLab_ – the Robot Framework JupyterLab distribution. Check a `video to see it in action`_ and `read the documentation`_.
RobotKernel requires Python 3.6 or later with setuptools 40.5.0 later and Robot Framework Robot Framework 3.1 or later.
.. |Smoketest Badge| image:: https://github.com/robots-from-jupyter/robotkernel/workflows/smoketest/badge.svg
.. _video to see it in action: https://youtu.be/uYGh9_c3b7s
.. _read the documentation: https://robots-from-jupyter.github.io/robotkernel/
.. _Robot Framework: http://robotframework.org/
.. _IPython: https://ipython.org/
.. _Jupyter Notebook: https://jupyter.readthedocs.io/en/latest/
.. _JupyterLab: https://jupyterlab.readthedocs.io/en/stable/
.. _RobotLab: https://github.com/robots-from-jupyter/robotlab/releases
For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_.
.. _ipythonrobotframework: https://github.com/gtri/irobotframework
Try RobotKernel
---------------
You can try RobotKernel instantly without installing it at MyBinder_ cloud:
* Launch JupyterLab with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=lab/tree/starter/robotkernel-quickstart
* Launch Jupyter Notebook with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=tree/example.ipynb
Note: Log | Report -links on saved notebooks may not be clickable `until notebook is "trusted"`__ ("Trust Notebook" in JupyterLab Commands) the related cells have been executed again.
.. _MyBinder: https://mybinder.org/
__ https://jupyter-notebook.readthedocs.io/en/latest/security.html#updating-trust
Install RobotKernel
-------------------
RobotKernel can be installed using the usual Python package manager tools, like pip:
.. code:: bash
$ pip install robotkernel
For JupyterLab it is recommended to also install the Robot Framework syntax highlighting and Jupyter widgets support:
.. code:: bash
$ jupyter labextension install jupyterlab_robotmode
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
For some environments it might be required to run the following command to manually register robotkernel as an available Jupyter kernel:
.. code:: bash
$ python -m robotkernel.install
Export to .robot
----------------
It is possible to export Robot Framework Jupyter notebooks to regular plain text ``.robot`` files for usage without Jupyter:
.. code:: bash
$ jupyter nbconvert --to script example.ipynb
.. _nbconvert: https://nbconvert.readthedocs.io/
Execute notebooks
-----------------
RobotKernel installs a script named ``nbrobot``. It can be used instead of Robot Framework's ``robot`` test runner to execute Robot Framework with ``.ipynb``-extension support:
.. code:: bash
$ nbrobot example.ipynb
Hacking RobotKernel
-------------------
Create and activate a new Python virtual environment:
.. code:: bash
$ venv myenv
$ source myenv/bin/activate
Install Jupyter:
.. code:: bash
$ pip install --upgrade pip setuptools
$ pip install jupyter
Clone this kernel:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
Install the kernel into the virtualenv in develop mode:
.. code:: bash
$ python setup.py develop
$ python -m robotkernel.install
Launch the jupyter:
.. code:: bash
$ jupyter notebook
Reloading the kernel reloads the code.
`Learn more about Jupyter kernel development.`__
__ http://jupyter.readthedocs.io/en/latest/install.html
Nix-shell
---------
This repository includes an opinionated environment for running and developing RobotKernel with Nix_ with `Cachix-powered binary cache`__.
__ https://robots-from-jupyter.cachix.org/
Launch Jupyter Notebook with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"
.. _Nix: https://nixos.org/nix/
Launch JupyterLab with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")'
$ jupyter labextension install jupyterlab_robotmode --app-dir=.jupyterlab
$ jupyter lab --app-dir=.jupyterlab
$ exit
Add ``--arg vim true`` to enable `vim bindings`_.
.. _vim bindings: https://github.com/lambdalisue/jupyter-vim-binding
Open development environment with Nix:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop
Changelog
=========
1.5.1 (2021-09-28)
------------------
- Fix set_parent signature
[martinRenou]
1.5.0 (2021-04-22)
------------------
- Add support for robotframework 4.0
[datakurre]
1.4.0 (2020-04-27)
------------------
- Add support for robotframework 3.2
[datakurre]
- Change kernel mimetype to "text/x-robotframework"
[datakurre]
1.3.0 (2020-01-09)
------------------
- Add jupyterlab-starters' based quick start and tutorial
[datakurre]
- Fix issue where Selenium test or task execution resulted in breaking
exception, because temporary execution directory could not be cleared due to
open geckodriver.log
[datakurre]
1.2.2 (2020-01-05)
------------------
- Fix regression where wrong nbimporter was not automatically imported
[datakurre]
1.2.1 (2019-12-30)
------------------
- Fix issue where data uri images were not displayed on notebook
[datakurre]
- Fix issue where list type suite variables were not correctly restored
[datakurre]
1.2 (2019-12-06)
----------------
- Add support for Robot Framework 3.2a1
[datakurre]
- Add support for displaying multiline text return values
[datakurre]
- Add support for sticky JupyterLibrary webdriver connections
[datakurre]
- Fix issue where updated global variables were overridden from saved
variables from the previous execution
[datakurre]
1.1.1 (2019-12-05)
------------------
- Fix issue where library autocompletion override settings keywords
autocompletion
[datakurre]
1.1.0 (2019-12-05)
------------------
- Add Library autocompletion after Library keyword within Settings
[datakurre]
1.0.2 (2019-12-04)
------------------
- Fix issue where text strings feed to JSON displayed a warning
[datakurre]
- Fix JupyterLab context help support to work when clicked in the middlle of a keyword
[datakurre]
- Fix to close dangling Selenium connections
[datakurre]
1.0.1 (2019-09-19)
------------------
- Fix issue where ${CURDIR} was broken on Windows, because it contained path without
escaped path separators required by Robot Framework
[datakurre]
- Fix issue where suite variable listener reported errors when running robot suites,
because it tried to restore dictionary variables with empty value
[datakurre]
1.0 (2019-09-12)
----------------
- Fix issue where log and report links did not open on JupyterLab 1.0
[datakurre]
1.0rc1 (2019-04-01)
-------------------
- Move tutorials notebooks into notebooks folder
[datakurre]
- Fix WhiteLibrary autocompletion to suggest selectors with :-separator
instead of =-separator
[datakurre]
0.12.2 (2019-03-30)
-------------------
- Fix remaining where keeping state of suite level variables between cell
executions since 0.12.0 caused regression by fixing the listener to ignore
all known built-in variables
[datakurre]
0.12.1 (2019-03-27)
-------------------
- Fix issue where keeping state of suite level variables between cell
executions resulted in errors caused by outdated output directory
from the old variables
[datakurre]
0.12.0 (2019-03-26)
-------------------
New features:
- Add keyword execution widgets below executed keyword cells; Add to toggle
widgets on consecutive executions without code changes
[datakurre]
- Add listener to keep state of suite level variables between robot executions
[datakurre]
- Add IPython display hooks
[datakurre]
New features:
- Add updates to highlighting from ipythonrobotframework
[datakurre]
0.11.0 (2019-01-29)
-------------------
- Add WhiteLibrary state support and interactive element picker
[datakurre]
- Add WhiteLibraryCompanion keyword library to interactively
select elements and click elements with OpenCV templates
[datakurre]
0.10.2 (2019-01-11)
-------------------
- Fix syntax highlighting issue where only the first variable of many was
highlighted
[datakurre]
0.10.1 (2019-01-10)
-------------------
- Update package trove classifiers
[datakurre]
0.10.0 (2019-01-08)
-------------------
Breaking:
- Setuptools 40.5.0 later and Robot Framework 3.1 or later.
[datakurre]
new features:
- Add pregenerated kernel.json in data_files to auto-install robotkernel,
but requiring
[datakurre]
0.9.0 (2019-01-04)
------------------
New features:
- Rewrite status updater to the status of currently run test as
``trobber | test name | keyword name | robot.api.logger.console message``
[datakurre]
- Add embedded log and report to include Download-links at top right corner
[datakurre]
- Add to display the results of the last executed keyword as the notebook
result for the executed code cell
[datakurre]
- Add syntax highlighting for variables and assignment operators
[datakurre]
Bug fixes:
- Fix issue where setup.cfg contained OS specific path separators preventing
build on Windows
[datakurre]
- Fix issue where PNGs were interpreted as APNG on Windows preventing
them from being rendered on Windows
[datakurre]
- Update example notebook to use SeleniumLibrary and SeleniumScreenshots
instead of SeleniumLibrary and Selenium2Screenshots
[datakurre]
- Add to always reload libraries imported from other notebooks
[datakurre]
0.8.0 (2018-12-14)
------------------
- Add to auto-import nbimporter when available to make it possible to
import eg. keyword libraries from Python notebooks
[datakurre]
- Fix issue where nbrobot did support %%python module magic
[datakurre]
0.7.1 (2018-11-20)
------------------
- Add to require robotframework >= 3.1b1 in requires
0.7.0 (2018-10-31)
------------------
Breaking:
- Requires robotframework >= 3.1b1
Other:
- Add to create nbreader and nblibdoc cli to run robot with notebook reader
support
[datakurre]
- Add Selenium completions to sometimes include raw Simmer results with
simplfied id completion results
[datakurre]
- Add proof-of-concept selector completion for Appium and AutoIT libraries
[datakurre]
- Fix screenshot processor to also discover images with absolute path or within
the current working directory
[datakurre]
0.6.3 (2018-10-19)
------------------
This is the last release compatible with robotframework < 3.1
- Remove deprecated replace-flag from kernel installer
[datakurre]
0.6.2 (2018-10-19)
------------------
- Fix compatibility issue with robotframework < 3.1
[datakurre]
0.6.1 (2018-10-19)
------------------
- Fix issue where kernel installation produced broken kernel.json on Windows
[datakurre]
0.6.0 (2018-10-18)
------------------
- Revert data source path from temporary directory into current working
directory to allow local libraries and resources work in the usual use cases
[datakurre]
- Add experimental Simmerjs based CSS-selector builder and element picker with
when auto-completion is called with empty "css:"-selector
[datakurre]
- Add experimental Selenium selector auto-completion
[datakurre]
- Add dummy variable completion with only variables from current suite without
context knowledge
[datakurre]
- Add inline documentation links to Robot Framework User Guide for structural
keywords
[datakurre]
0.5.4 (2018-10-09)
------------------
- Fix issue where single term keywords got no completions
[datakurre]
0.5.3 (2018-10-09)
------------------
- Update README
[datakurre]
0.5.1 (2018-10-08)
------------------
- Auto completion and keyword doc inspection enhancements
[datakurre]
0.5.0 (2018-10-08)
------------------
- Add auto-completion, keyword doc inspection and support for
replacing and deleting cell history on Jupyter lab
[datakurre]
0.4.0 (2018-09-26)
------------------
- Add support for robotframework 3.1a2
[datakurre]
- Add support for reporting RPA suites with "Tasks" instead of "Tests"
[datakurre]
0.3.5 (2018-09-25)
------------------
- Update README with notebook execution instructions
[datakurre]
0.3.4 (2018-09-25)
------------------
- Update README
[datakurre]
0.3.3 (2018-09-25)
------------------
- Note on README that Log | Report -links require trusting the notebook
[datakurre]
- Fix to wrap test execution updates with '<pre>' for better readability
[datakurre]
0.3.2 (2018-09-25)
------------------
- Change to always send display data updates in text/html to workaround a bug
that caused 'undefined' to be rendered in JupyterLab
[datakurre]
0.3.1 (2018-09-24)
------------------
- Update README
[datakurre]
0.3.0 (2018-09-23)
------------------
- First release.
[datakurre]
Keywords: Interactive,Interpreter,Shell,Testing,Web

@@ -552,1 +24,539 @@ Platform: UNKNOWN

Classifier: Topic :: Software Development :: Testing
License-File: LICENSE
Robotkernel
===========
|Smoketest Badge|
RobotKernel is a `Robot Framework`_ IPython_ kernel for `Jupyter Notebook`_ and JupyterLab_. It powers RobotLab_ – the Robot Framework JupyterLab distribution. Check a `video to see it in action`_ and `read the documentation`_.
RobotKernel requires Python 3.6 or later with setuptools 40.5.0 later and Robot Framework Robot Framework 3.1 or later.
.. |Smoketest Badge| image:: https://github.com/robots-from-jupyter/robotkernel/workflows/smoketest/badge.svg
.. _video to see it in action: https://youtu.be/uYGh9_c3b7s
.. _read the documentation: https://robots-from-jupyter.github.io/robotkernel/
.. _Robot Framework: http://robotframework.org/
.. _IPython: https://ipython.org/
.. _Jupyter Notebook: https://jupyter.readthedocs.io/en/latest/
.. _JupyterLab: https://jupyterlab.readthedocs.io/en/stable/
.. _RobotLab: https://github.com/robots-from-jupyter/robotlab/releases
For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_ or `xeus-robot`_.
.. _ipythonrobotframework: https://github.com/gtri/irobotframework
.. _xeus-robot: https://github.com/jupyter-xeus/xeus-robot
Try RobotKernel
---------------
You can try RobotKernel instantly without installing it at MyBinder_ cloud:
* Launch JupyterLab with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=lab/tree/starter/robotkernel-quickstart
* Launch Jupyter Notebook with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=tree/example.ipynb
Note: Log | Report -links on saved notebooks may not be clickable `until notebook is "trusted"`__ ("Trust Notebook" in JupyterLab Commands) the related cells have been executed again.
.. _MyBinder: https://mybinder.org/
__ https://jupyter-notebook.readthedocs.io/en/latest/security.html#updating-trust
Install RobotKernel
-------------------
RobotKernel can be installed using the usual Python package manager tools, like pip:
.. code:: bash
$ pip install robotkernel
For JupyterLab it is recommended to also install the Robot Framework syntax highlighting and Jupyter widgets support:
.. code:: bash
$ jupyter labextension install jupyterlab_robotmode
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
For some environments it might be required to run the following command to manually register robotkernel as an available Jupyter kernel:
.. code:: bash
$ python -m robotkernel.install
Export to .robot
----------------
It is possible to export Robot Framework Jupyter notebooks to regular plain text ``.robot`` files for usage without Jupyter:
.. code:: bash
$ jupyter nbconvert --to script example.ipynb
.. _nbconvert: https://nbconvert.readthedocs.io/
Execute notebooks
-----------------
RobotKernel installs a script named ``nbrobot``. It can be used instead of Robot Framework's ``robot`` test runner to execute Robot Framework with ``.ipynb``-extension support:
.. code:: bash
$ nbrobot example.ipynb
Hacking RobotKernel
-------------------
Create and activate a new Python virtual environment:
.. code:: bash
$ venv myenv
$ source myenv/bin/activate
Install Jupyter:
.. code:: bash
$ pip install --upgrade pip setuptools
$ pip install jupyter
Clone this kernel:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
Install the kernel into the virtualenv in develop mode:
.. code:: bash
$ python setup.py develop
$ python -m robotkernel.install
Launch the jupyter:
.. code:: bash
$ jupyter notebook
Reloading the kernel reloads the code.
`Learn more about Jupyter kernel development.`__
__ http://jupyter.readthedocs.io/en/latest/install.html
Nix-shell
---------
This repository includes an opinionated environment for running and developing RobotKernel with Nix_ with `Cachix-powered binary cache`__.
__ https://robots-from-jupyter.cachix.org/
Launch Jupyter Notebook with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"
.. _Nix: https://nixos.org/nix/
Launch JupyterLab with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")'
$ jupyter labextension install jupyterlab_robotmode --app-dir=.jupyterlab
$ jupyter lab --app-dir=.jupyterlab
$ exit
Add ``--arg vim true`` to enable `vim bindings`_.
.. _vim bindings: https://github.com/lambdalisue/jupyter-vim-binding
Open development environment with Nix:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop
Changelog
=========
1.6.0a1 (2022-02-22)
--------------------
- Add %sticky magic LibraryName -magic to preserve state of global and suite scope libraries between executions
[datakurre]
1.5.1 (2021-09-28)
------------------
- Fix set_parent signature
[martinRenou]
1.5.0 (2021-04-22)
------------------
- Add support for robotframework 4.0
[datakurre]
1.4.0 (2020-04-27)
------------------
- Add support for robotframework 3.2
[datakurre]
- Change kernel mimetype to "text/x-robotframework"
[datakurre]
1.3.0 (2020-01-09)
------------------
- Add jupyterlab-starters' based quick start and tutorial
[datakurre]
- Fix issue where Selenium test or task execution resulted in breaking
exception, because temporary execution directory could not be cleared due to
open geckodriver.log
[datakurre]
1.2.2 (2020-01-05)
------------------
- Fix regression where wrong nbimporter was not automatically imported
[datakurre]
1.2.1 (2019-12-30)
------------------
- Fix issue where data uri images were not displayed on notebook
[datakurre]
- Fix issue where list type suite variables were not correctly restored
[datakurre]
1.2 (2019-12-06)
----------------
- Add support for Robot Framework 3.2a1
[datakurre]
- Add support for displaying multiline text return values
[datakurre]
- Add support for sticky JupyterLibrary webdriver connections
[datakurre]
- Fix issue where updated global variables were overridden from saved
variables from the previous execution
[datakurre]
1.1.1 (2019-12-05)
------------------
- Fix issue where library autocompletion override settings keywords
autocompletion
[datakurre]
1.1.0 (2019-12-05)
------------------
- Add Library autocompletion after Library keyword within Settings
[datakurre]
1.0.2 (2019-12-04)
------------------
- Fix issue where text strings feed to JSON displayed a warning
[datakurre]
- Fix JupyterLab context help support to work when clicked in the middlle of a keyword
[datakurre]
- Fix to close dangling Selenium connections
[datakurre]
1.0.1 (2019-09-19)
------------------
- Fix issue where ${CURDIR} was broken on Windows, because it contained path without
escaped path separators required by Robot Framework
[datakurre]
- Fix issue where suite variable listener reported errors when running robot suites,
because it tried to restore dictionary variables with empty value
[datakurre]
1.0 (2019-09-12)
----------------
- Fix issue where log and report links did not open on JupyterLab 1.0
[datakurre]
1.0rc1 (2019-04-01)
-------------------
- Move tutorials notebooks into notebooks folder
[datakurre]
- Fix WhiteLibrary autocompletion to suggest selectors with :-separator
instead of =-separator
[datakurre]
0.12.2 (2019-03-30)
-------------------
- Fix remaining where keeping state of suite level variables between cell
executions since 0.12.0 caused regression by fixing the listener to ignore
all known built-in variables
[datakurre]
0.12.1 (2019-03-27)
-------------------
- Fix issue where keeping state of suite level variables between cell
executions resulted in errors caused by outdated output directory
from the old variables
[datakurre]
0.12.0 (2019-03-26)
-------------------
New features:
- Add keyword execution widgets below executed keyword cells; Add to toggle
widgets on consecutive executions without code changes
[datakurre]
- Add listener to keep state of suite level variables between robot executions
[datakurre]
- Add IPython display hooks
[datakurre]
New features:
- Add updates to highlighting from ipythonrobotframework
[datakurre]
0.11.0 (2019-01-29)
-------------------
- Add WhiteLibrary state support and interactive element picker
[datakurre]
- Add WhiteLibraryCompanion keyword library to interactively
select elements and click elements with OpenCV templates
[datakurre]
0.10.2 (2019-01-11)
-------------------
- Fix syntax highlighting issue where only the first variable of many was
highlighted
[datakurre]
0.10.1 (2019-01-10)
-------------------
- Update package trove classifiers
[datakurre]
0.10.0 (2019-01-08)
-------------------
Breaking:
- Setuptools 40.5.0 later and Robot Framework 3.1 or later.
[datakurre]
new features:
- Add pregenerated kernel.json in data_files to auto-install robotkernel,
but requiring
[datakurre]
0.9.0 (2019-01-04)
------------------
New features:
- Rewrite status updater to the status of currently run test as
``trobber | test name | keyword name | robot.api.logger.console message``
[datakurre]
- Add embedded log and report to include Download-links at top right corner
[datakurre]
- Add to display the results of the last executed keyword as the notebook
result for the executed code cell
[datakurre]
- Add syntax highlighting for variables and assignment operators
[datakurre]
Bug fixes:
- Fix issue where setup.cfg contained OS specific path separators preventing
build on Windows
[datakurre]
- Fix issue where PNGs were interpreted as APNG on Windows preventing
them from being rendered on Windows
[datakurre]
- Update example notebook to use SeleniumLibrary and SeleniumScreenshots
instead of SeleniumLibrary and Selenium2Screenshots
[datakurre]
- Add to always reload libraries imported from other notebooks
[datakurre]
0.8.0 (2018-12-14)
------------------
- Add to auto-import nbimporter when available to make it possible to
import eg. keyword libraries from Python notebooks
[datakurre]
- Fix issue where nbrobot did support %%python module magic
[datakurre]
0.7.1 (2018-11-20)
------------------
- Add to require robotframework >= 3.1b1 in requires
0.7.0 (2018-10-31)
------------------
Breaking:
- Requires robotframework >= 3.1b1
Other:
- Add to create nbreader and nblibdoc cli to run robot with notebook reader
support
[datakurre]
- Add Selenium completions to sometimes include raw Simmer results with
simplfied id completion results
[datakurre]
- Add proof-of-concept selector completion for Appium and AutoIT libraries
[datakurre]
- Fix screenshot processor to also discover images with absolute path or within
the current working directory
[datakurre]
0.6.3 (2018-10-19)
------------------
This is the last release compatible with robotframework < 3.1
- Remove deprecated replace-flag from kernel installer
[datakurre]
0.6.2 (2018-10-19)
------------------
- Fix compatibility issue with robotframework < 3.1
[datakurre]
0.6.1 (2018-10-19)
------------------
- Fix issue where kernel installation produced broken kernel.json on Windows
[datakurre]
0.6.0 (2018-10-18)
------------------
- Revert data source path from temporary directory into current working
directory to allow local libraries and resources work in the usual use cases
[datakurre]
- Add experimental Simmerjs based CSS-selector builder and element picker with
when auto-completion is called with empty "css:"-selector
[datakurre]
- Add experimental Selenium selector auto-completion
[datakurre]
- Add dummy variable completion with only variables from current suite without
context knowledge
[datakurre]
- Add inline documentation links to Robot Framework User Guide for structural
keywords
[datakurre]
0.5.4 (2018-10-09)
------------------
- Fix issue where single term keywords got no completions
[datakurre]
0.5.3 (2018-10-09)
------------------
- Update README
[datakurre]
0.5.1 (2018-10-08)
------------------
- Auto completion and keyword doc inspection enhancements
[datakurre]
0.5.0 (2018-10-08)
------------------
- Add auto-completion, keyword doc inspection and support for
replacing and deleting cell history on Jupyter lab
[datakurre]
0.4.0 (2018-09-26)
------------------
- Add support for robotframework 3.1a2
[datakurre]
- Add support for reporting RPA suites with "Tasks" instead of "Tests"
[datakurre]
0.3.5 (2018-09-25)
------------------
- Update README with notebook execution instructions
[datakurre]
0.3.4 (2018-09-25)
------------------
- Update README
[datakurre]
0.3.3 (2018-09-25)
------------------
- Note on README that Log | Report -links require trusting the notebook
[datakurre]
- Fix to wrap test execution updates with '<pre>' for better readability
[datakurre]
0.3.2 (2018-09-25)
------------------
- Change to always send display data updates in text/html to workaround a bug
that caused 'undefined' to be rendered in JupyterLab
[datakurre]
0.3.1 (2018-09-24)
------------------
- Update README
[datakurre]
0.3.0 (2018-09-23)
------------------
- First release.
[datakurre]

@@ -19,5 +19,6 @@ Robotkernel

For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_.
For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_ or `xeus-robot`_.
.. _ipythonrobotframework: https://github.com/gtri/irobotframework
.. _xeus-robot: https://github.com/jupyter-xeus/xeus-robot

@@ -24,0 +25,0 @@

[metadata]
name = robotkernel
version = 1.5.1
version = 1.6a1
description = A Jupyter kernel for interactive acceptance-test-driven development with the Robot Framework

@@ -84,4 +84,2 @@ long_description = file: README.rst, CHANGELOG.rst

no_sections = True
not_skip =
__init__.py

@@ -88,0 +86,0 @@ [pylama]

@@ -1,4 +0,4 @@

Metadata-Version: 1.1
Metadata-Version: 2.1
Name: robotkernel
Version: 1.5.1
Version: 1.6a1
Summary: A Jupyter kernel for interactive acceptance-test-driven development with the Robot Framework

@@ -9,530 +9,2 @@ Home-page: https://github.com/robots-from-jupyter/robotkernel

License: BSD-3-Clause
Description: Robotkernel
===========
|Smoketest Badge|
RobotKernel is a `Robot Framework`_ IPython_ kernel for `Jupyter Notebook`_ and JupyterLab_. It powers RobotLab_ – the Robot Framework JupyterLab distribution. Check a `video to see it in action`_ and `read the documentation`_.
RobotKernel requires Python 3.6 or later with setuptools 40.5.0 later and Robot Framework Robot Framework 3.1 or later.
.. |Smoketest Badge| image:: https://github.com/robots-from-jupyter/robotkernel/workflows/smoketest/badge.svg
.. _video to see it in action: https://youtu.be/uYGh9_c3b7s
.. _read the documentation: https://robots-from-jupyter.github.io/robotkernel/
.. _Robot Framework: http://robotframework.org/
.. _IPython: https://ipython.org/
.. _Jupyter Notebook: https://jupyter.readthedocs.io/en/latest/
.. _JupyterLab: https://jupyterlab.readthedocs.io/en/stable/
.. _RobotLab: https://github.com/robots-from-jupyter/robotlab/releases
For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_.
.. _ipythonrobotframework: https://github.com/gtri/irobotframework
Try RobotKernel
---------------
You can try RobotKernel instantly without installing it at MyBinder_ cloud:
* Launch JupyterLab with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=lab/tree/starter/robotkernel-quickstart
* Launch Jupyter Notebook with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=tree/example.ipynb
Note: Log | Report -links on saved notebooks may not be clickable `until notebook is "trusted"`__ ("Trust Notebook" in JupyterLab Commands) the related cells have been executed again.
.. _MyBinder: https://mybinder.org/
__ https://jupyter-notebook.readthedocs.io/en/latest/security.html#updating-trust
Install RobotKernel
-------------------
RobotKernel can be installed using the usual Python package manager tools, like pip:
.. code:: bash
$ pip install robotkernel
For JupyterLab it is recommended to also install the Robot Framework syntax highlighting and Jupyter widgets support:
.. code:: bash
$ jupyter labextension install jupyterlab_robotmode
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
For some environments it might be required to run the following command to manually register robotkernel as an available Jupyter kernel:
.. code:: bash
$ python -m robotkernel.install
Export to .robot
----------------
It is possible to export Robot Framework Jupyter notebooks to regular plain text ``.robot`` files for usage without Jupyter:
.. code:: bash
$ jupyter nbconvert --to script example.ipynb
.. _nbconvert: https://nbconvert.readthedocs.io/
Execute notebooks
-----------------
RobotKernel installs a script named ``nbrobot``. It can be used instead of Robot Framework's ``robot`` test runner to execute Robot Framework with ``.ipynb``-extension support:
.. code:: bash
$ nbrobot example.ipynb
Hacking RobotKernel
-------------------
Create and activate a new Python virtual environment:
.. code:: bash
$ venv myenv
$ source myenv/bin/activate
Install Jupyter:
.. code:: bash
$ pip install --upgrade pip setuptools
$ pip install jupyter
Clone this kernel:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
Install the kernel into the virtualenv in develop mode:
.. code:: bash
$ python setup.py develop
$ python -m robotkernel.install
Launch the jupyter:
.. code:: bash
$ jupyter notebook
Reloading the kernel reloads the code.
`Learn more about Jupyter kernel development.`__
__ http://jupyter.readthedocs.io/en/latest/install.html
Nix-shell
---------
This repository includes an opinionated environment for running and developing RobotKernel with Nix_ with `Cachix-powered binary cache`__.
__ https://robots-from-jupyter.cachix.org/
Launch Jupyter Notebook with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"
.. _Nix: https://nixos.org/nix/
Launch JupyterLab with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")'
$ jupyter labextension install jupyterlab_robotmode --app-dir=.jupyterlab
$ jupyter lab --app-dir=.jupyterlab
$ exit
Add ``--arg vim true`` to enable `vim bindings`_.
.. _vim bindings: https://github.com/lambdalisue/jupyter-vim-binding
Open development environment with Nix:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop
Changelog
=========
1.5.1 (2021-09-28)
------------------
- Fix set_parent signature
[martinRenou]
1.5.0 (2021-04-22)
------------------
- Add support for robotframework 4.0
[datakurre]
1.4.0 (2020-04-27)
------------------
- Add support for robotframework 3.2
[datakurre]
- Change kernel mimetype to "text/x-robotframework"
[datakurre]
1.3.0 (2020-01-09)
------------------
- Add jupyterlab-starters' based quick start and tutorial
[datakurre]
- Fix issue where Selenium test or task execution resulted in breaking
exception, because temporary execution directory could not be cleared due to
open geckodriver.log
[datakurre]
1.2.2 (2020-01-05)
------------------
- Fix regression where wrong nbimporter was not automatically imported
[datakurre]
1.2.1 (2019-12-30)
------------------
- Fix issue where data uri images were not displayed on notebook
[datakurre]
- Fix issue where list type suite variables were not correctly restored
[datakurre]
1.2 (2019-12-06)
----------------
- Add support for Robot Framework 3.2a1
[datakurre]
- Add support for displaying multiline text return values
[datakurre]
- Add support for sticky JupyterLibrary webdriver connections
[datakurre]
- Fix issue where updated global variables were overridden from saved
variables from the previous execution
[datakurre]
1.1.1 (2019-12-05)
------------------
- Fix issue where library autocompletion override settings keywords
autocompletion
[datakurre]
1.1.0 (2019-12-05)
------------------
- Add Library autocompletion after Library keyword within Settings
[datakurre]
1.0.2 (2019-12-04)
------------------
- Fix issue where text strings feed to JSON displayed a warning
[datakurre]
- Fix JupyterLab context help support to work when clicked in the middlle of a keyword
[datakurre]
- Fix to close dangling Selenium connections
[datakurre]
1.0.1 (2019-09-19)
------------------
- Fix issue where ${CURDIR} was broken on Windows, because it contained path without
escaped path separators required by Robot Framework
[datakurre]
- Fix issue where suite variable listener reported errors when running robot suites,
because it tried to restore dictionary variables with empty value
[datakurre]
1.0 (2019-09-12)
----------------
- Fix issue where log and report links did not open on JupyterLab 1.0
[datakurre]
1.0rc1 (2019-04-01)
-------------------
- Move tutorials notebooks into notebooks folder
[datakurre]
- Fix WhiteLibrary autocompletion to suggest selectors with :-separator
instead of =-separator
[datakurre]
0.12.2 (2019-03-30)
-------------------
- Fix remaining where keeping state of suite level variables between cell
executions since 0.12.0 caused regression by fixing the listener to ignore
all known built-in variables
[datakurre]
0.12.1 (2019-03-27)
-------------------
- Fix issue where keeping state of suite level variables between cell
executions resulted in errors caused by outdated output directory
from the old variables
[datakurre]
0.12.0 (2019-03-26)
-------------------
New features:
- Add keyword execution widgets below executed keyword cells; Add to toggle
widgets on consecutive executions without code changes
[datakurre]
- Add listener to keep state of suite level variables between robot executions
[datakurre]
- Add IPython display hooks
[datakurre]
New features:
- Add updates to highlighting from ipythonrobotframework
[datakurre]
0.11.0 (2019-01-29)
-------------------
- Add WhiteLibrary state support and interactive element picker
[datakurre]
- Add WhiteLibraryCompanion keyword library to interactively
select elements and click elements with OpenCV templates
[datakurre]
0.10.2 (2019-01-11)
-------------------
- Fix syntax highlighting issue where only the first variable of many was
highlighted
[datakurre]
0.10.1 (2019-01-10)
-------------------
- Update package trove classifiers
[datakurre]
0.10.0 (2019-01-08)
-------------------
Breaking:
- Setuptools 40.5.0 later and Robot Framework 3.1 or later.
[datakurre]
new features:
- Add pregenerated kernel.json in data_files to auto-install robotkernel,
but requiring
[datakurre]
0.9.0 (2019-01-04)
------------------
New features:
- Rewrite status updater to the status of currently run test as
``trobber | test name | keyword name | robot.api.logger.console message``
[datakurre]
- Add embedded log and report to include Download-links at top right corner
[datakurre]
- Add to display the results of the last executed keyword as the notebook
result for the executed code cell
[datakurre]
- Add syntax highlighting for variables and assignment operators
[datakurre]
Bug fixes:
- Fix issue where setup.cfg contained OS specific path separators preventing
build on Windows
[datakurre]
- Fix issue where PNGs were interpreted as APNG on Windows preventing
them from being rendered on Windows
[datakurre]
- Update example notebook to use SeleniumLibrary and SeleniumScreenshots
instead of SeleniumLibrary and Selenium2Screenshots
[datakurre]
- Add to always reload libraries imported from other notebooks
[datakurre]
0.8.0 (2018-12-14)
------------------
- Add to auto-import nbimporter when available to make it possible to
import eg. keyword libraries from Python notebooks
[datakurre]
- Fix issue where nbrobot did support %%python module magic
[datakurre]
0.7.1 (2018-11-20)
------------------
- Add to require robotframework >= 3.1b1 in requires
0.7.0 (2018-10-31)
------------------
Breaking:
- Requires robotframework >= 3.1b1
Other:
- Add to create nbreader and nblibdoc cli to run robot with notebook reader
support
[datakurre]
- Add Selenium completions to sometimes include raw Simmer results with
simplfied id completion results
[datakurre]
- Add proof-of-concept selector completion for Appium and AutoIT libraries
[datakurre]
- Fix screenshot processor to also discover images with absolute path or within
the current working directory
[datakurre]
0.6.3 (2018-10-19)
------------------
This is the last release compatible with robotframework < 3.1
- Remove deprecated replace-flag from kernel installer
[datakurre]
0.6.2 (2018-10-19)
------------------
- Fix compatibility issue with robotframework < 3.1
[datakurre]
0.6.1 (2018-10-19)
------------------
- Fix issue where kernel installation produced broken kernel.json on Windows
[datakurre]
0.6.0 (2018-10-18)
------------------
- Revert data source path from temporary directory into current working
directory to allow local libraries and resources work in the usual use cases
[datakurre]
- Add experimental Simmerjs based CSS-selector builder and element picker with
when auto-completion is called with empty "css:"-selector
[datakurre]
- Add experimental Selenium selector auto-completion
[datakurre]
- Add dummy variable completion with only variables from current suite without
context knowledge
[datakurre]
- Add inline documentation links to Robot Framework User Guide for structural
keywords
[datakurre]
0.5.4 (2018-10-09)
------------------
- Fix issue where single term keywords got no completions
[datakurre]
0.5.3 (2018-10-09)
------------------
- Update README
[datakurre]
0.5.1 (2018-10-08)
------------------
- Auto completion and keyword doc inspection enhancements
[datakurre]
0.5.0 (2018-10-08)
------------------
- Add auto-completion, keyword doc inspection and support for
replacing and deleting cell history on Jupyter lab
[datakurre]
0.4.0 (2018-09-26)
------------------
- Add support for robotframework 3.1a2
[datakurre]
- Add support for reporting RPA suites with "Tasks" instead of "Tests"
[datakurre]
0.3.5 (2018-09-25)
------------------
- Update README with notebook execution instructions
[datakurre]
0.3.4 (2018-09-25)
------------------
- Update README
[datakurre]
0.3.3 (2018-09-25)
------------------
- Note on README that Log | Report -links require trusting the notebook
[datakurre]
- Fix to wrap test execution updates with '<pre>' for better readability
[datakurre]
0.3.2 (2018-09-25)
------------------
- Change to always send display data updates in text/html to workaround a bug
that caused 'undefined' to be rendered in JupyterLab
[datakurre]
0.3.1 (2018-09-24)
------------------
- Update README
[datakurre]
0.3.0 (2018-09-23)
------------------
- First release.
[datakurre]
Keywords: Interactive,Interpreter,Shell,Testing,Web

@@ -552,1 +24,539 @@ Platform: UNKNOWN

Classifier: Topic :: Software Development :: Testing
License-File: LICENSE
Robotkernel
===========
|Smoketest Badge|
RobotKernel is a `Robot Framework`_ IPython_ kernel for `Jupyter Notebook`_ and JupyterLab_. It powers RobotLab_ – the Robot Framework JupyterLab distribution. Check a `video to see it in action`_ and `read the documentation`_.
RobotKernel requires Python 3.6 or later with setuptools 40.5.0 later and Robot Framework Robot Framework 3.1 or later.
.. |Smoketest Badge| image:: https://github.com/robots-from-jupyter/robotkernel/workflows/smoketest/badge.svg
.. _video to see it in action: https://youtu.be/uYGh9_c3b7s
.. _read the documentation: https://robots-from-jupyter.github.io/robotkernel/
.. _Robot Framework: http://robotframework.org/
.. _IPython: https://ipython.org/
.. _Jupyter Notebook: https://jupyter.readthedocs.io/en/latest/
.. _JupyterLab: https://jupyterlab.readthedocs.io/en/stable/
.. _RobotLab: https://github.com/robots-from-jupyter/robotlab/releases
For alternative Robot Framework IPython kernel, check out `ipythonrobotframework`_ or `xeus-robot`_.
.. _ipythonrobotframework: https://github.com/gtri/irobotframework
.. _xeus-robot: https://github.com/jupyter-xeus/xeus-robot
Try RobotKernel
---------------
You can try RobotKernel instantly without installing it at MyBinder_ cloud:
* Launch JupyterLab with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=lab/tree/starter/robotkernel-quickstart
* Launch Jupyter Notebook with RobotKernel: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=tree/example.ipynb
Note: Log | Report -links on saved notebooks may not be clickable `until notebook is "trusted"`__ ("Trust Notebook" in JupyterLab Commands) the related cells have been executed again.
.. _MyBinder: https://mybinder.org/
__ https://jupyter-notebook.readthedocs.io/en/latest/security.html#updating-trust
Install RobotKernel
-------------------
RobotKernel can be installed using the usual Python package manager tools, like pip:
.. code:: bash
$ pip install robotkernel
For JupyterLab it is recommended to also install the Robot Framework syntax highlighting and Jupyter widgets support:
.. code:: bash
$ jupyter labextension install jupyterlab_robotmode
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
For some environments it might be required to run the following command to manually register robotkernel as an available Jupyter kernel:
.. code:: bash
$ python -m robotkernel.install
Export to .robot
----------------
It is possible to export Robot Framework Jupyter notebooks to regular plain text ``.robot`` files for usage without Jupyter:
.. code:: bash
$ jupyter nbconvert --to script example.ipynb
.. _nbconvert: https://nbconvert.readthedocs.io/
Execute notebooks
-----------------
RobotKernel installs a script named ``nbrobot``. It can be used instead of Robot Framework's ``robot`` test runner to execute Robot Framework with ``.ipynb``-extension support:
.. code:: bash
$ nbrobot example.ipynb
Hacking RobotKernel
-------------------
Create and activate a new Python virtual environment:
.. code:: bash
$ venv myenv
$ source myenv/bin/activate
Install Jupyter:
.. code:: bash
$ pip install --upgrade pip setuptools
$ pip install jupyter
Clone this kernel:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
Install the kernel into the virtualenv in develop mode:
.. code:: bash
$ python setup.py develop
$ python -m robotkernel.install
Launch the jupyter:
.. code:: bash
$ jupyter notebook
Reloading the kernel reloads the code.
`Learn more about Jupyter kernel development.`__
__ http://jupyter.readthedocs.io/en/latest/install.html
Nix-shell
---------
This repository includes an opinionated environment for running and developing RobotKernel with Nix_ with `Cachix-powered binary cache`__.
__ https://robots-from-jupyter.cachix.org/
Launch Jupyter Notebook with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"
.. _Nix: https://nixos.org/nix/
Launch JupyterLab with RobotKernel:
.. code:: bash
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")'
$ jupyter labextension install jupyterlab_robotmode --app-dir=.jupyterlab
$ jupyter lab --app-dir=.jupyterlab
$ exit
Add ``--arg vim true`` to enable `vim bindings`_.
.. _vim bindings: https://github.com/lambdalisue/jupyter-vim-binding
Open development environment with Nix:
.. code:: bash
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop
Changelog
=========
1.6.0a1 (2022-02-22)
--------------------
- Add %sticky magic LibraryName -magic to preserve state of global and suite scope libraries between executions
[datakurre]
1.5.1 (2021-09-28)
------------------
- Fix set_parent signature
[martinRenou]
1.5.0 (2021-04-22)
------------------
- Add support for robotframework 4.0
[datakurre]
1.4.0 (2020-04-27)
------------------
- Add support for robotframework 3.2
[datakurre]
- Change kernel mimetype to "text/x-robotframework"
[datakurre]
1.3.0 (2020-01-09)
------------------
- Add jupyterlab-starters' based quick start and tutorial
[datakurre]
- Fix issue where Selenium test or task execution resulted in breaking
exception, because temporary execution directory could not be cleared due to
open geckodriver.log
[datakurre]
1.2.2 (2020-01-05)
------------------
- Fix regression where wrong nbimporter was not automatically imported
[datakurre]
1.2.1 (2019-12-30)
------------------
- Fix issue where data uri images were not displayed on notebook
[datakurre]
- Fix issue where list type suite variables were not correctly restored
[datakurre]
1.2 (2019-12-06)
----------------
- Add support for Robot Framework 3.2a1
[datakurre]
- Add support for displaying multiline text return values
[datakurre]
- Add support for sticky JupyterLibrary webdriver connections
[datakurre]
- Fix issue where updated global variables were overridden from saved
variables from the previous execution
[datakurre]
1.1.1 (2019-12-05)
------------------
- Fix issue where library autocompletion override settings keywords
autocompletion
[datakurre]
1.1.0 (2019-12-05)
------------------
- Add Library autocompletion after Library keyword within Settings
[datakurre]
1.0.2 (2019-12-04)
------------------
- Fix issue where text strings feed to JSON displayed a warning
[datakurre]
- Fix JupyterLab context help support to work when clicked in the middlle of a keyword
[datakurre]
- Fix to close dangling Selenium connections
[datakurre]
1.0.1 (2019-09-19)
------------------
- Fix issue where ${CURDIR} was broken on Windows, because it contained path without
escaped path separators required by Robot Framework
[datakurre]
- Fix issue where suite variable listener reported errors when running robot suites,
because it tried to restore dictionary variables with empty value
[datakurre]
1.0 (2019-09-12)
----------------
- Fix issue where log and report links did not open on JupyterLab 1.0
[datakurre]
1.0rc1 (2019-04-01)
-------------------
- Move tutorials notebooks into notebooks folder
[datakurre]
- Fix WhiteLibrary autocompletion to suggest selectors with :-separator
instead of =-separator
[datakurre]
0.12.2 (2019-03-30)
-------------------
- Fix remaining where keeping state of suite level variables between cell
executions since 0.12.0 caused regression by fixing the listener to ignore
all known built-in variables
[datakurre]
0.12.1 (2019-03-27)
-------------------
- Fix issue where keeping state of suite level variables between cell
executions resulted in errors caused by outdated output directory
from the old variables
[datakurre]
0.12.0 (2019-03-26)
-------------------
New features:
- Add keyword execution widgets below executed keyword cells; Add to toggle
widgets on consecutive executions without code changes
[datakurre]
- Add listener to keep state of suite level variables between robot executions
[datakurre]
- Add IPython display hooks
[datakurre]
New features:
- Add updates to highlighting from ipythonrobotframework
[datakurre]
0.11.0 (2019-01-29)
-------------------
- Add WhiteLibrary state support and interactive element picker
[datakurre]
- Add WhiteLibraryCompanion keyword library to interactively
select elements and click elements with OpenCV templates
[datakurre]
0.10.2 (2019-01-11)
-------------------
- Fix syntax highlighting issue where only the first variable of many was
highlighted
[datakurre]
0.10.1 (2019-01-10)
-------------------
- Update package trove classifiers
[datakurre]
0.10.0 (2019-01-08)
-------------------
Breaking:
- Setuptools 40.5.0 later and Robot Framework 3.1 or later.
[datakurre]
new features:
- Add pregenerated kernel.json in data_files to auto-install robotkernel,
but requiring
[datakurre]
0.9.0 (2019-01-04)
------------------
New features:
- Rewrite status updater to the status of currently run test as
``trobber | test name | keyword name | robot.api.logger.console message``
[datakurre]
- Add embedded log and report to include Download-links at top right corner
[datakurre]
- Add to display the results of the last executed keyword as the notebook
result for the executed code cell
[datakurre]
- Add syntax highlighting for variables and assignment operators
[datakurre]
Bug fixes:
- Fix issue where setup.cfg contained OS specific path separators preventing
build on Windows
[datakurre]
- Fix issue where PNGs were interpreted as APNG on Windows preventing
them from being rendered on Windows
[datakurre]
- Update example notebook to use SeleniumLibrary and SeleniumScreenshots
instead of SeleniumLibrary and Selenium2Screenshots
[datakurre]
- Add to always reload libraries imported from other notebooks
[datakurre]
0.8.0 (2018-12-14)
------------------
- Add to auto-import nbimporter when available to make it possible to
import eg. keyword libraries from Python notebooks
[datakurre]
- Fix issue where nbrobot did support %%python module magic
[datakurre]
0.7.1 (2018-11-20)
------------------
- Add to require robotframework >= 3.1b1 in requires
0.7.0 (2018-10-31)
------------------
Breaking:
- Requires robotframework >= 3.1b1
Other:
- Add to create nbreader and nblibdoc cli to run robot with notebook reader
support
[datakurre]
- Add Selenium completions to sometimes include raw Simmer results with
simplfied id completion results
[datakurre]
- Add proof-of-concept selector completion for Appium and AutoIT libraries
[datakurre]
- Fix screenshot processor to also discover images with absolute path or within
the current working directory
[datakurre]
0.6.3 (2018-10-19)
------------------
This is the last release compatible with robotframework < 3.1
- Remove deprecated replace-flag from kernel installer
[datakurre]
0.6.2 (2018-10-19)
------------------
- Fix compatibility issue with robotframework < 3.1
[datakurre]
0.6.1 (2018-10-19)
------------------
- Fix issue where kernel installation produced broken kernel.json on Windows
[datakurre]
0.6.0 (2018-10-18)
------------------
- Revert data source path from temporary directory into current working
directory to allow local libraries and resources work in the usual use cases
[datakurre]
- Add experimental Simmerjs based CSS-selector builder and element picker with
when auto-completion is called with empty "css:"-selector
[datakurre]
- Add experimental Selenium selector auto-completion
[datakurre]
- Add dummy variable completion with only variables from current suite without
context knowledge
[datakurre]
- Add inline documentation links to Robot Framework User Guide for structural
keywords
[datakurre]
0.5.4 (2018-10-09)
------------------
- Fix issue where single term keywords got no completions
[datakurre]
0.5.3 (2018-10-09)
------------------
- Update README
[datakurre]
0.5.1 (2018-10-08)
------------------
- Auto completion and keyword doc inspection enhancements
[datakurre]
0.5.0 (2018-10-08)
------------------
- Add auto-completion, keyword doc inspection and support for
replacing and deleting cell history on Jupyter lab
[datakurre]
0.4.0 (2018-09-26)
------------------
- Add support for robotframework 3.1a2
[datakurre]
- Add support for reporting RPA suites with "Tasks" instead of "Tests"
[datakurre]
0.3.5 (2018-09-25)
------------------
- Update README with notebook execution instructions
[datakurre]
0.3.4 (2018-09-25)
------------------
- Update README
[datakurre]
0.3.3 (2018-09-25)
------------------
- Note on README that Log | Report -links require trusting the notebook
[datakurre]
- Fix to wrap test execution updates with '<pre>' for better readability
[datakurre]
0.3.2 (2018-09-25)
------------------
- Change to always send display data updates in text/html to workaround a bug
that caused 'undefined' to be rendered in JupyterLab
[datakurre]
0.3.1 (2018-09-24)
------------------
- Update README
[datakurre]
0.3.0 (2018-09-23)
------------------
- First release.
[datakurre]

@@ -0,1 +1,2 @@

.gitignore
CHANGELOG.rst

@@ -6,5 +7,7 @@ LICENSE

default.nix
requirements-python37-rf31.nix
requirements-python37-rf32.nix
requirements-python37-rf40.nix
requirements-python39-rf31.nix
requirements-python39-rf32.nix
requirements-python39-rf40.nix
requirements-python39-rf41.nix
requirements-python39-rf50.nix
setup.cfg

@@ -14,2 +17,3 @@ setup.nix

shell.nix
.github/workflows/smoketest.yml
atest/Test Robot Notebook.ipynb

@@ -106,2 +110,3 @@ docs/conf.py

tests/Smoketest.ipynb
tests/StickyLibraryMagic.ipynb
tests/Test Inline Python.ipynb

@@ -108,0 +113,0 @@ tests/Test Resource.ipynb

@@ -6,4 +6,4 @@ # -*- coding: utf-8 -*-

try:
from robotkernel.selectors_white import WhiteLibraryCompanion
import WhiteLibrary
from robotkernel.selectors_white import WhiteLibraryCompanion

@@ -10,0 +10,0 @@ assert WhiteLibrary

@@ -44,3 +44,3 @@ # -*- coding: utf-8 -*-

def __init__(self, parent=None, source=None):
super(TestCaseString, self).__init__(parent, source)
super().__init__(parent, source)
self.setting_table = SafeSettingsTable(self)

@@ -58,3 +58,3 @@ self.keyword_table = OverridingKeywordTable(self)

def __init__(self, parent):
super(SafeSettingsTable, self).__init__(parent)
super().__init__(parent)
self.suite_setup = OverridingFixture("Suite Setup", self)

@@ -70,3 +70,3 @@ self.suite_teardown = OverridingFixture("Suite Teardown", self)

self.reset()
super(OverridingFixture, self).populate(value, comment)
super().populate(value, comment)

@@ -81,3 +81,3 @@

break
return super(OverridingKeywordTable, self).add(name)
return super().add(name)

@@ -99,6 +99,6 @@

def populate(self, source):
LOGGER.info("Parsing string '%s'." % source)
LOGGER.info(f"Parsing string '{source}'.")
try:
RobotReader().read(BytesIO(source.encode("utf-8")), self)
except Exception:
raise DataError(get_error_message())
except Exception as e:
raise DataError(get_error_message()) from e

@@ -8,3 +8,5 @@ """Completion implementations."""

def complete_libraries(needle: str,) -> List[str]:
def complete_libraries(
needle: str,
) -> List[str]:
"""Complete library names."""

@@ -11,0 +13,0 @@ matches = []

@@ -22,3 +22,3 @@ # -*- coding: utf-8 -*-

def __init__(self, **kwargs):
super(DisplayKernel, self).__init__(**kwargs)
super().__init__(**kwargs)

@@ -59,8 +59,7 @@ # Configure IPython shell

self.shell.exit_now = False
super(DisplayKernel, self).start()
super().start()
def set_parent(self, ident, parent, *args, **kwargs):
"""Overridden from parent to tell the display hook and output streams about the parent message.
"""
super(DisplayKernel, self).set_parent(ident, parent, *args, **kwargs)
"""Overridden from parent to tell the display hook and output streams about the parent message."""
super().set_parent(ident, parent, *args, **kwargs)
self.shell.set_parent(parent)

@@ -135,3 +134,3 @@

)
super(ProgressUpdater, self).__init__()
super().__init__()

@@ -173,2 +172,2 @@ def _update(self):

self.stdout.write(s)
return super(ProgressUpdater, self).write(s)
return super().write(s)

@@ -36,3 +36,3 @@ # -*- coding: utf-8 -*-

def execute_python(kernel: DisplayKernel, code: str, module: str, silent: bool):
""""Execute Python code str in the context of named module.
"""Execute Python code str in the context of named module.
If the named module is not found, a new module is introduced.

@@ -221,3 +221,3 @@ """

if suite.tests:
if suite.tests: # noqa: W0125
try:

@@ -324,3 +324,3 @@ with TemporaryDirectory() as path:

{
"text/html": ""
"text/html": "" # noqa: C0209
'<p><a href="about:" onClick="{}">Log</a> | <a href="about:" onClick="{}">Report</a></p>'.format(

@@ -352,3 +352,3 @@ javascript_uri(log, "log.html"),

cwd = os.getcwd()
with open(os.path.join(path, "output.xml")) as fp:
with open(os.path.join(path, "output.xml"), encoding="utf-8") as fp:
xml = fp.read()

@@ -385,8 +385,8 @@ for src in re.findall('img src="([^"]+)', xml):

uri = data_uri(mimetype, data)
xml = xml.replace('a href="{}"'.format(src), "a")
xml = xml.replace(f'a href="{src}"', "a")
xml = xml.replace(
'img src="{}" width="800px"'.format(src),
'img src="{}" style="max-width:800px;"'.format(uri),
f'img src="{src}" width="800px"',
f'img src="{uri}" style="max-width:800px;"',
) # noqa: E501
xml = xml.replace('img src="{}"'.format(src), 'img src="{}"'.format(uri))
xml = xml.replace(f'img src="{src}"', f'img src="{uri}"')
if not silent:

@@ -397,3 +397,3 @@ kernel.send_display_data(

)
with open(os.path.join(path, "output.xml"), "w") as fp:
with open(os.path.join(path, "output.xml"), "w", encoding="utf-8") as fp:
fp.write(xml)

@@ -45,3 +45,3 @@ # -*- coding: utf-8 -*-

with open(os.path.join(td, "kernel.json"), "w") as f:
with open(os.path.join(td, "kernel.json"), "w", encoding="utf-8") as f:
json.dump(kernel_json, f, indent=2, sort_keys=True)

@@ -48,0 +48,0 @@

@@ -18,2 +18,3 @@ # -*- coding: utf-8 -*-

from robotkernel.listeners import SeleniumConnectionsListener
from robotkernel.listeners import StickyLibraryListener
from robotkernel.listeners import WhiteLibraryListener

@@ -63,3 +64,3 @@ from robotkernel.monkeypatches import inject_libdoc_ipynb_support

def __init__(self, **kwargs):
super(RobotKernel, self).__init__(**kwargs)
super().__init__(**kwargs)
# Enable nbreader

@@ -78,2 +79,3 @@ inject_robot_ipynb_support()

self.robot_connections = []
self.robot_libraries = {}

@@ -95,3 +97,3 @@ # Searchable index for keyword autocomplete documentation

def do_shutdown(self, restart):
super(RobotKernel, self).do_shutdown(restart)
super().do_shutdown(restart)
self.robot_history = OrderedDict()

@@ -104,2 +106,3 @@ self.robot_variables = []

self.robot_connections = []
self.robot_libraries = {}

@@ -210,3 +213,3 @@ def do_complete(self, code, cursor_pos):

self.robot_cell_id = (parent.get("metadata") or {}).get("cellId") or None
return super(RobotKernel, self).init_metadata(parent)
return super().init_metadata(parent)

@@ -231,2 +234,7 @@ def do_execute(

# Support %sticky library LibraryMagic cell magic
match = re.findall(r"^%sticky library ([a-zA-Z_]+)", code, flags=re.MULTILINE)
for name in match:
self.robot_libraries.setdefault(name, None)
# Support %%python module ModuleName cell magic

@@ -238,3 +246,3 @@ match = re.match("^%%python module ([a-zA-Z_]+)", code)

self,
code[len("%%python module {0:s}".format(module)) :],
code[len(f"%%python module {module}") :],
module,

@@ -260,6 +268,13 @@ silent,

RobotVariablesListener(self.robot_suite_variables),
StickyLibraryListener(self.robot_libraries),
]
# Execute test case
result = execute_robot(self, code, self.robot_history, listeners, silent,)
result = execute_robot(
self,
code,
self.robot_history,
listeners,
silent,
)

@@ -266,0 +281,0 @@ # Save history

@@ -344,1 +344,44 @@ # -*- coding: utf-8 -*-

pass
class StickyLibraryListener:
ROBOT_LISTENER_API_VERSION = 2
def __init__(self, libraries: dict):
self.libraries = libraries
# noinspection PyUnusedLocal,PyProtectedMember
def end_suite(self, name, attributes):
try:
builtin = BuiltIn()
for library in self.libraries:
try:
if builtin._namespace._kw_store.libraries[library].scope.is_global:
self.libraries[
library
] = builtin._namespace._kw_store.libraries[library]
else:
self.libraries[library] = builtin.get_library_instance(library)
except (AttributeError, KeyError, RuntimeError):
continue
except RuntimeError:
pass
# noinspection PyUnusedLocal,PyProtectedMember
def start_suite(self, name, attributes):
try:
builtin = BuiltIn()
for library, instance in self.libraries.items():
if instance is None:
continue
try:
if builtin._namespace._kw_store.libraries[library].scope.is_global:
builtin._namespace._kw_store.libraries[library] = instance
else:
builtin._namespace._kw_store.libraries[
library
]._libinst = instance
except (AttributeError, KeyError):
continue
except RuntimeError:
pass

@@ -18,4 +18,4 @@ # -*- coding: utf-8 -*-

from robot.libdocpkg.builder import RESOURCE_EXTENSIONS
from robot.parsing import populators
from robot.parsing import TEST_EXTENSIONS
from robot.parsing import populators
from robot.parsing.robotreader import RobotReader

@@ -33,7 +33,7 @@

import nbformat # noqa
except ImportError:
except ImportError as e:
raise DataError(
"Using Notebook test data requires having "
'"nbformat" module version 4.4.0 or newer installed.'
)
) from e

@@ -50,2 +50,10 @@ class NotebookReader(object):

# Clear %sticky library LibraryName cell magic
cell.source = re.sub(
r"^%sticky library ([a-zA-Z_]+)",
"",
cell.source,
flags=re.MULTILINE,
)
# Execute %%python module magics

@@ -55,3 +63,3 @@ match = re.match("^%%python module ([a-zA-Z_]+)", cell.source)

module = match.groups()[0]
cursor = len("%%python module {0:s}".format(module))
cursor = len(f"%%python module {module}")
exec_code_into_module(cell.source[cursor:], module)

@@ -58,0 +66,0 @@ continue

@@ -114,3 +114,3 @@ # -*- coding: utf-8 -*-

def __init__(self, screenshot=None, snip=False):
super(PickSnipTool, self).__init__()
super().__init__()
self.snip_enabled = snip

@@ -190,8 +190,7 @@

class WhiteLibraryCompanion:
"""Complementary keyword library to use OpenCV based image recognition with RobotKernel and WhiteLibrary.
"""
"""Complementary keyword library to use OpenCV based image recognition with RobotKernel and WhiteLibrary."""
def match_template(self, template: str, similarity: float = 0.8):
import cv2 as cv # noqa
import numpy as np # noqa
import cv2 as cv # noqa

@@ -198,0 +197,0 @@ screenshot = PickSnipTool.take_screenshot(as_bytes=True)

@@ -10,4 +10,4 @@ # -*- coding: utf-8 -*-

try:
from robotkernel.selectors_white import PickSnipTool
import WhiteLibrary
from robotkernel.selectors_white import PickSnipTool
except ImportError:

@@ -29,5 +29,5 @@ WhiteLibrary = None

try:
from selenium.common.exceptions import WebDriverException
from selenium.common.exceptions import InvalidSessionIdException
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import WebDriverException
except ImportError:

@@ -161,4 +161,4 @@

)
except InvalidSessionIdException:
raise BrokenOpenConnection(driver)
except InvalidSessionIdException as e:
raise BrokenOpenConnection(driver) from e
except WebDriverException:

@@ -547,3 +547,3 @@ return

counter = {}
match = None
match = []

@@ -550,0 +550,0 @@ time.sleep(1)

@@ -33,3 +33,2 @@ # -*- coding: utf-8 -*-

else:

@@ -44,3 +43,3 @@ from robot.parsing.settings import Documentation

return (
"javascript:(function(el){{"
"javascript:(function(el){{" # noqa: C0209
"var w=window.open();var d='{}';"

@@ -63,3 +62,5 @@ "w.document.open();"

def data_uri(mimetype, data):
return "data:{};base64,{}".format(mimetype, base64.b64encode(data).decode("utf-8"))
return "data:{};base64,{}".format( # noqa: C0209
mimetype, base64.b64encode(data).decode("utf-8")
)

@@ -66,0 +67,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet