{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":658518,"defaultBranch":"main","name":"ipython","ownerLogin":"ipython","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-05-10T04:46:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/230453?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714122378.0","currentOid":""},"activityList":{"items":[{"before":"9d06a304d13b5d10f19521b81f51c2b0c512dc23","after":"f9982dbf34e7941d321b25d372ff669d76f734bf","ref":"refs/heads/main","pushedAt":"2024-04-26T09:06:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"back to dev","shortMessageHtmlLink":"back to dev"}},{"before":"fade2b58e408b24fdd0d925916dc8bc0b5339ba7","after":"9d06a304d13b5d10f19521b81f51c2b0c512dc23","ref":"refs/heads/main","pushedAt":"2024-04-26T09:06:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"release 8.24.0","shortMessageHtmlLink":"release 8.24.0"}},{"before":"afae901d47390cfb859f651b6efa2f24b3b20620","after":"fade2b58e408b24fdd0d925916dc8bc0b5339ba7","ref":"refs/heads/main","pushedAt":"2024-04-26T09:04:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Whats new 8.24 (#14419)","shortMessageHtmlLink":"Whats new 8.24 (#14419)"}},{"before":"f68c73762e8d37ee829a82a50612ff699dfdec65","after":"afae901d47390cfb859f651b6efa2f24b3b20620","ref":"refs/heads/main","pushedAt":"2024-04-26T08:58:07.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Push caching to parent frame, and cache more frames. (#14418)\n\nI hope in deep code this makes things faster.\r\n\r\nComplement to #14386, but a bit of a blind fix.","shortMessageHtmlLink":"Push caching to parent frame, and cache more frames. (#14418)"}},{"before":"f476dd7c1ccb5432765bf93cb744def808ab2cbb","after":"f68c73762e8d37ee829a82a50612ff699dfdec65","ref":"refs/heads/main","pushedAt":"2024-04-26T08:45:26.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Fix compatibility with pytest 8 (#14413)\n\nsetup/teardown nose methods are no longer supported by pytest 8.\r\nhttps://docs.pytest.org/en/latest/deprecations.html#setup-teardown","shortMessageHtmlLink":"Fix compatibility with pytest 8 (#14413)"}},{"before":"c3dcfaa3a9245cfa027af0b1a3a3e8988582b83c","after":"f476dd7c1ccb5432765bf93cb744def808ab2cbb","ref":"refs/heads/main","pushedAt":"2024-04-17T18:45:47.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"DOCS: Clarify emacs details wrt simple_prompt (#14407)","shortMessageHtmlLink":"DOCS: Clarify emacs details wrt simple_prompt (#14407)"}},{"before":"8ff4109a184d242bbc8cdd08750d9a192b854784","after":"c3dcfaa3a9245cfa027af0b1a3a3e8988582b83c","ref":"refs/heads/main","pushedAt":"2024-04-16T15:44:59.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"DOCS: update simple_prompt phrasing. (#14404)\n\nCloses #14402","shortMessageHtmlLink":"DOCS: update simple_prompt phrasing. (#14404)"}},{"before":"3b574303bba94fcff523a9ee92b67584f4cbe40b","after":"8ff4109a184d242bbc8cdd08750d9a192b854784","ref":"refs/heads/main","pushedAt":"2024-04-15T08:43:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Restore BdbQuit_excepthook (#14399)\n\nThis is necessary for ipdb.\r\n\r\nCloses #14396","shortMessageHtmlLink":"Restore BdbQuit_excepthook (#14399)"}},{"before":"e0d3e4cdca6c18143df932a83b5d89517041a90b","after":"3b574303bba94fcff523a9ee92b67584f4cbe40b","ref":"refs/heads/main","pushedAt":"2024-04-15T08:43:31.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Fix use of --pylab=auto and --matplotlib=auto (#14403)\n\nFixes #14401 which has been a bug in the 8.22.x and 8.23.x releases.\r\n\r\nWhen I removed the multiple initialisation of Matplotlib backends in\r\n#14330 it broke use of the following:\r\n```bash\r\nipython --matplotlib\r\nipython --matplotlib=auto\r\nipython --pylab\r\nipython --pylab=auto\r\n```\r\nby failing to display Matplotlib plot. If you specify a particular GUI\r\nevent loop such as using\r\n```bash\r\nipython --pylab=qt\r\n```\r\nthen it was and is fine. So for anyone finding this, the workaround\r\nuntil the next release is to specify a GUI loop rather than relying on\r\nthe auto selection.\r\n\r\nI didn't notice this as I've been concentrating on moving the Matplotlib\r\nbackend logic from IPython to Matplotlib, and with those changes\r\n(matplotlib/matplotlib#27948) the above use cases all work OK.\r\n\r\nThe fix is to reintroduce the early import of `matplotlib-inline` but\r\nonly if both the gui loop is not specified and the Matplotlib version is\r\nbefore the movement of the backend logic across to it.\r\n\r\nThere are no explicit tests for this. In the future I will try to think\r\nof some tests for some of this IPython-Matplotlib functionality that\r\ndon't involve installing complicated backend dependencies or adding\r\nimage comparison tests.","shortMessageHtmlLink":"Fix use of --pylab=auto and --matplotlib=auto (#14403)"}},{"before":"fe52b206ecd0e566fff935fea36d26e0903ec34b","after":"e0d3e4cdca6c18143df932a83b5d89517041a90b","ref":"refs/heads/main","pushedAt":"2024-04-12T12:39:32.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Move Matplotlib backend mapping to Matplotlib (#14371)\n\nThis is WIP to move IPython's backend mapping into Matplotlib and\r\nextends it to allow backends to register themselves via [entry\r\npoints](https://setuptools.pypa.io/en/latest/userguide/entry_point.html#entry-points-for-plugins).\r\nIt is a coordinated effort across Matplotlib, IPython, matplotlib-inline\r\nand ipympl. Closes #14311. Most of the work is in Matplotlib\r\n(matplotlib/matplotlib#27948) but I will repeat the relevant points\r\nhere.\r\n\r\nWhen using a Matplotlib magic command of the form `%matplotlib\r\nsomething` the identification of the Matplotlib backend and GUI loop are\r\nnow performed in Matplotlib not IPython. This supports:\r\n\r\n1. Matplotlib backends that IPython already supports such as `qtagg` and\r\n`tkagg`.\r\n2. Other built-in Matplotlib backends such as `qtcairo`.\r\n3. Backends that use `module://something` syntax such as\r\n`module://mplcairo.qt`.\r\n4. Backends that self-register using entry points, currently `inline`\r\nand `widget`/`ipympl`.\r\n\r\nImplementation details:\r\n\r\n1. The magic command is now explicitly `%matplotlib gui_or_backend`\r\nrather than `%matplotlib gui`. This is already effectively the case as\r\ne.g. `%matplotlib ipympl` is really a backend not GUI name. Within\r\nMatplotlib the `gui_or_backend` is checked first to see if it is a GUI\r\nname and then falls back to checking if it is a backend name.\r\n2. If you select the `inline` backend the corresponding GUI is now\r\n`None` not `inline`. All backends which do not have a GUI loop return\r\n`None`, otherwise we have to keep explicit checks within IPython for\r\nparticular backends.\r\n3. `backends` and `backend2gui` are now deprecated but are still\r\nexposed, with a deprecation warning, if required. If using Matplotlib,\r\nipympl, etc releases that include the corresponding changes to this PR\r\nthen they are not needed as Matplotlib deals with it all. But for\r\nbackward compatibility they must still be available for a while along\r\nwith the remainder of the existing backend-handling code.\r\n4. I haven't yet updated the documentation but we need to keep\r\ninformation about valid GUI frameworks and I propose that we should\r\nremove all lists of valid Matplotlib backends, replacing them with\r\ninstructions on how to obtain the current list (pointing to the\r\nMatplotlib docs and using `%matplotlib --list`). If we keep any lists\r\nthen they will inevitably become out of date. This extends to the\r\n`backend_keys` in IPython/core/shellapp.py.\r\n\r\nBecause the four related projects are loosely coupled without direct\r\ndependencies on each other (except for `ipython` and\r\n`matplotlib-inline`), backward compatibility requires all possible\r\ncombinations of projects before and after the new functionality (I will\r\ncall these \"old\" and \"new\" from now on) to continue to work. I have\r\ntested these all locally, and the CI of this PR will test new IPython\r\nagainst old Matplotlib for example, but I need to add one or more new\r\ntemporary CI runs to test new IPython against new Matplotlib etc. The\r\nidentification of new versus old depends on version checks on the other\r\nlibraries, so here is a table that I will update showing the current\r\nstatus of progress in the 4 projects:\r\n\r\n| Project | Relevant PRs | Possible release version |\r\n| --- | --- | --- |\r\n| matplotlib-inline | ipython/matplotlib-inline#34,\r\nipython/matplotlib-inline#35 | 0.1.7 |\r\n| ipympl | matplotlib/ipympl#549 | 0.9.4 |\r\n| Matplotlib | matplotlib/matplotlib#27948 | 3.9.1 |\r\n| IPython | #14371 (this) | 8.24.0 |\r\n\r\nThe two widget projects can be released soon, once we are happy with the\r\nentry point approach. The other two projects' PRs will have to be\r\nsynchronised as each includes version checks on each other.\r\n\r\nTo do\r\n\r\n- [ ] Add CI runs against the new PR branches of the other projects.\r\n- [ ] Add comments for conditions required for backward-compatibility\r\ncode blocks to be removed.\r\n- [ ] Update documentation, including removal of lists of valid\r\nbackends.\r\n- [ ] Update version checks before merging.","shortMessageHtmlLink":"Move Matplotlib backend mapping to Matplotlib (#14371)"}},{"before":"38aa68c305c58017bfa4074fba9c391439147290","after":"fe52b206ecd0e566fff935fea36d26e0903ec34b","ref":"refs/heads/main","pushedAt":"2024-04-09T16:05:59.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Fix debugger colors (#14393)\n\nEscape sequence and off-by-one in #14387","shortMessageHtmlLink":"Fix debugger colors (#14393)"}},{"before":"86d864e60df5782f81141b37e19c05700d6faf9a","after":"38aa68c305c58017bfa4074fba9c391439147290","ref":"refs/heads/main","pushedAt":"2024-04-05T09:56:58.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Reify colors from debugger. (#14387)\n\nThis help with static checking.","shortMessageHtmlLink":"Reify colors from debugger. (#14387)"}},{"before":"a3074b8cf3fbb20482732a5602c20cf7bac0a215","after":"86d864e60df5782f81141b37e19c05700d6faf9a","ref":"refs/heads/main","pushedAt":"2024-04-02T15:23:09.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Remove deprecated function (#14388)\n\nTh second function BdbQuit_IPython_excepthook is wrong anyway as when we\r\nmoved from warning to error we did not remove stacklevel= ... which is\r\ninvalid.","shortMessageHtmlLink":"Remove deprecated function (#14388)"}},{"before":"f9e1ccb6e4426f702a95d66c30d86112ca1117af","after":"a3074b8cf3fbb20482732a5602c20cf7bac0a215","ref":"refs/heads/main","pushedAt":"2024-04-02T11:14:58.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Cache debugger skip frame predicate (#14386)\n\n\r\nI'm not 100% sure this is correct as technically the value of\r\n__debugger_skip__ could change in the current frame while we are\r\nstepping into it, but that is likely super rare, and the slowdown\r\nthat this create is problematic.\r\n\r\nThere is still a small overhead for me, but this should make the\r\nexperience much better.\r\n\r\nSee https://github.com/spyder-ide/spyder-kernels/pull/458,\r\nhttps://github.com/ipython/ipython/issues/13972,\r\nhttps://github.com/spyder-ide/spyder/issues/20571,\r\nhttps://github.com/ipython/ipython/issues/14382","shortMessageHtmlLink":"Cache debugger skip frame predicate (#14386)"}},{"before":"def84efb49fff1460003265a8585d51d0531fac9","after":"f9e1ccb6e4426f702a95d66c30d86112ca1117af","ref":"refs/heads/main","pushedAt":"2024-04-02T09:54:20.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Remove link to non-existent ipyparallel docs. (#14383)\n\nThose were likely recently removed.","shortMessageHtmlLink":"Remove link to non-existent ipyparallel docs. (#14383)"}},{"before":"b9c597dfd0b29469ad32344f85b97b9ef83085f0","after":"def84efb49fff1460003265a8585d51d0531fac9","ref":"refs/heads/main","pushedAt":"2024-04-02T08:55:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Require typing-extensions 4.6. or newer (#14381)\n\nFixes https://github.com/ipython/ipython/issues/14380","shortMessageHtmlLink":"Require typing-extensions 4.6. or newer (#14381)"}},{"before":"5e7c4a991dcbc7640c34792804fc815cbf3235de","after":"b9c597dfd0b29469ad32344f85b97b9ef83085f0","ref":"refs/heads/main","pushedAt":"2024-03-31T13:01:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"back to dev","shortMessageHtmlLink":"back to dev"}},{"before":"623abac41574a92cc8128869648972b757f1c456","after":"5e7c4a991dcbc7640c34792804fc815cbf3235de","ref":"refs/heads/main","pushedAt":"2024-03-31T13:00:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"release 8.23.0","shortMessageHtmlLink":"release 8.23.0"}},{"before":"a570c92cc0120cd965f124a3f4dce5da47f8f555","after":"623abac41574a92cc8128869648972b757f1c456","ref":"refs/heads/main","pushedAt":"2024-03-31T12:59:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"whats new 8.23 (#14379)","shortMessageHtmlLink":"whats new 8.23 (#14379)"}},{"before":"43f9010d15eff67ef6a63fd162c86a96ba57c376","after":"a570c92cc0120cd965f124a3f4dce5da47f8f555","ref":"refs/heads/main","pushedAt":"2024-03-31T12:33:28.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"add __repr__ to MagicsDisplay (#14378)\n\nHere's more details on the `rich` side:\r\n\r\nhttps://github.com/Textualize/rich/issues/3317\r\n\r\nI don't see a good reason not to overload `__repr__` in this use case","shortMessageHtmlLink":"add __repr__ to MagicsDisplay (#14378)"}},{"before":"83ff718a24701ad0f4ed2571c3a701d9c3c96226","after":"43f9010d15eff67ef6a63fd162c86a96ba57c376","ref":"refs/heads/main","pushedAt":"2024-03-17T08:11:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Disable scheduled CI runs on forks (#14366)\n\nThe three scheduled CI runs are running on forks of the main repo, e.g.\r\nhttps://github.com/ianthomas23/ipython/actions. They can be disabled by\r\neach fork owner, but this PR disables them for all forks.","shortMessageHtmlLink":"Disable scheduled CI runs on forks (#14366)"}},{"before":"4f6eb6f21fea6d0e5a55cad7e6fc462dd669e3a6","after":"83ff718a24701ad0f4ed2571c3a701d9c3c96226","ref":"refs/heads/main","pushedAt":"2024-03-07T10:45:12.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Fix small typo: imput -> input (#14363)","shortMessageHtmlLink":"Fix small typo: imput -> input (#14363)"}},{"before":"31bf1b4c31ef8187b7af2ea06272af8a17b4c527","after":"4f6eb6f21fea6d0e5a55cad7e6fc462dd669e3a6","ref":"refs/heads/main","pushedAt":"2024-03-06T09:04:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Add a matplotlib optional target dependency (#14362)\n\nWould help with https://github.com/ipython/matplotlib-inline/issues/4","shortMessageHtmlLink":"Add a matplotlib optional target dependency (#14362)"}},{"before":"d1804576bd4d06015f986046af403d8121f9a449","after":"55800a96a69df38b28f4c2acf6fd842daa864a4d","ref":"refs/heads/8.22.x","pushedAt":"2024-03-04T10:31:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"back to dev","shortMessageHtmlLink":"back to dev"}},{"before":"d3a9eeb0af6a9d398b14499ca33641a0a4c30f88","after":"d1804576bd4d06015f986046af403d8121f9a449","ref":"refs/heads/8.22.x","pushedAt":"2024-03-04T10:30:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"release 8.22.2","shortMessageHtmlLink":"release 8.22.2"}},{"before":"10da2ebf924270167304ad7e7464f2f29417d769","after":"d3a9eeb0af6a9d398b14499ca33641a0a4c30f88","ref":"refs/heads/8.22.x","pushedAt":"2024-03-04T10:29:15.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Backport PR #14360 on branch 8.22.x (Whats new 8.22.1, 8.22.2) (#14361)\n\nBackport PR #14360: Whats new 8.22.1, 8.22.2","shortMessageHtmlLink":"Backport PR #14360 on branch 8.22.x (Whats new 8.22.1, 8.22.2) (#14361)"}},{"before":"7c22387ceef8de64cc1e687cfbbf3d8021c237c6","after":"31bf1b4c31ef8187b7af2ea06272af8a17b4c527","ref":"refs/heads/main","pushedAt":"2024-03-04T10:25:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Whats new 8.22.1, 8.22.2 (#14360)","shortMessageHtmlLink":"Whats new 8.22.1, 8.22.2 (#14360)"}},{"before":null,"after":"10da2ebf924270167304ad7e7464f2f29417d769","ref":"refs/heads/8.22.x","pushedAt":"2024-03-04T09:40:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Reexport arg_split on emscripten. (#14356)\n\nCloses jupyterlite/demo#139","shortMessageHtmlLink":"Reexport arg_split on emscripten. (#14356)"}},{"before":"10da2ebf924270167304ad7e7464f2f29417d769","after":"7c22387ceef8de64cc1e687cfbbf3d8021c237c6","ref":"refs/heads/main","pushedAt":"2024-02-27T10:07:09.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Improve inference from return type annotations in completer (#14357)\n\nAddresses the issue of non-jedi completer not picking type annotations\r\nfor `__init__()` brought up in\r\nhttps://github.com/ipython/ipython/issues/14336\r\n\r\n\r\n![completion_works](https://github.com/ipython/ipython/assets/5832902/73d44e26-123e-4691-87a6-e4d92c6f5061)\r\n\r\nFollow-up to https://github.com/ipython/ipython/pull/14185\r\n\r\nSupports:\r\n- [x] `Annotated`\r\n- [x] `AnyStr`\r\n- [x] `Literal`\r\n- [x] `LiteralString`\r\n- [x] `NewType`\r\n- [x] `Optional`\r\n- [x] `Protocol`\r\n- [x] `Self`\r\n- [x] `TypeAliasType` (`type` keyword in Python 3.12+)\r\n- [x] `TypedDict`\r\n- [x] `TypeGuard`\r\n- [x] `Union`\r\n\r\nLimitations:\r\n- no type narrowing: ambiguous return types from `Union`, and `Optional`\r\nwill always return all possible values\r\n- generics (`TypeVar` and `Generic`) are not support (except for\r\n`AnyStr`)\r\n- old style `TypeAlias` (deprecated in Python 3.12) is not supported","shortMessageHtmlLink":"Improve inference from return type annotations in completer (#14357)"}},{"before":"6046a5f941e54dc1a3074550fe2848e074e32217","after":"10da2ebf924270167304ad7e7464f2f29417d769","ref":"refs/heads/main","pushedAt":"2024-02-27T10:04:04.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Reexport arg_split on emscripten. (#14356)\n\nCloses jupyterlite/demo#139","shortMessageHtmlLink":"Reexport arg_split on emscripten. (#14356)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOvjy4QA","startCursor":null,"endCursor":null}},"title":"Activity ยท ipython/ipython"}