mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Marc-Andre Lemburg <mal@lemburg.com>:
Added emulations of the C APIs in _locale to be used when the _locale module is not enabled. They return the correct values assuming the 'C' locale.
This commit is contained in:
		
							parent
							
								
									d2412a35b1
								
							
						
					
					
						commit
						2348114ba8
					
				
					 1 changed files with 60 additions and 2 deletions
				
			
		| 
						 | 
					@ -13,9 +13,67 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import string
 | 
					import string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### C lib locale APIs
 | 
					### Load C lib locale APIs or use an emulation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from _locale import *
 | 
					try:
 | 
				
			||||||
 | 
					    from _locale import *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					except ImportError:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CHAR_MAX = 127
 | 
				
			||||||
 | 
					    LC_ALL = 6
 | 
				
			||||||
 | 
					    LC_COLLATE = 3
 | 
				
			||||||
 | 
					    LC_CTYPE = 0
 | 
				
			||||||
 | 
					    LC_MESSAGES = 5
 | 
				
			||||||
 | 
					    LC_MONETARY = 4
 | 
				
			||||||
 | 
					    LC_NUMERIC = 1
 | 
				
			||||||
 | 
					    LC_TIME = 2
 | 
				
			||||||
 | 
					    Error = ValueError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def localeconv():
 | 
				
			||||||
 | 
					        """ localeconv() -> dict. 
 | 
				
			||||||
 | 
					            Returns numeric and monetary locale-specific parameters.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        # 'C' locale default values
 | 
				
			||||||
 | 
					        return {'grouping': [127],
 | 
				
			||||||
 | 
					                'currency_symbol': '',
 | 
				
			||||||
 | 
					                'n_sign_posn': 127,
 | 
				
			||||||
 | 
					                'p_cs_precedes': 127, 
 | 
				
			||||||
 | 
					                'n_cs_precedes': 127, 
 | 
				
			||||||
 | 
					                'mon_grouping': [], 
 | 
				
			||||||
 | 
					                'n_sep_by_space': 127,
 | 
				
			||||||
 | 
					                'decimal_point': '.',
 | 
				
			||||||
 | 
					                'negative_sign': '',
 | 
				
			||||||
 | 
					                'positive_sign': '',
 | 
				
			||||||
 | 
					                'p_sep_by_space': 127, 
 | 
				
			||||||
 | 
					                'int_curr_symbol': '',
 | 
				
			||||||
 | 
					                'p_sign_posn': 127, 
 | 
				
			||||||
 | 
					                'thousands_sep': '',
 | 
				
			||||||
 | 
					                'mon_thousands_sep': '', 
 | 
				
			||||||
 | 
					                'frac_digits': 127, 
 | 
				
			||||||
 | 
					                'mon_decimal_point': '',
 | 
				
			||||||
 | 
					                'int_frac_digits': 127}
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def setlocale(category, value=None):
 | 
				
			||||||
 | 
					        """ setlocale(integer,string=None) -> string. 
 | 
				
			||||||
 | 
					            Activates/queries locale processing.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        if value is not None and \
 | 
				
			||||||
 | 
					           value is not 'C':
 | 
				
			||||||
 | 
					            raise Error,'_locale emulation only supports "C" locale'
 | 
				
			||||||
 | 
					        return 'C'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def strcoll(a,b):
 | 
				
			||||||
 | 
					        """ strcoll(string,string) -> int. 
 | 
				
			||||||
 | 
					            Compares two strings according to the locale.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return cmp(a,b)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def strxfrm(s):
 | 
				
			||||||
 | 
					        """ strxfrm(string) -> string. 
 | 
				
			||||||
 | 
					            Returns a string that behaves for cmp locale-aware.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Number formatting APIs
 | 
					### Number formatting APIs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue