{"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":"4bc1baa11d6eaa1e1b0a449eed1e69a35f93eb73","after":"810faec9748b5256d6e0cfa243f5db1e3a740cf9","ref":"refs/heads/main","pushedAt":"2024-05-07T08:22:23.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":"Display Greek small letter mu (#14426)\n\n`%time foo()` output is often copied into code comments to explain\r\nperformance improvements. The `\\xb5` Latin Extended micro sign and the\r\n`\\u03bc` Greek small letter mu have different codes but often look\r\nidentical.\r\n\r\nOutput mu to align with:\r\n\r\n* [The International System of Units (SI) brochure](\r\n https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf\r\n ), such as Table 7 SI prefixes\r\n* NFKC normalized [Python code](https://peps.python.org/pep-3131/\r\n ) and [domain names](https://unicode.org/reports/tr36/). For example:\r\n```sh\r\npython -c 'print(\"\"\"class C:\r\n \\xb5=1\r\nprint(hex(ord(dir(C)[-1])))\"\"\")' | tee /dev/fd/2 | python -\r\n```\r\n```python\r\nclass C:\r\n µ=1\r\nprint(hex(ord(dir(C)[-1])))\r\n```\r\n`0x3bc`\r\n* Section 2.5 Duplicated Characters of [Unicode Technical Report 25](\r\n https://www.unicode.org/reports/tr25/)\r\n> ...U+03BC μ is the preferred character in a Unicode context.\r\n* Ruff confusable mapping [updates](\r\n https://github.com/astral-sh/ruff/pull/4430/files\r\n ), currently in the \"preview\" stage\r\n\r\nAdd a unit test for UTF-8 display and\r\nhttps://bugs.launchpad.net/ipython/+bug/348466 ASCII fallback.","shortMessageHtmlLink":"Display Greek small letter mu (#14426)"}},{"before":"e96ec574d0a7f1c608d0d8559850b1127795d2ca","after":"4bc1baa11d6eaa1e1b0a449eed1e69a35f93eb73","ref":"refs/heads/main","pushedAt":"2024-05-07T08:22:01.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":"Update Matplotlib docs (#14425)\n\nThis updates the docs in line with the recent changes to move Matplotlib\r\nbackend resolution to Matplotlib itself. In passing I have removed\r\nreferences to things that have definitely disappeared from Matplotlib\r\n(such as `qt4`), and I've added a comment about when\r\n`_matplotlib_manages_backends()` can be removed in future.\r\n\r\nThis, along with #14420, should conclude the backend transition.","shortMessageHtmlLink":"Update Matplotlib docs (#14425)"}},{"before":"51f118781f47b6071c2fca8b2191b8f61aae3e05","after":"e96ec574d0a7f1c608d0d8559850b1127795d2ca","ref":"refs/heads/main","pushedAt":"2024-05-06T08:42:11.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"Carreau","name":"M Bussonnier","path":"/Carreau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/335567?s=80&v=4"},"commit":{"message":"Fix downstream ipykernel tests (#14424)\n\nLocally I can get the downstream `ipykernel` tests to pass just by\r\nremoving the explicit downgrade of `pytest` and `pytest_asyncio`, so\r\nhere trying it in CI.","shortMessageHtmlLink":"Fix downstream ipykernel tests (#14424)"}},{"before":"85bb53021545c642a5be9068fbfcc2fdc7a64cf8","after":"51f118781f47b6071c2fca8b2191b8f61aae3e05","ref":"refs/heads/main","pushedAt":"2024-05-06T08:40: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":"Fix listing of subcommands for \"ipython profile\" and \"ipython history\". (#14421)\n\nThe previous code (likely going back to Py2) would print\r\n\r\n Must specify one of: dict_keys(['create', 'list', 'locate'])\r\n\r\nThis PR fixes it to\r\n\r\n Must specify one of: 'create', 'list', 'locate'.","shortMessageHtmlLink":"Fix listing of subcommands for \"ipython profile\" and \"ipython history…"}},{"before":"f9982dbf34e7941d321b25d372ff669d76f734bf","after":"85bb53021545c642a5be9068fbfcc2fdc7a64cf8","ref":"refs/heads/main","pushedAt":"2024-05-06T08:38:52.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":"Convert \"osx\" gui framework to/from \"macosx\" in Matplotlib (#14420)\n\nThis is a correction to the code that moves backend handling to\r\nMatplotlib, which came to light during the review of\r\nmatplotlib/matplotlib#27948. The GUI framework of macOSX is called `osx`\r\nin IPython but `macosx` in Matplotlib.\r\n\r\nIt would be possible to allow passing a GUI framework of `osx` to\r\nMatplotlib and internally converting it to `macosx`, but the reverse\r\ndirection is problematic as we would like the answer to be `osx` if we\r\nare using IPython and `macosx` if using pure Matplotlib. Therefore the\r\nsimplest solution is to do the translation in IPython. It is not ideal\r\nas we want to minimise such Matplotlib-related implementation details in\r\nIPython, but the changes here are small and simple and hence I think\r\nthey are acceptable.\r\n\r\nThere are two new private functions `_convert_gui_to_matplotlib` and\r\n`_convert_gui_from_matplotlib` to do the required checking and\r\nconversion, and these are called whenever a GUI framework name is passed\r\nto or from Matplotlib. There are only 3 places in the code where this is\r\ncurrently required.\r\n\r\nInevitably this comes to light just after the release of IPython 8.24.0!\r\nBut it is not a problem for end users until the next Matplotlib release\r\nwhich contains matplotlib/matplotlib#27948. If that occurs really\r\nquickly (sometime in May?) perhaps we could release an IPython 8.24.1\r\njust beforehand, otherwise the usual planned release at the end of next\r\nmonth would be fine.","shortMessageHtmlLink":"Convert \"osx\" gui framework to/from \"macosx\" in Matplotlib (#14420)"}},{"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"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQ1JcMQA","startCursor":null,"endCursor":null}},"title":"Activity · ipython/ipython"}