Skip to content

Instantly share code, notes, and snippets.

@lundjordan
Created April 7, 2016 00:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lundjordan/db7dec7885b3d10b6cf9400c3b8268ae to your computer and use it in GitHub Desktop.
Save lundjordan/db7dec7885b3d10b6cf9400c3b8268ae to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def chunkify(things, this_chunk, chunks):\n",
" if this_chunk > chunks:\n",
" raise ChunkingError(\"this_chunk is greater than total chunks\")\n",
" size = len(things) / chunks\n",
" big_chunks = len(things) % chunks\n",
" start = size * (this_chunk-1)\n",
" if big_chunks:\n",
" start += (min(big_chunks, this_chunk)-1)\n",
" if this_chunk <= big_chunks:\n",
" size += 1\n",
" elif this_chunk == big_chunks+1:\n",
" start += 1\n",
" else:\n",
" start += this_chunk-big_chunks-1\n",
"\n",
" end = start + size\n",
" try:\n",
" t = things[start:end]\n",
" return things[start:end]\n",
" except TypeError:\n",
" return islice(things, start, end)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"started with 11 locales and ended with 7 locales after chunkify\n",
"started with 12 locales and ended with 9 locales after chunkify\n",
"started with 13 locales and ended with 10 locales after chunkify\n",
"started with 14 locales and ended with 12 locales after chunkify\n",
"started with 15 locales and ended with 13 locales after chunkify\n",
"started with 16 locales and ended with 15 locales after chunkify\n",
"started with 17 locales and ended with 16 locales after chunkify\n",
"started with 18 locales and ended with 18 locales after chunkify\n",
"started with 19 locales and ended with 19 locales after chunkify\n",
"started with 20 locales and ended with 20 locales after chunkify\n",
"started with 21 locales and ended with 16 locales after chunkify\n",
"started with 22 locales and ended with 18 locales after chunkify\n",
"started with 23 locales and ended with 19 locales after chunkify\n",
"started with 24 locales and ended with 21 locales after chunkify\n",
"started with 25 locales and ended with 23 locales after chunkify\n",
"started with 26 locales and ended with 24 locales after chunkify\n",
"started with 27 locales and ended with 26 locales after chunkify\n",
"started with 28 locales and ended with 28 locales after chunkify\n",
"started with 29 locales and ended with 29 locales after chunkify\n",
"started with 30 locales and ended with 30 locales after chunkify\n",
"started with 31 locales and ended with 25 locales after chunkify\n",
"started with 32 locales and ended with 27 locales after chunkify\n",
"started with 33 locales and ended with 29 locales after chunkify\n",
"started with 34 locales and ended with 31 locales after chunkify\n",
"started with 35 locales and ended with 32 locales after chunkify\n",
"started with 36 locales and ended with 34 locales after chunkify\n",
"started with 37 locales and ended with 36 locales after chunkify\n",
"started with 38 locales and ended with 38 locales after chunkify\n",
"started with 39 locales and ended with 39 locales after chunkify\n",
"started with 40 locales and ended with 40 locales after chunkify\n",
"started with 41 locales and ended with 35 locales after chunkify\n",
"started with 42 locales and ended with 37 locales after chunkify\n",
"started with 43 locales and ended with 39 locales after chunkify\n",
"started with 44 locales and ended with 40 locales after chunkify\n",
"started with 45 locales and ended with 42 locales after chunkify\n",
"started with 46 locales and ended with 44 locales after chunkify\n",
"started with 47 locales and ended with 46 locales after chunkify\n",
"started with 48 locales and ended with 48 locales after chunkify\n",
"started with 49 locales and ended with 49 locales after chunkify\n",
"started with 50 locales and ended with 50 locales after chunkify\n",
"started with 51 locales and ended with 45 locales after chunkify\n",
"started with 52 locales and ended with 47 locales after chunkify\n",
"started with 53 locales and ended with 48 locales after chunkify\n",
"started with 54 locales and ended with 50 locales after chunkify\n",
"started with 55 locales and ended with 52 locales after chunkify\n",
"started with 56 locales and ended with 54 locales after chunkify\n",
"started with 57 locales and ended with 56 locales after chunkify\n",
"started with 58 locales and ended with 58 locales after chunkify\n",
"started with 59 locales and ended with 59 locales after chunkify\n",
"started with 60 locales and ended with 60 locales after chunkify\n",
"started with 61 locales and ended with 55 locales after chunkify\n",
"started with 62 locales and ended with 56 locales after chunkify\n",
"started with 63 locales and ended with 58 locales after chunkify\n",
"started with 64 locales and ended with 60 locales after chunkify\n",
"started with 65 locales and ended with 62 locales after chunkify\n",
"started with 66 locales and ended with 64 locales after chunkify\n",
"started with 67 locales and ended with 66 locales after chunkify\n",
"started with 68 locales and ended with 68 locales after chunkify\n",
"started with 69 locales and ended with 69 locales after chunkify\n",
"started with 70 locales and ended with 70 locales after chunkify\n",
"started with 71 locales and ended with 64 locales after chunkify\n",
"started with 72 locales and ended with 66 locales after chunkify\n",
"started with 73 locales and ended with 68 locales after chunkify\n",
"started with 74 locales and ended with 70 locales after chunkify\n",
"started with 75 locales and ended with 72 locales after chunkify\n",
"started with 76 locales and ended with 74 locales after chunkify\n",
"started with 77 locales and ended with 76 locales after chunkify\n",
"started with 78 locales and ended with 78 locales after chunkify\n",
"started with 79 locales and ended with 79 locales after chunkify\n",
"started with 80 locales and ended with 80 locales after chunkify\n",
"started with 81 locales and ended with 74 locales after chunkify\n",
"started with 82 locales and ended with 76 locales after chunkify\n",
"started with 83 locales and ended with 78 locales after chunkify\n",
"started with 84 locales and ended with 80 locales after chunkify\n",
"started with 85 locales and ended with 82 locales after chunkify\n",
"started with 86 locales and ended with 84 locales after chunkify\n",
"started with 87 locales and ended with 86 locales after chunkify\n",
"started with 88 locales and ended with 88 locales after chunkify\n",
"started with 89 locales and ended with 89 locales after chunkify\n",
"started with 90 locales and ended with 90 locales after chunkify\n",
"started with 91 locales and ended with 84 locales after chunkify\n",
"started with 92 locales and ended with 86 locales after chunkify\n",
"started with 93 locales and ended with 88 locales after chunkify\n",
"started with 94 locales and ended with 90 locales after chunkify\n",
"started with 95 locales and ended with 92 locales after chunkify\n",
"started with 96 locales and ended with 94 locales after chunkify\n",
"started with 97 locales and ended with 96 locales after chunkify\n",
"started with 98 locales and ended with 98 locales after chunkify\n",
"started with 99 locales and ended with 99 locales after chunkify\n"
]
}
],
"source": [
"for initial_total_locales in range(100)[11:100]: # ignore any local total less than total chunks\n",
" post_chunkify_total_locales = 0\n",
" for chunk in range(10):\n",
" chunk += 1 # offset 0 index\n",
" post_chunkify_total_locales += len(chunkify([x for x in range(initial_total_locales)], chunk, 10))\n",
"\n",
" print \"started with {} locales and ended with {} locales after chunkify\".format(initial_total_locales,\n",
" post_chunkify_total_locales)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment