Created
June 16, 2015 16:41
-
-
Save qpleple/8a02673c158244eb81a8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 114, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Initialisation d'une collection Mongo avec 100 documents\n", | |
| "\n", | |
| "from pymongo import MongoClient\n", | |
| "\n", | |
| "collection = MongoClient().lerni_dev.iterators\n", | |
| "collection.drop()\n", | |
| "\n", | |
| "for i in range(100):\n", | |
| " collection.insert({'value': i})" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 115, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Fonction pour faire des chunks depuis un itérateur\n", | |
| "# depuis la doc officielle des itérateurs\n", | |
| "# https://docs.python.org/2/library/itertools.html#recipes\n", | |
| "\n", | |
| "from itertools import izip_longest\n", | |
| "\n", | |
| "def grouper(iterable, n):\n", | |
| " args = [iter(iterable)] * n\n", | |
| " return izip_longest(fillvalue=None, *args)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 118, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "('A', 'B', 'C')\n", | |
| "('D', 'E', 'F')\n", | |
| "('G', None, None)\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Exemple simple\n", | |
| "# Note : tous les chunk ont la même taille\n", | |
| "# le dernier est rempli avec des None\n", | |
| "\n", | |
| "for g in grouper('ABCDEFG', 3):\n", | |
| " print g" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 121, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "({u'value': 0}, {u'value': 1}, {u'value': 2}, {u'value': 3}, {u'value': 4}, {u'value': 5}, {u'value': 6}, {u'value': 7}, {u'value': 8}, {u'value': 9}, {u'value': 10}, {u'value': 11}, {u'value': 12}, {u'value': 13}, {u'value': 14}, {u'value': 15}, {u'value': 16}, {u'value': 17}, {u'value': 18}, {u'value': 19}, {u'value': 20}, {u'value': 21}, {u'value': 22}, {u'value': 23}, {u'value': 24}, {u'value': 25}, {u'value': 26}, {u'value': 27}, {u'value': 28}, {u'value': 29}, {u'value': 30}, {u'value': 31}, {u'value': 32}, {u'value': 33}, {u'value': 34}, {u'value': 35}, {u'value': 36}, {u'value': 37}, {u'value': 38}, {u'value': 39})\n", | |
| "\n", | |
| "({u'value': 40}, {u'value': 41}, {u'value': 42}, {u'value': 43}, {u'value': 44}, {u'value': 45}, {u'value': 46}, {u'value': 47}, {u'value': 48}, {u'value': 49}, {u'value': 50}, {u'value': 51}, {u'value': 52}, {u'value': 53}, {u'value': 54}, {u'value': 55}, {u'value': 56}, {u'value': 57}, {u'value': 58}, {u'value': 59}, {u'value': 60}, {u'value': 61}, {u'value': 62}, {u'value': 63}, {u'value': 64}, {u'value': 65}, {u'value': 66}, {u'value': 67}, {u'value': 68}, {u'value': 69}, {u'value': 70}, {u'value': 71}, {u'value': 72}, {u'value': 73}, {u'value': 74}, {u'value': 75}, {u'value': 76}, {u'value': 77}, {u'value': 78}, {u'value': 79})\n", | |
| "\n", | |
| "({u'value': 80}, {u'value': 81}, {u'value': 82}, {u'value': 83}, {u'value': 84}, {u'value': 85}, {u'value': 86}, {u'value': 87}, {u'value': 88}, {u'value': 89}, {u'value': 90}, {u'value': 91}, {u'value': 92}, {u'value': 93}, {u'value': 94}, {u'value': 95}, {u'value': 96}, {u'value': 97}, {u'value': 98}, {u'value': 99}, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Exemple avec mongo\n", | |
| "# Note : ici aussi, le dernier chunk est rempli avec des None\n", | |
| "\n", | |
| "cursor = collection.find({}, {'_id': False})\n", | |
| "\n", | |
| "for c in grouper(cursor, 40):\n", | |
| " print c\n", | |
| " print " | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 2", | |
| "language": "python", | |
| "name": "python2" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 2 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython2", | |
| "version": "2.7.6" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment