##// END OF EJS Templates
PR: Unassigned allowed commands (#14564)...
PR: Unassigned allowed commands (#14564) From git git: > Modify binding mechanism to allow binding to one of a set of whitelisted commands, Add five such commands ("beginning_of_buffer", "end_of_buffer", "end_of_line", "forward_word", "unix_line_discard"). Currently, only commands which are assigned by default are allowed to be reassigned: ```python known_commands = { create_identifier(binding.command): binding.command for binding in KEY_BINDINGS } ... if command_id not in known_commands: ... raise ValueError( f"{command_id} is not a known shortcut command." f" Allowed commands are: \n - {allowed_commands}" ) ``` This PR adds a List UNASSIGNED_ALLOWED_COMMANDS and updates `known_commands` (now renamed to be more clear as `allowed_commands`): ```python allowed_commands.update({ create_identifier(command): command for command in UNASSIGNED_ALLOWED_COMMANDS }) ``` The five unassigned allowed commands are: ```python UNASSIGNED_ALLOWED_COMMANDS = [ nc.beginning_of_buffer, nc.end_of_buffer, nc.end_of_line, nc.forward_word, nc.unix_line_discard, ] ``` Motivation tldr: Until now, it is not possible to bind eg the common keybindng `ctrl+e` to prompt_toolkit's `end_of_line` (because it is not bound by default). Full motivation: https://github.com/ipython/ipython/issues/14369

File last commit:

r28856:18934670
r28945:08be4c99 merge
Show More
downstream.yml
73 lines | 2.4 KiB | text/x-yaml | YamlLexer
name: Run Downstream tests
on:
push:
pull_request:
# Run weekly on Monday at 1:23 UTC
schedule:
- cron: '23 1 * * 1'
workflow_dispatch:
permissions:
contents: read
jobs:
test:
runs-on: ${{ matrix.os }}
# Disable scheduled CI runs on forks
if: github.event_name != 'schedule' || github.repository_owner == 'ipython'
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.10"]
include:
- os: macos-13
python-version: "3.10"
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Update Python installer
run: |
python -m pip install --upgrade pip setuptools wheel
- name: Install ipykernel
run: |
cd ..
git clone https://github.com/ipython/ipykernel
cd ipykernel
pip install -e .[test]
cd ..
- name: Install and update Python dependencies
run: |
python -m pip install --upgrade -e file://$PWD#egg=ipython[test]
# we must install IPython after ipykernel to get the right versions.
python -m pip install --upgrade --upgrade-strategy eager flaky ipyparallel
- name: pytest ipykernel
env:
COLUMNS: 120
run: |
cd ../ipykernel
pytest
- name: Install sagemath-repl
run: |
# Sept 2024, sage has been failing for a while,
# Skipping.
# cd ..
# git clone --depth 1 https://github.com/sagemath/sage
# cd sage
# # We cloned it for the tests, but for simplicity we install the
# # wheels from PyPI.
# # (Avoid 10.3b6 because of https://github.com/sagemath/sage/pull/37178)
# pip install --pre sagemath-repl sagemath-environment
# # Install optionals that make more tests pass
# pip install pillow
# pip install --pre sagemath-categories
# cd ..
- name: Test sagemath-repl
run: |
# cd ../sage/
# # From https://github.com/sagemath/sage/blob/develop/pkgs/sagemath-repl/tox.ini
# sage-runtests -p --environment=sage.all__sagemath_repl --baseline-stats-path=pkgs/sagemath-repl/known-test-failures.json --initial --optional=sage src/sage/repl src/sage/doctest src/sage/misc/sage_input.py src/sage/misc/sage_eval.py