summaryrefslogtreecommitdiffstats
path: root/CHANGELOG
blob: d8738625eb79832cbb85d3d69eb6b40fc60a337b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
CHANGELOG
=========

3.0.26: 2024-02-06
------------------

Fixes:
- Handle `GeneratorExit` exception when leaving the paginator.


3.0.25: 2023-12-14
------------------

Fixes:
- Fix handling of 'config file does not exist' when embedding ptpython.


3.0.24: 2023-12-13
------------------

Fixes:
- Don't show "Impossible to read config file" warnings when no config file was
  passed to `run_config()`.
- IPython integration fixes:
  * Fix top-level await in IPython.
  * Fix IPython `DeprecationWarning`.
- Output printing fixes:
  * Paginate exceptions if pagination is enabled.
  * Handle big outputs without running out of memory.
- Asyncio REPL improvements:
  * From now on, passing `--asyncio` is required to activate the asyncio-REPL.
    This will ensure that an event loop is created at the start in which we can
    run top-level await statements.
  * Use `get_running_loop()` instead of `get_event_loop()`.
  * Better handling of `SystemExit` and control-c in the async REPL.


3.0.23: 2023-02-22
------------------

Fixes:
- Don't print exception messages twice for unhandled exceptions.
- Added cursor shape support.

Breaking changes:
- Drop Python 3.6 support.


3.0.22: 2022-12-06
------------------

New features:
- Improve rendering performance when there are many completions.


3.0.21: 2022-11-25
------------------

