Django

Code

Changeset 4918

Show
Ignore:
Timestamp:
04/04/07 01:34:19 (2 years ago)
Author:
mtredinnick
Message:

Moved smart_unicode and StrAndUnicode? to django.utils.encoding. They are useful
outside of newforms. This is backwards compatible as far as smart_unicode goes
(since newforms.util still imports it). All imports of smart_unicode and
StrAndUnicode? have also been updated.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/localflavor/br/forms.py

    r4908 r4918  
    66from django.newforms import ValidationError 
    77from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 
    8 from django.newforms.util import smart_unicode 
     8from django.utils.encoding import smart_unicode 
    99from django.utils.translation import gettext 
    1010import re 
  • django/trunk/django/contrib/localflavor/fr/forms.py

    r4820 r4918  
    55from django.newforms import ValidationError 
    66from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 
    7 from django.newforms.util import smart_unicode 
     7from django.utils.encoding import smart_unicode 
    88from django.utils.translation import gettext 
    99import re 
  • django/trunk/django/contrib/localflavor/it/forms.py

    r4862 r4918  
    55from django.newforms import ValidationError 
    66from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 
    7 from django.newforms.util import smart_unicode 
    87from django.utils.translation import gettext 
    98import re 
  • django/trunk/django/contrib/localflavor/usa/forms.py

    r4917 r4918  
    55from django.newforms import ValidationError 
    66from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 
    7 from django.newforms.util import smart_unicode 
     7from django.utils.encoding import smart_unicode 
    88from django.utils.translation import gettext 
    99import re 
     
    3333    """ 
    3434    A United States Social Security number. 
    35      
     35 
    3636    Checks the following rules to determine whether the number is valid: 
    37      
     37 
    3838        * Conforms to the XXX-XX-XXXX format. 
    3939        * No group consists entirely of zeroes. 
  • django/trunk/django/newforms/fields.py

    r4889 r4918  
    44 
    55from django.utils.translation import gettext 
    6 from util import ErrorList, ValidationError, smart_unicode 
     6from django.utils.encoding import smart_unicode 
     7from util import ErrorList, ValidationError 
    78from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple 
    89import datetime 
  • django/trunk/django/newforms/forms.py

    r4544 r4918  
    55from django.utils.datastructures import SortedDict, MultiValueDict 
    66from django.utils.html import escape 
     7from django.utils.encoding import StrAndUnicode 
    78from fields import Field 
    89from widgets import TextInput, Textarea, HiddenInput, MultipleHiddenInput 
    9 from util import flatatt, StrAndUnicode, ErrorDict, ErrorList, ValidationError 
     10from util import flatatt, ErrorDict, ErrorList, ValidationError 
    1011import copy 
    1112 
  • django/trunk/django/newforms/util.py

    r4904 r4918  
    22from django.utils.html import escape 
    33from django.utils.functional import Promise, lazy 
     4from django.utils.encoding import smart_unicode 
    45 
    56# Converts a dictionary to a single string with key="value", XML-style with 
    67# a leading space. Assumes keys do not need to be XML-escaped. 
    78flatatt = lambda attrs: u''.join([u' %s="%s"' % (k, escape(v)) for k, v in attrs.items()]) 
    8  
    9 def smart_unicode(s): 
    10     if isinstance(s, Promise): 
    11         # The input is something from gettext_lazy or similar. We don't want to 
    12         # translate it until render time, so defer the conversion. 
    13         return smart_unicode_lazy(s) 
    14     else: 
    15         return smart_unicode_immediate(s) 
    16  
    17 def smart_unicode_immediate(s): 
    18     if not isinstance(s, basestring): 
    19         if hasattr(s, '__unicode__'): 
    20             s = unicode(s) 
    21         else: 
    22             s = unicode(str(s), settings.DEFAULT_CHARSET) 
    23     elif not isinstance(s, unicode): 
    24         s = unicode(s, settings.DEFAULT_CHARSET) 
    25     return s 
    26  
    27 smart_unicode_lazy = lazy(smart_unicode_immediate, unicode) 
    28  
    29 class StrAndUnicode(object): 
    30     """ 
    31     A class whose __str__ returns its __unicode__ as a bytestring 
    32     according to settings.DEFAULT_CHARSET. 
    33  
    34     Useful as a mix-in. 
    35     """ 
    36     def __str__(self): 
    37         return self.__unicode__().encode(settings.DEFAULT_CHARSET) 
    389 
    3910class ErrorDict(dict): 
  • django/trunk/django/newforms/widgets.py

    r4894 r4918  
    1010) 
    1111 
    12 from util import flatatt, StrAndUnicode, smart_unicode 
     12from util import flatatt 
    1313from django.utils.datastructures import MultiValueDict 
    1414from django.utils.html import escape 
    1515from django.utils.translation import gettext 
     16from django.utils.encoding import StrAndUnicode, smart_unicode 
    1617from itertools import chain 
    1718 
  • django/trunk/tests/regressiontests/forms/tests.py

    r4894 r4918  
    32773277 
    32783278# smart_unicode tests 
    3279 >>> from django.newforms.util import smart_unicode 
     3279>>> from django.utils.encoding import smart_unicode 
    32803280>>> class Test: 
    32813281...     def __str__(self):