mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #14002 -- Updated filesize filter to support terabyte and petabyte file sizes. Thanks to Aaron T. Myers for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13584 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		
							
								
								
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -344,6 +344,7 @@ answer newbie questions, and generally made Django that much better: | ||||
|     James Murty | ||||
|     msundstr | ||||
|     Robert Myers <myer0052@gmail.com> | ||||
|     Aaron T. Myers <atmyers@gmail.com> | ||||
|     Alexander Myodov <alex@myodov.com> | ||||
|     Nebojša Dorđević | ||||
|     Doug Napoleone <doug@dougma.com> | ||||
|   | ||||
| @@ -807,13 +807,19 @@ def filesizeformat(bytes): | ||||
|     except (TypeError,ValueError,UnicodeDecodeError): | ||||
|         return u"0 bytes" | ||||
|  | ||||
|     if bytes < 1024: | ||||
|     BYTE_UNITS = ( | ||||
|         ('KB', 1024), | ||||
|         ('MB', 1024 * 1024), | ||||
|         ('GB', 1024 * 1024 * 1024), | ||||
|         ('TB', 1024 * 1024 * 1024 * 1024), | ||||
|         ('PB', 1024 * 1024 * 1024 * 1024 * 1024) | ||||
|     ) | ||||
|  | ||||
|     if bytes < BYTE_UNITS[0][1]: | ||||
|         return ungettext("%(size)d byte", "%(size)d bytes", bytes) % {'size': bytes} | ||||
|     if bytes < 1024 * 1024: | ||||
|         return ugettext("%.1f KB") % (bytes / 1024) | ||||
|     if bytes < 1024 * 1024 * 1024: | ||||
|         return ugettext("%.1f MB") % (bytes / (1024 * 1024)) | ||||
|     return ugettext("%.1f GB") % (bytes / (1024 * 1024 * 1024)) | ||||
|     for index, (unit, unit_size) in enumerate(BYTE_UNITS): | ||||
|         if bytes < unit_size * 1024 or index == len(BYTE_UNITS) - 1: | ||||
|             return ugettext("%.1f %s") % (bytes / unit_size, unit) | ||||
| filesizeformat.is_safe = True | ||||
|  | ||||
| def pluralize(value, arg=u's'): | ||||
|   | ||||
| @@ -476,6 +476,15 @@ u'1024.0 MB' | ||||
| >>> filesizeformat(1024*1024*1024) | ||||
| u'1.0 GB' | ||||
|  | ||||
| >>> filesizeformat(1024*1024*1024*1024) | ||||
| u'1.0 TB' | ||||
|  | ||||
| >>> filesizeformat(1024*1024*1024*1024*1024) | ||||
| u'1.0 PB' | ||||
|  | ||||
| >>> filesizeformat(1024*1024*1024*1024*1024*2000) | ||||
| u'2000.0 PB' | ||||
|  | ||||
| >>> filesizeformat(complex(1,-1)) | ||||
| u'0 bytes' | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user