Permalink
Browse files

Bump to v0.3

  • Loading branch information...
1 parent 0d89e96 commit 00c8d7e6f5752684d13bfd8f9f869dcb5d1a9286 @hmarr hmarr committed Mar 17, 2010
Showing with 65 additions and 10 deletions.
  1. +2 −2 MANIFEST.in
  2. +9 −1 README.rst
  3. +34 −0 docs/changelog.rst
  4. +2 −0 docs/guide/querying.rst
  5. +6 −4 docs/index.rst
  6. +1 −1 mongoengine/__init__.py
  7. +10 −1 mongoengine/queryset.py
  8. +1 −1 tests/queryset.py
View
@@ -1,6 +1,6 @@
+include MANIFEST.in
include README.rst
include LICENSE
+include AUTHORS
recursive-include docs *
prune docs/_build
-recursive-include tests *
-recursive-exclude * *.pyc *.swp
View
@@ -15,7 +15,7 @@ a `tutorial <http://hmarr.com/mongoengine/tutorial.html>`_, a `user guide
Installation
============
If you have `setuptools <http://peak.telecommunity.com/DevCenter/setuptools>`_
-you can use ``easy_install mongoengine``. Otherwise, you can download the
+you can use ``easy_install -U mongoengine``. Otherwise, you can download the
source from `GitHub <http://github.com/hmarr/mongoengine>`_ and run ``python
setup.py install``.
@@ -82,6 +82,14 @@ Tests
To run the test suite, ensure you are running a local instance of MongoDB on
the standard port, and run ``python setup.py test``.
+Community
+=========
+- `MongoEngine Users mailing list
+ <http://groups.google.com/group/mongoengine-users>`_
+- `MongoEngine Developers mailing list
+ <http://groups.google.com/group/mongoengine-dev>`_
+- `#mongoengine IRC channel <irc://irc.freenode.net/mongoengine>`_
+
Contributing
============
The source is available on `GitHub <http://github.com/hmarr/mongoengine>`_ - to
View
@@ -2,6 +2,40 @@
Changelog
=========
+Changes in v0.3
+===============
+- Added MapReduce support
+- Added ``contains``, ``startswith`` and ``endswith`` query operators (and
+ case-insensitive versions that are prefixed with 'i')
+- Deprecated fields' ``name`` parameter, replaced with ``db_field``
+- Added ``QuerySet.only`` for only retrieving specific fields
+- Added ``QuerySet.in_bulk()`` for bulk querying using ids
+- ``QuerySet``\ s now have a ``rewind()`` method, which is called automatically
+ when the iterator is exhausted, allowing ``QuerySet``\ s to be reused
+- Added ``DictField``
+- Added ``URLField``
+- Added ``DecimalField``
+- Added ``BinaryField``
+- Added ``GenericReferenceField``
+- Added ``get()`` and ``get_or_create()`` methods to ``QuerySet``
+- ``ReferenceField``\ s may now reference the document they are defined on
+ (recursive references) and documents that have not yet been defined
+- ``Document`` objects may now be compared for equality (equal if _ids are
+ equal and documents are of same type)
+- ``QuerySet`` update methods now have an ``upsert`` parameter
+- Added field name substitution for Javascript code (allows the user to use the
+ Python names for fields in JS, which are later substituted for the real field
+ names)
+- ``Q`` objects now support regex querying
+- Fixed bug where referenced documents within lists weren't properly
+ dereferenced
+- ``ReferenceField``\ s may now be queried using their _id
+- Fixed bug where ``EmbeddedDocuments`` couldn't be non-polymorphic
+- ``queryset_manager`` functions now accept two arguments -- the document class
+ as the first and the queryset as the second
+- Fixed bug where ``QuerySet.exec_js`` ignored ``Q`` objects
+- Other minor fixes
+
Changes in v0.2.2
=================
- Fixed bug that prevented indexes from being used on ``ListField``\ s
View
@@ -85,6 +85,8 @@ expressions:
* ``endswith`` -- string field ends with value
* ``iendswith`` -- string field ends with value (case insensitive)
+.. versionadded:: 0.3
+
Limiting and skipping results
=============================
Just as with traditional ORMs, you may limit the number of results returned, or
View
@@ -7,14 +7,16 @@ MongoDB. To install it, simply run
.. code-block:: console
- # easy_install mongoengine
+ # easy_install -U mongoengine
The source is available on `GitHub <http://github.com/hmarr/mongoengine>`_.
-If you are interested in contributing, join the developers' `mailing list
-<http://groups.google.com/group/mongoengine-dev>`_. Some of us also like to
-hang out at `#mongoengine IRC channel <irc://irc.freenode.net/mongoengine>`_.
+To get help with using MongoEngine, use the `MongoEngine Users mailing list
+<http://groups.google.com/group/mongoengine-users>`_ or come chat on the
+`#mongoengine IRC channel <irc://irc.freenode.net/mongoengine>`_.
+If you are interested in contributing, join the developers' `mailing list
+<http://groups.google.com/group/mongoengine-dev>`_.
.. toctree::
:maxdepth: 2
View
@@ -12,7 +12,7 @@
__author__ = 'Harry Marr'
-VERSION = (0, 2, 2)
+VERSION = (0, 3, 0)
def get_version():
version = '%s.%s' % (VERSION[0], VERSION[1])
View
@@ -343,6 +343,8 @@ def get(self, *q_objs, **query):
:class:`~mongoengine.queryset.MultipleObjectsReturned` or
:class:`~mongoengine.queryset.DoesNotExist` exceptions if multiple or
no results are found.
+
+ .. versionadded:: 0.3
"""
self.__call__(*q_objs, **query)
count = self.count()
@@ -360,6 +362,8 @@ def get_or_create(self, *q_objs, **query):
results are found. A new document will be created if the document
doesn't exists; a dictionary of default values for the new document
may be provided as a keyword argument called :attr:`defaults`.
+
+ .. versionadded:: 0.3
"""
defaults = query.get('defaults', {})
if 'defaults' in query:
@@ -406,6 +410,8 @@ def in_bulk(self, object_ids):
:param object_ids: a list or tuple of ``ObjectId``\ s
:rtype: dict of ObjectIds as keys and collection-specific
Document subclasses as values.
+
+ .. versionadded:: 0.3
"""
doc_map = {}
@@ -428,6 +434,8 @@ def next(self):
def rewind(self):
"""Rewind the cursor to its unevaluated state.
+
+ .. versionadded:: 0.3
"""
self._cursor.rewind()
@@ -470,7 +478,6 @@ def map_reduce(self, map_f, reduce_f, finalize_f=None, limit=None,
PyMongo version **>= 1.2**.
.. versionadded:: 0.3
-
"""
from document import MapReduceDocument
@@ -572,6 +579,8 @@ def only(self, *fields):
post = BlogPost.objects(...).only("title")
:param fields: fields to include
+
+ .. versionadded:: 0.3
"""
self._loaded_fields = []
for field in fields:
View
@@ -696,7 +696,7 @@ class BlogPost(Document):
post2.save()
post3.save()
- self.assertEqual(BlogPost._fields['title'].name, '_id')
+ self.assertEqual(BlogPost._fields['title'].db_field, '_id')
self.assertEqual(BlogPost._meta['id_field'], 'title')
map_f = """

0 comments on commit 00c8d7e

Please sign in to comment.