Skip to content

Tools/demo/redemo.py broken #74907

Closed
Closed

Description

@csarn
mannequin
BPO 30722
Nosy @ezio-melotti, @berkerpeksag, @serhiy-storchaka, @mlouielu, @csarn
PRs
  • bpo-30722: adjust to new RegexFlags enum, remove LOCALE checkbox #2311
  • [3.6] bpo-30722: Make redemo work with Python 3.6+ (GH-2311) #4090
  • bpo-30722: Fix NEWS entries #8501
  • [3.7] bpo-30722: Fix NEWS entries (GH-8501) #8503
  • [3.6] bpo-30722: Fix NEWS entry (GH-8501) #8504
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2018-07-27.16:18:23.283>
    created_at = <Date 2017-06-21.08:57:43.914>
    labels = ['type-bug', '3.7']
    title = 'Tools/demo/redemo.py broken'
    updated_at = <Date 2018-07-27.16:18:23.282>
    user = 'https://github.com/csarn'

    bugs.python.org fields:

    activity = <Date 2018-07-27.16:18:23.282>
    actor = 'berker.peksag'
    assignee = 'none'
    closed = True
    closed_date = <Date 2018-07-27.16:18:23.283>
    closer = 'berker.peksag'
    components = ['Demos and Tools']
    creation = <Date 2017-06-21.08:57:43.914>
    creator = 'Christoph Sarnowski2'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 30722
    keywords = ['patch']
    message_count = 13.0
    messages = ['296530', '296532', '296533', '296535', '296543', '296547', '304825', '304827', '304828', '309024', '322503', '322504', '322506']
    nosy_count = 6.0
    nosy_names = ['ezio.melotti', 'mrabarnett', 'berker.peksag', 'serhiy.storchaka', 'louielu', 'Christoph Sarnowski2']
    pr_nums = ['2311', '4090', '8501', '8503', '8504']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue30722'
    versions = ['Python 3.6', 'Python 3.7']

    Activity

    1. csarn commented on Jun 21, 2017

      csarnmannequin
      MannequinAuthor

      In Python 3.6, the flags in the "re" module became members of an enum.IntFlag, whereas before they were just ints.

      This breaks the regex demo in Tools/demo/redemo.py.

      To fix this, in line 86 of redemo.py,

          getattr(re, name)

      has to be replaced by

      getattr(re, name).value
      

      Also, the checkbox for "LOCALE" can be removed (or fixed), as re.LOCALE is invalid for str patterns.

    2. mlouielu commented on Jun 21, 2017

      mlouielumannequin
      Mannequin

      Hi Christoph, chould you provide a small example that breaks the regex demo? thanks!

    3. mlouielu commented on Jun 21, 2017

      mlouielumannequin
      Mannequin

      Also, would you like to contribute with PR on GitHub?

    4. csarn commented on Jun 21, 2017

      csarnmannequin
      MannequinAuthor

      Hi, sorry for forgetting steps to reproduce the bug.

      Easiest way to see it is to start redemo.py from a console (important on windows), so you can see stdout/stderr.
      Then just a click on any of those flag checkboxes leads to an exception backtrace printed on the console.

      And to demonstrate that the flag checkbox does not work, enter ".*" (without quotes) as the pattern, and any multiline string as the string to search, and activate the checkbox "MULTILINE".
      Correct behaviour: no exception, all lines of the string get highlighted as the first match
      Erroneous (actual) behaviour: An exception traceback gets printed: '_tkinter.TclError: expected integer but got "RegexFlag.MULTILINE"'
      and only the first line is highlighted as first match, demonstrating that the MULTILINE flag is in fact not active.

      When it comes to a pull request, I could do that for the change that I proposed. But regarding the "LOCALE" flag, the better solution (in my opinion) would be to make it work instead of just removing it, but that is a more elaborate change that I am not able to spend time on.

      What would you suggest?
      a) I provide a pull request, leaving "LOCALE" flag behaviour broken
      b) I provide a pull request, removing "LOCALE" flag (to be introduced again when someone is willing to fix it)

    5. serhiy-storchaka commented on Jun 21, 2017

      @serhiy-storchaka
      Member

      I think ideally it would be nice to provide a switch between Unicode and bytes and disable the LOCALE flag in the Unicode mode. But this is too complex task. I think it is better to remove LOCALE.

    6. csarn commented on Jun 21, 2017

      csarnmannequin
      MannequinAuthor

      By the way, I confused the flags, in my error-reproduction steps, instead of the re.MULTILINE flag, it is the re.DOTALL flag that should lead to all lines being matched by ".*".

    7. berkerpeksag commented on Oct 23, 2017

      @berkerpeksag
      Member

      New changeset 62adc55 by Berker Peksag (Christoph Sarnowski) in branch 'master':
      bpo-30722: Make redemo work with Python 3.6+ (GH-2311)
      62adc55

    8. berkerpeksag commented on Oct 23, 2017

      @berkerpeksag
      Member

      New changeset a5f9d24 by Berker Peksag (Miss Islington (bot)) in branch '3.6':
      bpo-30722: Make redemo work with Python 3.6+ (GH-2311)
      a5f9d24

    9. berkerpeksag commented on Oct 23, 2017

      @berkerpeksag
      Member

      Thank you, Christoph. I wasn't aware of Tools/demo/redemo.py and I must say it was fun to play with while reviewing PR 2311.

    10. serhiy-storchaka commented on Dec 25, 2017

      @serhiy-storchaka
      Member

      The news message is verbose but looks misleading to me. There is nothing invalid with usages like getattr(re, 'DOTALL'). It is the same as re.DOTALL, and using enums haven't changed this.

    11. berkerpeksag commented on Jul 27, 2018

      @berkerpeksag
      Member

      New changeset 612dbef by Berker Peksag in branch 'master':
      bpo-30722: Fix NEWS entries (GH-8501)
      612dbef

    12. berkerpeksag commented on Jul 27, 2018

      @berkerpeksag
      Member

      New changeset 7cbde0e by Berker Peksag (Miss Islington (bot)) in branch '3.7':
      bpo-30722: Fix NEWS entries (GH-8501)
      7cbde0e

    13. berkerpeksag commented on Jul 27, 2018

      @berkerpeksag
      Member

      New changeset 9d85856 by Berker Peksag in branch '3.6':
      bpo-30722: Fix NEWS entry (GH-8501)
      9d85856

    14. transferred this issue fromon Apr 10, 2022
    15. Blastus commented on May 30, 2025

      @Blastus

      The program redemo.py just recently received a fairly thorough code review here:

      What can be done to ReDemo to bring it up-to-date with modern Python?

    16. ezio-melotti commented on May 31, 2025

      @ezio-melotti
      Member

      A comment on a closed (and somewhat unrelated) issue is unlikely to receive much feedback.
      If you want to improve redemo.py, I would suggest creating a new issue and then address the problems with one (or more) PR(s) instead.

      Also note that "refactoring" issues -- especially on a demo like redemo.py -- might be rejected, so you might also want to post on https://discuss.python.org/ for feedback before creating issues/PRs.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.7 (EOL)end of lifetype-bugAn unexpected behavior, bug, or error

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions