Add lazy-lookup for static files and help for static packaging failures.

Review Request #8418 — Created Sept. 19, 2016 and submitted

Information

Djblets
release-0.10.x
93626fd...

Reviewers

We had a regression when packaging Review Board extensions that was
traced to the use of static() in a class definition. This ended up
initializing some static media support before the extension packaging
code could set some state.

There's now some helpful output for this type of failure that gives the
caller some info on what may have gone wrong and how to remedy it. It
includes a reference to a new method, static_lazy().

static_lazy() works like static(), but lazily evaluates when needed,
instead of immediately. This is safe to use in class definitions, global
variables, etc., and helps prevent the kind of regression we hit.

Tested the failure case and saw the more useful error output.

Switched code to use static_lazy(), and the problem went away.

Description From Last Updated

Oops, too quick. I think this should be six.text_type instead of unicode.

daviddavid
chipx86
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        djblets/extensions/staticfiles.py
        djblets/urls/staticfiles.py
    
    Ignored Files:
        docs/djblets/coderef/index.rst
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        djblets/extensions/staticfiles.py
        djblets/urls/staticfiles.py
    
    Ignored Files:
        docs/djblets/coderef/index.rst
    
    
  2. 
      
david
  1. Ship It!
  2. 
      
david
  1. 
      
  2. djblets/urls/staticfiles.py (Diff revision 2)
     
     
    Show all issues

    Oops, too quick. I think this should be six.text_type instead of unicode.

  3. 
      
chipx86
reviewbot
  1. Tool: PEP8 Style Checker
    Processed Files:
        djblets/extensions/staticfiles.py
        djblets/urls/staticfiles.py
    
    Ignored Files:
        docs/djblets/coderef/index.rst
    
    
    
    Tool: Pyflakes
    Processed Files:
        djblets/extensions/staticfiles.py
        djblets/urls/staticfiles.py
    
    Ignored Files:
        docs/djblets/coderef/index.rst
    
    
  2. 
      
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-0.9.x (465b7ad)