Skip to content

Commit e17299a

Browse files
committed
PYTHON-2133 Remove u prefixes from code
1 parent 02abb6d commit e17299a

18 files changed

+109
-131
lines changed

pymongo/bulk.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,6 @@
5454
_COMMANDS = ('insert', 'update', 'delete')
5555

5656

57-
# These string literals are used when we create fake server return
58-
# documents client side. We use unicode literals in python 2.x to
59-
# match the actual return values from the server.
60-
_UOP = u"op"
61-
62-
6357
class _Run(object):
6458
"""Represents a batch of write operations.
6559
"""
@@ -123,7 +117,7 @@ def _merge_command(run, full_result, offset, result):
123117
idx = doc["index"] + offset
124118
replacement["index"] = run.index(idx)
125119
# Add the failed operation to the error document.
126-
replacement[_UOP] = run.ops[idx]
120+
replacement["op"] = run.ops[idx]
127121
full_result["writeErrors"].append(replacement)
128122

129123
wc_error = result.get("writeConcernError")

pymongo/collection.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
UpdateResult)
5353
from pymongo.write_concern import WriteConcern
5454

55-
_UJOIN = u"%s.%s"
5655
_FIND_AND_MODIFY_DOC_FIELDS = {'value': 1}
5756
_HAYSTACK_MSG = (
5857
"geoHaystack indexes are deprecated as of MongoDB 4.4."
@@ -179,7 +178,7 @@ def __init__(self, database, name, create=False, codec_options=None,
179178

180179
self.__database = database
181180
self.__name = name
182-
self.__full_name = _UJOIN % (self.__database.name, self.__name)
181+
self.__full_name = "%s.%s" % (self.__database.name, self.__name)
183182
if create or kwargs or collation:
184183
self.__create(kwargs, collation, session)
185184

@@ -272,7 +271,7 @@ def __getattr__(self, name):
272271
- `name`: the name of the collection to get
273272
"""
274273
if name.startswith('_'):
275-
full_name = _UJOIN % (self.__name, name)
274+
full_name = "%s.%s" % (self.__name, name)
276275
raise AttributeError(
277276
"Collection has no attribute %r. To access the %s"
278277
" collection, use database['%s']." % (
@@ -281,7 +280,7 @@ def __getattr__(self, name):
281280

282281
def __getitem__(self, name):
283282
return Collection(self.__database,
284-
_UJOIN % (self.__name, name),
283+
"%s.%s" % (self.__name, name),
285284
False,
286285
self.codec_options,
287286
self.read_preference,

pymongo/helpers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,11 @@
5353
9001, # SocketException
5454
262, # ExceededTimeLimit
5555
])
56-
_UUNDER = u"_"
5756

5857

5958
def _gen_index_name(keys):
6059
"""Generate an index name from the set of fields it is over."""
61-
return _UUNDER.join(["%s_%s" % item for item in keys])
60+
return "_".join(["%s_%s" % item for item in keys])
6261

6362

6463
def _index_list(key_or_list, direction=None):

pymongo/message.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181
'delete': 'deletes'
8282
}
8383

84-
_UJOIN = u"%s.%s"
85-
8684
_UNICODE_REPLACE_CODEC_OPTIONS = CodecOptions(
8785
unicode_decode_error_handler='replace')
8886

@@ -263,7 +261,7 @@ def __init__(self, flags, db, coll, ntoskip, spec, fields,
263261
self._as_command = None
264262

265263
def namespace(self):
266-
return _UJOIN % (self.db, self.coll)
264+
return "%s.%s" % (self.db, self.coll)
267265

268266
def use_command(self, sock_info, exhaust):
269267
use_find_cmd = False
@@ -346,7 +344,7 @@ def get_message(self, set_slave_ok, sock_info, use_cmd=False):
346344
set_slave_ok, False, self.codec_options,
347345
ctx=sock_info.compression_context)
348346
return request_id, msg, size
349-
ns = _UJOIN % (self.db, "$cmd")
347+
ns = "%s.%s" % (self.db, "$cmd")
350348
ntoreturn = -1 # All DB commands return 1 document
351349
else:
352350
# OP_QUERY treats ntoreturn of -1 and 1 the same, return
@@ -393,7 +391,7 @@ def __init__(self, db, coll, ntoreturn, cursor_id, codec_options,
393391
self._as_command = None
394392

395393
def namespace(self):
396-
return _UJOIN % (self.db, self.coll)
394+
return "%s.%s" % (self.db, self.coll)
397395

398396
def use_command(self, sock_info, exhaust):
399397
sock_info.validate_session(self.client, self.session)
@@ -435,7 +433,7 @@ def get_message(self, dummy0, sock_info, use_cmd=False):
435433
False, False, self.codec_options,
436434
ctx=sock_info.compression_context)
437435
return request_id, msg, size
438-
ns = _UJOIN % (self.db, "$cmd")
436+
ns = "%s.%s" % (self.db, "$cmd")
439437
return query(0, ns, 0, -1, spec, None, self.codec_options, ctx=ctx)
440438

441439
return get_more(ns, self.ntoreturn, self.cursor_id, ctx)

pymongo/saslprep.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def saslprep(data):
2424
if isinstance(data, str):
2525
raise TypeError(
2626
"The stringprep module is not available. Usernames and "
27-
"passwords must be ASCII strings.")
27+
"passwords must be instances of bytes.")
2828
return data
2929
else:
3030
HAVE_STRINGPREP = True
@@ -74,8 +74,8 @@ def saslprep(data, prohibit_unassigned_code_points=True):
7474
# commonly mapped to nothing characters to, well, nothing.
7575
in_table_c12 = stringprep.in_table_c12
7676
in_table_b1 = stringprep.in_table_b1
77-
data = u"".join(
78-
[u"\u0020" if in_table_c12(elt) else elt
77+
data = "".join(
78+
["\u0020" if in_table_c12(elt) else elt
7979
for elt in data if not in_table_b1(elt)])
8080

8181
# RFC3454 section 2, step 2 - Normalize

test/qcheck.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def gen_unichar():
8383

8484

8585
def gen_unicode(gen_length):
86-
return lambda: u"".join([x for x in
86+
return lambda: "".join([x for x in
8787
gen_list(gen_unichar(), gen_length)() if
8888
x not in ".$"])
8989

@@ -116,7 +116,7 @@ def gen_regexp(gen_length):
116116
# TODO our patterns only consist of one letter.
117117
# this is because of a bug in CPython's regex equality testing,
118118
# which I haven't quite tracked down, so I'm just ignoring it...
119-
pattern = lambda: u"".join(gen_list(choose_lifted(u"a"), gen_length)())
119+
pattern = lambda: "".join(gen_list(choose_lifted("a"), gen_length)())
120120

121121
def gen_flags():
122122
flags = 0

test/test_binary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def test_exceptions(self):
100100
if platform.python_implementation() != "Jython":
101101
# Jython's memoryview accepts unicode strings...
102102
# https://bugs.jython.org/issue2784
103-
self.assertRaises(TypeError, Binary, u"hello")
103+
self.assertRaises(TypeError, Binary, "hello")
104104

105105
def test_subtype(self):
106106
one = Binary(b"hello")

test/test_bson.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -132,17 +132,17 @@ def helper(doc):
132132
self.assertEqual(doc, decoder(encoder(doc)))
133133

134134
helper({})
135-
helper({"test": u"hello"})
135+
helper({"test": "hello"})
136136
self.assertTrue(isinstance(decoder(encoder(
137137
{"hello": "world"}))["hello"], str))
138138
helper({"mike": -10120})
139139
helper({"long": Int64(10)})
140140
helper({"really big long": 2147483648})
141-
helper({u"hello": 0.0013109})
141+
helper({"hello": 0.0013109})
142142
helper({"something": True})
143143
helper({"false": False})
144-
helper({"an array": [1, True, 3.8, u"world"]})
145-
helper({"an object": doc_class({"test": u"something"})})
144+
helper({"an array": [1, True, 3.8, "world"]})
145+
helper({"an object": doc_class({"test": "something"})})
146146
helper({"a binary": Binary(b"test", 100)})
147147
helper({"a binary": Binary(b"test", 128)})
148148
helper({"a binary": Binary(b"test", 254)})
@@ -191,7 +191,7 @@ def test_encoding_defaultdict(self):
191191

192192
def test_basic_validation(self):
193193
self.assertRaises(TypeError, is_valid, 100)
194-
self.assertRaises(TypeError, is_valid, u"test")
194+
self.assertRaises(TypeError, is_valid, "test")
195195
self.assertRaises(TypeError, is_valid, 10.4)
196196

197197
self.assertInvalid(b"test")
@@ -277,22 +277,22 @@ def test_random_data_is_not_bson(self):
277277
qcheck.gen_string(qcheck.gen_range(0, 40)))
278278

279279
def test_basic_decode(self):
280-
self.assertEqual({"test": u"hello world"},
280+
self.assertEqual({"test": "hello world"},
281281
decode(b"\x1B\x00\x00\x00\x0E\x74\x65\x73\x74\x00\x0C"
282282
b"\x00\x00\x00\x68\x65\x6C\x6C\x6F\x20\x77\x6F"
283283
b"\x72\x6C\x64\x00\x00"))
284-
self.assertEqual([{"test": u"hello world"}, {}],
284+
self.assertEqual([{"test": "hello world"}, {}],
285285
decode_all(b"\x1B\x00\x00\x00\x0E\x74\x65\x73\x74"
286286
b"\x00\x0C\x00\x00\x00\x68\x65\x6C\x6C"
287287
b"\x6f\x20\x77\x6F\x72\x6C\x64\x00\x00"
288288
b"\x05\x00\x00\x00\x00"))
289-
self.assertEqual([{"test": u"hello world"}, {}],
289+
self.assertEqual([{"test": "hello world"}, {}],
290290
list(decode_iter(
291291
b"\x1B\x00\x00\x00\x0E\x74\x65\x73\x74"
292292
b"\x00\x0C\x00\x00\x00\x68\x65\x6C\x6C"
293293
b"\x6f\x20\x77\x6F\x72\x6C\x64\x00\x00"
294294
b"\x05\x00\x00\x00\x00")))
295-
self.assertEqual([{"test": u"hello world"}, {}],
295+
self.assertEqual([{"test": "hello world"}, {}],
296296
list(decode_file_iter(BytesIO(
297297
b"\x1B\x00\x00\x00\x0E\x74\x65\x73\x74"
298298
b"\x00\x0C\x00\x00\x00\x68\x65\x6C\x6C"
@@ -380,11 +380,11 @@ def test_basic_encode(self):
380380

381381
self.assertEqual(encode({}), BSON(b"\x05\x00\x00\x00\x00"))
382382
self.assertEqual(encode({}), b"\x05\x00\x00\x00\x00")
383-
self.assertEqual(encode({"test": u"hello world"}),
383+
self.assertEqual(encode({"test": "hello world"}),
384384
b"\x1B\x00\x00\x00\x02\x74\x65\x73\x74\x00\x0C\x00"
385385
b"\x00\x00\x68\x65\x6C\x6C\x6F\x20\x77\x6F\x72\x6C"
386386
b"\x64\x00\x00")
387-
self.assertEqual(encode({u"mike": 100}),
387+
self.assertEqual(encode({"mike": 100}),
388388
b"\x0F\x00\x00\x00\x10\x6D\x69\x6B\x65\x00\x64\x00"
389389
b"\x00\x00\x00")
390390
self.assertEqual(encode({"hello": 1.5}),
@@ -433,7 +433,7 @@ def test_basic_encode(self):
433433
b"=\x00\x00\x00\x0f$field\x000\x00\x00\x00\x1f\x00"
434434
b"\x00\x00return function(){ return x; }\x00\t\x00"
435435
b"\x00\x00\x08x\x00\x00\x00\x00")
436-
unicode_empty_scope = Code(u"function(){ return 'héllo';}", {})
436+
unicode_empty_scope = Code("function(){ return 'héllo';}", {})
437437
self.assertEqual(encode({'$field': unicode_empty_scope}),
438438
b"8\x00\x00\x00\x0f$field\x00+\x00\x00\x00\x1e\x00"
439439
b"\x00\x00function(){ return 'h\xc3\xa9llo';}\x00\x05"
@@ -660,10 +660,10 @@ def test_non_string_keys(self):
660660
self.assertRaises(InvalidDocument, encode, {8.9: "test"})
661661

662662
def test_utf8(self):
663-
w = {u"aéあ": u"aéあ"}
663+
w = {"aéあ": "aéあ"}
664664
self.assertEqual(w, decode(encode(w)))
665665

666-
# b'a\xe9' == u"aé".encode("iso-8859-1")
666+
# b'a\xe9' == "aé".encode("iso-8859-1")
667667
iso8859_bytes = b'a\xe9'
668668
y = {"hello": iso8859_bytes}
669669
# Stored as BSON binary subtype 0.
@@ -678,16 +678,16 @@ def test_null_character(self):
678678
# This test doesn't make much sense in Python2
679679
# since {'a': '\x00'} == {'a': u'\x00'}.
680680
# Decoding here actually returns {'a': '\x00'}
681-
doc = {"a": u"\x00"}
681+
doc = {"a": "\x00"}
682682
self.assertEqual(doc, decode(encode(doc)))
683683

684684
self.assertRaises(InvalidDocument, encode, {b"\x00": "a"})
685-
self.assertRaises(InvalidDocument, encode, {u"\x00": "a"})
685+
self.assertRaises(InvalidDocument, encode, {"\x00": "a"})
686686

687687
self.assertRaises(InvalidDocument, encode,
688688
{"a": re.compile(b"ab\x00c")})
689689
self.assertRaises(InvalidDocument, encode,
690-
{"a": re.compile(u"ab\x00c")})
690+
{"a": re.compile("ab\x00c")})
691691

692692
def test_move_id(self):
693693
self.assertEqual(b"\x19\x00\x00\x00\x02_id\x00\x02\x00\x00\x00a\x00"
@@ -996,11 +996,11 @@ def test_unicode_decode_error_handler(self):
996996

997997
dec = decode(invalid_key,
998998
CodecOptions(unicode_decode_error_handler="replace"))
999-
self.assertEqual(dec, {replaced_key: u"foobar"})
999+
self.assertEqual(dec, {replaced_key: "foobar"})
10001000

10011001
dec = decode(invalid_key,
10021002
CodecOptions(unicode_decode_error_handler="ignore"))
1003-
self.assertEqual(dec, {ignored_key: u"foobar"})
1003+
self.assertEqual(dec, {ignored_key: "foobar"})
10041004

10051005
self.assertRaises(InvalidBSON, decode, invalid_key, CodecOptions(
10061006
unicode_decode_error_handler="strict"))
@@ -1014,11 +1014,11 @@ def test_unicode_decode_error_handler(self):
10141014

10151015
dec = decode(invalid_val,
10161016
CodecOptions(unicode_decode_error_handler="replace"))
1017-
self.assertEqual(dec, {u"keystr": replaced_val})
1017+
self.assertEqual(dec, {"keystr": replaced_val})
10181018

10191019
dec = decode(invalid_val,
10201020
CodecOptions(unicode_decode_error_handler="ignore"))
1021-
self.assertEqual(dec, {u"keystr": ignored_val})
1021+
self.assertEqual(dec, {"keystr": ignored_val})
10221022

10231023
self.assertRaises(InvalidBSON, decode, invalid_val, CodecOptions(
10241024
unicode_decode_error_handler="strict"))

test/test_client.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,8 @@ def test_list_databases(self):
712712
self.assertEqual(["name"], list(doc))
713713

714714
def test_list_database_names(self):
715-
self.client.pymongo_test.test.insert_one({"dummy": u"object"})
716-
self.client.pymongo_test_mike.test.insert_one({"dummy": u"object"})
715+
self.client.pymongo_test.test.insert_one({"dummy": "object"})
716+
self.client.pymongo_test_mike.test.insert_one({"dummy": "object"})
717717
cmd_docs = self.client.admin.command("listDatabases")["databases"]
718718
cmd_names = [doc["name"] for doc in cmd_docs]
719719

@@ -726,8 +726,8 @@ def test_drop_database(self):
726726
self.assertRaises(TypeError, self.client.drop_database, 5)
727727
self.assertRaises(TypeError, self.client.drop_database, None)
728728

729-
self.client.pymongo_test.test.insert_one({"dummy": u"object"})
730-
self.client.pymongo_test2.test.insert_one({"dummy": u"object"})
729+
self.client.pymongo_test.test.insert_one({"dummy": "object"})
730+
self.client.pymongo_test2.test.insert_one({"dummy": "object"})
731731
dbs = self.client.list_database_names()
732732
self.assertIn("pymongo_test", dbs)
733733
self.assertIn("pymongo_test2", dbs)
@@ -1134,8 +1134,8 @@ def test_ipv6(self):
11341134
uri += '/?replicaSet=' + client_context.replica_set_name
11351135

11361136
client = rs_or_single_client_noauth(uri)
1137-
client.pymongo_test.test.insert_one({"dummy": u"object"})
1138-
client.pymongo_test_bernie.test.insert_one({"dummy": u"object"})
1137+
client.pymongo_test.test.insert_one({"dummy": "object"})
1138+
client.pymongo_test_bernie.test.insert_one({"dummy": "object"})
11391139

11401140
dbs = client.list_database_names()
11411141
self.assertTrue("pymongo_test" in dbs)

test/test_code.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@ def test_types(self):
2828
self.assertRaises(TypeError, Code, 5)
2929
self.assertRaises(TypeError, Code, None)
3030
self.assertRaises(TypeError, Code, "aoeu", 5)
31-
self.assertRaises(TypeError, Code, u"aoeu", 5)
3231
self.assertTrue(Code("aoeu"))
33-
self.assertTrue(Code(u"aoeu"))
3432
self.assertTrue(Code("aoeu", {}))
35-
self.assertTrue(Code(u"aoeu", {}))
3633

3734
def test_read_only(self):
3835
c = Code("blah")

0 commit comments

Comments
 (0)