Fix compatibility with Python < 2.7

Review Request #6207 — Created Aug. 7, 2014 and submitted

Information

Review Board
release-1.7.x
e0cef2b...

Reviewers

My change for handling alternate casing in svn:keywords only worked with Python
2.7 (prior versions don't have a `flags` argument to `re.sub()`).

This change makes it so we compile the regex first using re.IGNORECASE, and
then call the substitution method on the regex object.

Testing done: Ran tests under python 2.6

Ran tests under python 2.6

reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/scmtools/svn.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/scmtools/svn.py
    
    
  2. 
      
david
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/scmtools/tests.py
        reviewboard/scmtools/svn.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/scmtools/tests.py
        reviewboard/scmtools/svn.py
    
    
  2. 
      
chipx86
  1. Instead of all this, you can just put (?i) at the very beginning of the regex string, and it'll activate the right flag.

    1. Actually, the best way is for the regex to just be compiled instead of recreated every time. Then, you can pass the flag there.

    2. Well, the actual contents of the regex change based on the contents of the keywords property, so I can't avoid recreating it (we only want to do the substitution if svn also does the substitution). That said, I can use compile and then .sub on the regex object.

  2. 
      
david
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/scmtools/tests.py
        reviewboard/scmtools/svn.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/scmtools/tests.py
        reviewboard/scmtools/svn.py
    
    
  2. 
      
chipx86
  1. 
      
  2. reviewboard/scmtools/svn.py (Diff revision 3)
     
     
     

    Worth compiling it on the class?

    1. Can't be done. See my reply to your previous comment.

    2. Oh oops, you're right. Ship it!

  3. 
      
chipx86
  1. Ship It!

  2. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to release-1.7.x (4d0672b)