def find_driver(self): super(Mongo, self).find_driver() #: ensure pymongo version >= 3.0 if 'fake_version' in self.driver_args: version = self.driver_args['fake_version'] else: from pymongo import version if int(version.split('.')[0]) < 3: raise RuntimeError( "pydal requires pymongo version >= 3.0, found '%s'" % version)
from bson.regex import Regex from bson.son import SON from bson.timestamp import Timestamp from collections import Iterable from dateutil.parser import parse #from etc.comparisons import symmetric_recursive_comparison_typestrict, symmetric_recursive_comparison, symmetric_array_comparison_typestrict, symmetric_array_comparison #from etc.excluded_generated_tests import excluded_generated_tests #from etc.simple_data_creator import collection_generator #from etc.sorting_key import sorting_key #from etc.timed import timed_abort, TimeExpired from nose.plugins.attrib import attr from nose.tools import raises from unittest import TestCase from pymongo import MongoClient, errors, version pymongo_version = version.split('.') if int(pymongo_version[0]) > 2: from bson.int64 import Int64 NumberLong = Int64 else: NumberLong = long false = False true = True null = None inf = float('inf') ISODate = parse NumberInt = int try: USER_HOME = os.environ['HOME'] except:
# system modules import time import traceback # Mongo modules import pymongo from pymongo import MongoClient from pymongo.errors import AutoReconnect, ConnectionFailure from pymongo import version as pymongo_version # WMArchive modules from WMArchive.Utils.Utils import Singleton # pymongo driver changed usage of its options here we declare them # based on its version PYMVER = pymongo_version.split('.')[0] if PYMVER == '2': PYMONGO_OPTS = {'exhaust': True} PYMONGO_NOEXHAUST = {'exhaust': False} class MongoOpts(object): """Class which holds MongoClient options""" def __init__(self, **kwds): self.write = kwds.get('w', 1) self.psize = kwds.get('psize', 300) def opts(self): "Return MongoClient options" return dict(w=self.write, max_pool_size=self.psize) elif PYMVER == '3': from pymongo.cursor import CursorType
#!/usr/bin/env python #-*- coding: utf-8 -*- #pylint: disable= """ File : das_pymongo.py Author : Valentin Kuznetsov <vkuznet AT gmail dot com> Description: helper module to deal with pymongo options """ from pymongo import version as pymongo_version # pymongo driver changed usage of its options here we declare them # based on its version PYMVER = pymongo_version.split('.')[0] if PYMVER == '2': PYMONGO_OPTS = {'exhaust': True} PYMONGO_NOEXHAUST = {'exhaust': False} class MongoOpts(object): """Class which holds MongoClient options""" def __init__(self, **kwds): self.write = kwds.get('w', 1) self.psize = kwds.get('psize', 300) def opts(self): "Return MongoClient options" return dict(w=self.write, max_pool_size=self.psize) elif PYMVER == '3': from pymongo.cursor import CursorType PYMONGO_OPTS = {'cursor_type': CursorType.EXHAUST} PYMONGO_NOEXHAUST = {'cursor_type': CursorType.NON_TAILABLE} class MongoOpts(object): """Class which holds MongoClient options"""