mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Added bytes and b'' as aliases for str and ''
This commit is contained in:
		
							parent
							
								
									a9e073d100
								
							
						
					
					
						commit
						288e89acfc
					
				
					 6 changed files with 43 additions and 4 deletions
				
			
		|  | @ -106,8 +106,19 @@ def test_capwords(self): | |||
|         self.assertEqual(string.capwords('ABC-DEF-GHI', '-'), 'Abc-Def-Ghi') | ||||
|         self.assertEqual(string.capwords('ABC-def DEF-ghi GHI'), 'Abc-def Def-ghi Ghi') | ||||
| 
 | ||||
| class BytesAliasTest(unittest.TestCase): | ||||
| 
 | ||||
|     def test_builtin(self): | ||||
|         self.assert_(str is bytes) | ||||
| 
 | ||||
|     def test_syntax(self): | ||||
|         self.assertEqual(b"spam", "spam") | ||||
|         self.assertEqual(br"egg\foo", "egg\\foo") | ||||
|         self.assert_(type(b""), str) | ||||
|         self.assert_(type(br""), str) | ||||
| 
 | ||||
| def test_main(): | ||||
|     test_support.run_unittest(StringTest, ModuleTest) | ||||
|     test_support.run_unittest(StringTest, ModuleTest, BytesAliasTest) | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     test_main() | ||||
|  |  | |||
|  | @ -109,21 +109,34 @@ def maybe(*choices): return group(*choices) + '?' | |||
|             "uR'''": single3prog, 'uR"""': double3prog, | ||||
|             "Ur'''": single3prog, 'Ur"""': double3prog, | ||||
|             "UR'''": single3prog, 'UR"""': double3prog, | ||||
|             'r': None, 'R': None, 'u': None, 'U': None} | ||||
|             "b'''": single3prog, 'b"""': double3prog, | ||||
|             "br'''": single3prog, 'br"""': double3prog, | ||||
|             "B'''": single3prog, 'B"""': double3prog, | ||||
|             "bR'''": single3prog, 'bR"""': double3prog, | ||||
|             "Br'''": single3prog, 'Br"""': double3prog, | ||||
|             "BR'''": single3prog, 'BR"""': double3prog, | ||||
|             'r': None, 'R': None, 'u': None, 'U': None, | ||||
|             'b': None, 'B': None} | ||||
| 
 | ||||
| triple_quoted = {} | ||||
| for t in ("'''", '"""', | ||||
|           "r'''", 'r"""', "R'''", 'R"""', | ||||
|           "u'''", 'u"""', "U'''", 'U"""', | ||||
|           "ur'''", 'ur"""', "Ur'''", 'Ur"""', | ||||
|           "uR'''", 'uR"""', "UR'''", 'UR"""'): | ||||
|           "uR'''", 'uR"""', "UR'''", 'UR"""', | ||||
|           "b'''", 'b"""', "B'''", 'B"""', | ||||
|           "br'''", 'br"""', "Br'''", 'Br"""', | ||||
|           "bR'''", 'bR"""', "BR'''", 'BR"""'): | ||||
|     triple_quoted[t] = t | ||||
| single_quoted = {} | ||||
| for t in ("'", '"', | ||||
|           "r'", 'r"', "R'", 'R"', | ||||
|           "u'", 'u"', "U'", 'U"', | ||||
|           "ur'", 'ur"', "Ur'", 'Ur"', | ||||
|           "uR'", 'uR"', "UR'", 'UR"' ): | ||||
|           "uR'", 'uR"', "UR'", 'UR"', | ||||
|           "b'", 'b"', "B'", 'B"', | ||||
|           "br'", 'br"', "Br'", 'Br"', | ||||
|           "bR'", 'bR"', "BR'", 'BR"' ): | ||||
|     single_quoted[t] = t | ||||
| 
 | ||||
| tabsize = 8 | ||||
|  |  | |||
|  | @ -12,6 +12,9 @@ What's New in Python 2.6 alpha 1? | |||
| Core and builtins | ||||
| ----------------- | ||||
| 
 | ||||
| - Issue #1865: Bytes as an alias for str and b"" as an alias "" were | ||||
|   added. | ||||
| 
 | ||||
| - sys.float_info / PyFloat_GetInfo: The floating point information | ||||
|   object was converted from a dict to a specialized structseq object. | ||||
| 
 | ||||
|  |  | |||
|  | @ -1263,6 +1263,14 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) | |||
| 	if (isalpha(c) || c == '_') { | ||||
| 		/* Process r"", u"" and ur"" */ | ||||
| 		switch (c) { | ||||
| 		case 'b': | ||||
| 		case 'B': | ||||
| 			c = tok_nextc(tok); | ||||
| 			if (c == 'r' || c == 'R') | ||||
| 				c = tok_nextc(tok); | ||||
| 			if (c == '"' || c == '\'') | ||||
| 				goto letter_quote; | ||||
| 			break; | ||||
| 		case 'r': | ||||
| 		case 'R': | ||||
| 			c = tok_nextc(tok); | ||||
|  |  | |||
|  | @ -3238,6 +3238,9 @@ parsestr(const char *s, const char *encoding) | |||
|                         quote = *++s; | ||||
|                         unicode = 1; | ||||
|                 } | ||||
|                 if (quote == 'b' || quote == 'B') { | ||||
|                         quote = *++s; | ||||
|                 } | ||||
|                 if (quote == 'r' || quote == 'R') { | ||||
|                         quote = *++s; | ||||
|                         rawmode = 1; | ||||
|  |  | |||
|  | @ -2446,6 +2446,7 @@ _PyBuiltin_Init(void) | |||
| 	SETBUILTIN("True",		Py_True); | ||||
| 	SETBUILTIN("basestring",	&PyBaseString_Type); | ||||
| 	SETBUILTIN("bool",		&PyBool_Type); | ||||
| 	SETBUILTIN("bytes",		&PyString_Type); | ||||
| 	SETBUILTIN("buffer",		&PyBuffer_Type); | ||||
| 	SETBUILTIN("classmethod",	&PyClassMethod_Type); | ||||
| #ifndef WITHOUT_COMPLEX | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Christian Heimes
						Christian Heimes