New features:
- Make ptipython respect more config changes.
  (See: https://github.com/prompt-toolkit/ptpython/pull/110 )
- Improved performance of `DictionaryCompleter` for slow mappings.

Fixes:
- Call `super()` in `PythonInputFilter`. This will prevent potentially breakage
  with an upcoming prompt_toolkit change.
  (See: https://github.com/prompt-toolkit/python-prompt-toolkit/pull/1690 )
- Improved type annotations.
- Added `py.typed` to the `package_data`.


3.0.20: 2021-09-14
------------------

New features:
- For `DictionaryCompleter`: show parentheses after methods.

Fixes:
- Don't crash when trying to complete broken mappings in `DictionaryCompleter`.
- Don't crash when an older version of `black` is installed that is not
  compatible.


3.0.19: 2021-07-08
------------------

Fixes:
- Fix handling of `SystemExit` (fixes "ValueError: I/O operation on closed
  file").
- Allow usage of `await` in assignment expressions or for-loops.


3.0.18: 2021-06-26
------------------

Fixes:
- Made "black" an optional dependency.


3.0.17: 2021-03-22
------------------

Fixes:
- Fix leaking file descriptors due to not closing the asyncio event loop after
  reading input in a thread.
- Fix race condition during retrieval of signatures.


3.0.16: 2021-02-11
------------------

(Commit 7f619e was missing in previous release.)

Fixes:
- Several fixes to the completion code:
  * Give dictionary completions priority over path completions.
  * Always call non-fuzzy completer after fuzzy completer to prevent that some
    completions were missed out if the fuzzy completer doesn't find them.


3.0.15: 2021-02-11
------------------

New features:
- When pressing control-w, only delete characters until a punctuation.

Fixes:
- Fix `AttributeError` during retrieval of signatures with type annotations.


3.0.14: 2021-02-10
------------------

New features:
- Display of signature and completion drop down together.
- If `DictionaryCompleter` is enabled, also retrieve signatures when Jedi
  fails, using the same logic.
- List function parameters first and private attributes at the end in the
  completion menu.
- Cleanup of the completion code.

Fixes:
- Handle exceptions raised when `repr()` is called.
- Fix leakage of `exc_info` from eval to exec call.
- Fix handling of `KeyboardInterrupt` in REPL during evaluation of `__repr__`.
- Fix style for signature toolbar.
- Hide signature when sidebar is visible.


3.0.13: 2021-01-26
------------------

New features:
- Added 'print all' option to pager.
- Improve handling of indented code:
  * Allow multiline input to be indented as a whole (we will unindent before
    executing).
  * Correctly visualize tabs (instead of ^I, which happens when pasted in
    bracketed paste).

Fixes:
- Fix line ending bug in pager.


3.0.12: 2021-01-24
------------------

New features:
- Expose a `get_ptpython` function in the global namespace, to get programmatic
  access to the REPL.
- Expose `embed()` at the top level of the package. Make it possible to do
  `from ptpython import embed`.

Fixes:
- Properly handle exceptions when trying to access `__pt_repr__`.
- Properly handle `SystemExit`.


3.0.11: 2021-01-20
------------------

New features:
- Add support for top-level await.
- Refactoring of event loop usage:

  * The ptpython input UI will now run in a separate thread. This makes it
    possible to properly embed ptpython in an asyncio application, without
    having to deal with nested event loops (which asyncio does not support).

  * The "eval" part doesn't anymore take place within a ptpython coroutine, so
    it can spawn its own loop if needed. This also fixes `asyncio.run()` usage
    in the REPL, which was broken before.

- Added syntax highlighting and autocompletion for !-style system commands.

Fixes:
- Remove unexpected additional line after output.
- Fix system prompt. Accept !-style inputs again.
- Don't execute PYTHONSTARTUP when -i flag was given.


3.0.10: 2021-01-13
------------------

Fixes:
- Do dictionary completion on Sequence and Mapping objects (from
  collections.abc). Note that dictionary completion is still turned off by
  default.


3.0.9: 2021-01-10
-----------------

New features:
- Allow replacing `PythonInput.completer` at runtime (useful for tools build on
  top of ptpython).
- Show REPL title in pager.


3.0.8: 2021-01-05
-----------------

New features:
- Optional output formatting using Black.
- Optional pager for displaying outputs that don't fit on the screen.
- Added --light-bg and --dark-bg flags to automatically optimize the brightness
  of the colors according to the terminal background.
- Add `PTPYTHON_CONFIG_HOME` for explicitly setting the config directory.
- Show completion suffixes (like '(' for functions).

Fixes:
- Fix dictionary completion on Pandas objects.
- Stop using deprecated Jedi functions.


3.0.7: 2020-09-25
-----------------

New features:
- Option to show/hide private attributes during a completion
- Added `insert_blank_line_after_input` option similar to
  `insert_blank_line_after_output`.

Fixes:
- Fixed some formatting issues of `__pt_repr__`.
- Abbreviate completion meta information for dictionary completer if needed.


3.0.6: 2020-09-23
-----------------

New features:
- (Experimental) support for `__pt_repr__` methods. If objects implement this
  method, this will be used to print the result in the REPL instead of the
  normal `__repr__`.
- Added py.typed file, to enable type checking for applications that are
  embedding ptpython.


3.0.5: 2020-08-10
-----------------

Fixes:
- Handle bug in dictionary completion when numeric keys are used.


3.0.4: 2020-08-10
-----------------

New features:
- Allow leading whitespace before single line expressions.
- Show full syntax error in validator.
- Added `vi_start_in_navigation_mode` and `vi_keep_last_used_mode` options.

Fixes:
- Improved dictionary completion: handle keys that contain spaces and don't
  recognize numbers as variable names.
- Fix in exit confirmation.


3.0.3: 2020-07-10
-----------------

Fixes:
- Sort attribute names for `DictionaryCompleter` and move underscored
  attributes to the end.
- Handle unhandled exceptions in `get_compiler_flags`.
- Improved `run_async` code.
- Fix --version parameter.


3.0.2: 2020-04-14
-----------------

New features:
- Improved custom dictionary completion:
    * Also complete list indexes.
    * Also complete attributes after doing a dictionary lookup.
    * Also complete iterators in a for-loop.
- Added a 'title' option, so that applications embedding ptpython can set a
  title in the status bar.


3.0.1: 2020-02-24
-----------------

- Fix backwards-compatibility of the `run_config` function. (used by
  django-extensions).
- Fix input mode in status bar for block selection.


3.0.0: 2020-01-29
-----------------

Upgrade to prompt_toolkit 3.0.
Requires at least Python 3.6.

New features:
- Uses XDG base directory specification.


2.0.5: 2019-10-09
-----------------

New features:
- Added dictionary completer (off by default).
- Added fuzzy completion (off by default).
- Highlight keywords in completion dropdown menu.
- Enable universal wheels.

Fixes:
- Fixed embedding repl as asyncio coroutine.
- Fixed patching stdout in embedded repl.
- Fixed ResourceWarning in setup.py.


2.0.4: 2018-10-30
-----------------

- Fixed ptipython.
- Fixed config: setting of color depth.
- Fixed auto-suggest key bindings.
- Fixed Control-D key binding for exiting REPL when (confirm_exit=False).
- Correctly focus/unfocus sidebar.
- Fixed open_in_editor and suspend key bindings.


2.0.3: 2018-10-12
-----------------

- Allow changing the min/max brightness.
- Some changes for compatibility with the latest prompt_toolkit.

2.0.2: 2018-09-30
-----------------

Fixes:
- Don't crash the history browser when there was no history.
- Set last exception in the sys module, when an exception was raised.
- Require prompt_toolkit 2.0.5.


2.0.1: 2018-09-30
-----------------

Upgrade to prompt_toolkit 2.0.x.


0.36: 2016-10-16
----------------

New features:
- Support for editing in Vi block mode. (Only enabled for
  prompt_toolkit>=1.0.8.)

Fixes:
- Handle two Jedi crashes. (GitHub ptpython issues #136 and #91.)

0.35: 2016-07-19
----------------

Fixes:
- Fix in completer. Don't hang when pasting a long string with many
  backslashes.
- Fix Python2 bug: crash when filenames contain non-ascii characters.
- Added `pt[i]pythonX` and `pt[i]pythonX.X` commands.
- Compatibility with IPython 5.0.


0.34: 2016-05-06
---------------

Bugfix in ptipython: reset input buffer before every read in run().


0.33: 2016-05-05
---------------

Upgrade to prompt_toolkit 1.0.0

Improvements:
- Unindent after typing 'pass'.
- Make it configurable whether or not a blank line has to be inserted after the output.


0.32: 2016-03-29
---------------

Fixes:
- Fixed bug when PYTHONSTARTUP was not found.
- Support $PYTHONSTARTUP for ptipython.


0.31: 2016-03-14
---------------

Upgrade to prompt_toolkit 0.60


0.30: 2016-02-27
---------------

Upgrade to prompt_toolkit 0.59


0.29: 2016-02-24
----------------

Upgrade to prompt_toolkit 0.58

New features:
- Improved mouse support


0.28: 2016-01-04
----------------

Upgrade to prompt_toolkit 0.57


0.27: 2016-01-03
----------------

Upgrade to prompt_toolkit 0.56


0.26: 2016-01-03
----------------

Upgrade to prompt_toolkit 0.55

Fixes:
- Handle several bugs in Jedi.
- Correctly handle sys.argv when pt(i)python is started with --interactive.
- Support for 24bit true color.
- Take compiler flags into account for ptipython.


0.25: 2015-10-29
----------------

Upgrade to prompt_toolkit 0.54

Fixes:
- Consider input multiline when there's a colon at the end of the line.
- Handle bug in Jedi.
- Enable search bindings in history browser.


0.24: 2015-09-24
----------------

Upgrade to prompt_toolkit 0.52


0.23: 2015-09-24
----------------

Upgrade to prompt_toolkit 0.51

New features:
- Mouse support
- Fish style auto suggestion.
- Optionally disabling of line wraps.
- Use Python3Lexer for Python 3.


0.22: 2015-09-06
----------------

Upgrade to prompt_toolkit 0.50

Fixes:
- Correctly accept file parameter in the print function of
  asyncssh_repl.ReplSSHServerSession.
- Create config directory if it doesn't exist yet (For IPython entry point.)

New features:
- Implementation of history-selection: a tool to select lines from the history.
- Make exit message configurable.
- Improve start-up time: Lazy load completer grammar and lazy-import Jedi.
- Make multi-column the default completion visualisation.
- Implementation of a custom prompts. In_tokens and out_tokens can be
  customized.
- Made an option to show/hide highlighting for matching parenthesis.
- Some styling improvements.


0.21: 2015-08-08
---------------

Upgrade to prompt_toolkit 0.46

Fixes:
- Correctly add current directory to sys.path.
- Only show search highlighting when the search is the current input buffer.
- Styling fix.


0.20: 2015-07-30
---------------

Upgrade to prompt_toolkit 0.45


0.19: 2015-07-30
---------------

Upgrade to prompt_toolkit 0.44

New features:
- Added --interactive option for ptipython.
- A few style improvements.


0.18: 2015-07-15
---------------

Fixes:
- Python 2.6 compatibility.


0.17: 2015-07-15
---------------

Upgrade to prompt_toolkit 0.43

New features:
- Integration with Tk eventloop. (This makes turtle and other Tk stuff work
  again from the REPL.)
- Multi column completion visualisation.


0.16: 2015-06-25
---------------

Upgrade to prompt_toolkit 0.42

Fixes:
- Workaround for Jedi bug. (Signatures of functions with keyword-only arguments.)
- Correctly show traceback on Python 3.
- Better styling of the options sidebar.

New features:
- Exit REPL when input starts with Control-Z.
- Set terminal title.
- Display help text in options sidebar.
- Better colorscheme for Windows.


0.15: 2015-06-20
---------------

Upgrade to prompt_toolkit 0.41

Fixes:
- Correct tokens for IPython prompt.
- Syntax fix in asyncssh_repl.


0.14: 2015-06-16
---------------

Fix:
- Correct dependency for prompt_toolkit.

0.13: 2015-06-15
---------------

New features:
- Upgrade to prompt_toolkit 0.40
- Options sidebar.
- Custom color schemes.
- Syntax highlighting of the output.
- Input validation can now be turned off.
- Determine compiler flags dynamically. (Fixes importing unicode_literals).
- Exit confirmation and dialog.
- Autocompletion of IPython %cat command.
- Correctly render tracebacks on Windows.

0.12: 2015-06-04
---------------

Upgrade to prompt_toolkit 0.39

0.11: 2015-05-31
---------------

New features:
- Upgrade to prompt-toolkit 0.38.
- Upgrade to Jedi 0.9.0
- Fixed default globals for repl (correct __name, __builtins__, etc...)
- Display deprecation warnings in the REPL.
- Added configuration support.
- Added asyncio-ssh-python-embed example.


0.10: 2015-05-11
---------------

Upgrade to prompt-toolkit 0.37.


0.9: 2015-05-07
---------------

Upgrade to prompt-toolkit 0.35.


0.8: 2015-04-26
---------------

Fixed:
- eval() doesn't run using unicode_literals anymore.
- Upgrade to prompt-toolkit 0.34.


0.7: 2015-04-25
---------------

Fixed:
- Upgrade to prompt-toolkit 0.33.

New features:
- Added complete_while_typing option.


0.6: 2015-04-22
---------------

Fixed:
- Upgrade to prompt-toolkit 0.32 which has many new features.

Changes:
- Removal of tab pages + clean up.
- Pressing enter twice will now always automatically execute the input.
- Improved Control-D key binding.
- Hide docstring by default.


0.5: 2015-01-30
---------------

Fixed:
- Tab autocompletion on first line.
- Upgrade to prompt-toolkit 0.31

New features:
- Simple autocompletion for IPython magics.

0.4: 2015-01-26
---------------

Fixed:
- Upgrade to prompt-toolkit 0.30

0.3: 2015-01-25
---------------

Fixed:
- Upgrade to prompt-toolkit 0.28

0.2: 2015-01-25
---------------

Moved ptpython code from prompt-toolkit inside this repository.

0.1: 2014-09-29
---------------

Initial ptpython version. (Source code was still in the
prompt-toolkit repository itself.)