diff --git a/README.rst b/README.rst index 5fa7a86d5..087091dc6 100644 --- a/README.rst +++ b/README.rst @@ -52,12 +52,12 @@ Examples Here's a basic example (for more see the *examples* section of the docs): >>> import pymongo ->>> connection = pymongo.Connection("localhost", 27017) +>>> connection = pymongo.MongoClient("localhost", 27017) >>> db = connection.test >>> db.name u'test' >>> db.my_collection -Collection(Database(Connection('localhost', 27017), u'test'), u'my_collection') +Collection(Database(MongoClient('localhost', 27017), u'test'), u'my_collection') >>> db.my_collection.save({"x": 10}) ObjectId('4aba15ebe23f6b53b0000000') >>> db.my_collection.save({"x": 8}) diff --git a/doc/conf.py b/doc/conf.py index 3de362dee..31dcb7592 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -70,8 +70,8 @@ doctest_path = os.path.abspath('..') doctest_test_doctest_blocks = False doctest_global_setup = """ -from pymongo.connection import Connection -connection = Connection() +from pymongo.mongo_client import MongoClient +connection = MongoClient() connection.drop_database("doctest_test") db = connection.doctest_test """ diff --git a/doc/faq.rst b/doc/faq.rst index 7065f98c8..f3610f674 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -14,22 +14,22 @@ for threaded applications. How does connection pooling work in PyMongo? -------------------------------------------- -Every :class:`~pymongo.connection.Connection` instance has built-in +Every :class:`~pymongo.mongo_client.MongoClient` instance has built-in connection pooling. By default, each thread gets its own socket reserved on its first operation. Those sockets are held until -:meth:`~pymongo.connection.Connection.end_request` is called by that +:meth:`~pymongo.mongo_client.MongoClient.end_request` is called by that thread. -Calling :meth:`~pymongo.connection.Connection.end_request` allows the +Calling :meth:`~pymongo.mongo_client.MongoClient.end_request` allows the socket to be returned to the pool, and to be used by other threads instead of creating a new socket. Judicious use of this method is important for applications with many threads or with long running threads that make few calls to PyMongo operations. -Alternatively, a :class:`~pymongo.connection.Connection` created with +Alternatively, a :class:`~pymongo.mongo_client.MongoClient` created with ``auto_start_request=False`` will share sockets (safely) among all threads. -When :meth:`~pymongo.connection.Connection.disconnect` is called by any thread, +When :meth:`~pymongo.mongo_client.MongoClient.disconnect` is called by any thread, all sockets are closed. PyMongo will create new sockets as needed. Does PyMongo support Python 3? @@ -47,7 +47,7 @@ Currently there is no great way to use PyMongo in conjunction with `Tornado `_ or `Twisted `_. PyMongo provides built-in connection pooling, so some of the benefits of those frameworks can be achieved just by writing multi-threaded code that shares a -:class:`~pymongo.connection.Connection`. +:class:`~pymongo.mongo_client.MongoClient`. There are asynchronous MongoDB drivers in Python: `AsyncMongo for Tornado `_ and `TxMongo for Twisted @@ -62,10 +62,10 @@ avoid blocking the event loop: `MongoDB profiler `_ to watch for slow queries. -- Create a single :class:`~pymongo.connection.Connection` instance for your +- Create a single :class:`~pymongo.mongo_client.MongoClient` instance for your application in your startup code, before starting the IOLoop. -- Configure the :class:`~pymongo.connection.Connection` with a short +- Configure the :class:`~pymongo.mongo_client.MongoClient` with a short ``socketTimeoutMS`` so slow operations result in a :class:`~pymongo.errors.TimeoutError`, rather than blocking the loop and preventing your application from responding to other requests. @@ -145,9 +145,9 @@ UTC. In versions >= 1.7, the driver will automatically convert aware datetimes to UTC before saving them. By default, datetimes retrieved from the server (no matter what version of the driver you're using) will be naive and represent UTC. In newer versions of the driver you -can set the :class:`~pymongo.connection.Connection` `tz_aware` +can set the :class:`~pymongo.mongo_client.MongoClient` `tz_aware` parameter to ``True``, which will cause all -:class:`~datetime.datetime` instances returned from that Connection to +:class:`~datetime.datetime` instances returned from that MongoClient to be aware (UTC). This setting is recommended, as it can force application code to handle timezones properly. diff --git a/doc/python3.rst b/doc/python3.rst index 74ba15959..33976b122 100644 --- a/doc/python3.rst +++ b/doc/python3.rst @@ -30,7 +30,7 @@ read it back. Notice the byte string is decoded back to :class:`bytes`:: [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pymongo - >>> c = pymongo.Connection() + >>> c = pymongo.MongoClient() >>> c.test.bintest.insert({'binary': b'this is a byte string'}) ObjectId('4f9086b1fba5222021000000') >>> c.test.bintest.find_one() @@ -43,7 +43,7 @@ to :class:`~bson.binary.Binary`:: [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pymongo - >>> c = pymongo.Connection() + >>> c = pymongo.MongoClient() >>> c.test.bintest.find_one() {u'binary': Binary('this is a byte string', 0), u'_id': ObjectId('4f9086b1fba5222021000000')} @@ -151,26 +151,25 @@ directory after running ``python setup.py install`` the untranslated modules will be the first thing in your path. Importing pymongo will result in an exception similar to:: - Python 3.1.4 (default, Mar 21 2012, 14:34:01) - [GCC 4.5.3] on linux2 + Python 3.1.5 (default, Jun 2 2012, 12:24:49) + [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pymongo Traceback (most recent call last): File "", line 1, in - File "pymongo/__init__.py", line 104, in - from pymongo.connection import Connection - File "pymongo/connection.py", line 573 - except Exception, why: - ^ - SyntaxError: invalid syntax + File "pymongo/__init__.py", line 58, in + version = get_version_string() + File "pymongo/__init__.py", line 54, in get_version_string + if isinstance(version_tuple[-1], basestring): + NameError: global name 'basestring' is not defined Note the path in the traceback (``pymongo/__init__.py``). Changing out of the source directory takes the untranslated modules out of your path:: $ cd .. $ python - Python 3.1.4 (default, Mar 21 2012, 14:34:01) - [GCC 4.5.3] on linux2 + Python 3.1.5 (default, Jun 2 2012, 12:24:49) + [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pymongo >>> pymongo.__file__ diff --git a/doc/tutorial.rst b/doc/tutorial.rst index 88699a6dd..f6e4327e5 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -29,8 +29,8 @@ can start it like so: $ mongod -Making a Connection -------------------- +Making a Connection with MongoClient +------------------------------------ The first step when working with **PyMongo** is to create a :class:`~pymongo.mongo_client.MongoClient` to the running **mongod** instance. Doing so is easy: