{ "info": { "author": "Ju Lin", "author_email": "soasme@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# nummu (\u5357\u7121)\n\nAn animated image maker.\n\nNOTE: this project in WIP and thus interface might change a lot. Be cautious when using in production.\n\n|Image|Script|\n|-----|------|\n|![helloworld](https://github.com/soasme/nummu/raw/master/examples/helloworld.png)|[examples/helloworld.py](examples/helloworld.py)|\n|![line](https://github.com/soasme/nummu/raw/master/examples/line.gif)|[examples/line.py](examples/line.py)|\n|![rect](https://github.com/soasme/nummu/raw/master/examples/rect.gif)|[examples/rect.py](examples/rect.py)|\n|![bubblesort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/bubblesort.png) Bubble Sort
![heapsort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/heapsort.png) Heap Sort
![insertionsort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/insertionsort.png) Insertion Sort
![mergesort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/mergesort.png) Merge Sort
![quicksort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/quicksort.png) Quick Sort
![selectionsort](https://gist.github.com/soasme/e3f1a210cc7e7750d304cb43b6aaad23/raw/d6e5687ce8492bd5865f4d7f38a5ec421c5d4c1b/selectionsort.png) Selection Sort |[examples/sort.py](examples/sort.py)|\n|![image](https://github.com/soasme/nummu/raw/master/examples/ghost.gif)|[examples/image.py](examples/image.py)|\n|![text](https://github.com/soasme/nummu/raw/master/examples/text.gif)|[examples/text.py](examples/text.py)|\n\n\n## Install\n\n```\n$ pip install nummu\n```\n\n## Usage\n\nNummu is simply a framework so you might want to implement a class having these methods: `update(delta)`, `draw(palette)`. None of them are absolutely required.\n\n class HelloWorld:\n\n def __init__(self):\n # Do initial work here\n self.position = 0\n\n def update(self, delta):\n # Do some calculation before draw each frame.\n # The delta is in millisecond unit.\n #\n # Don't forget to raise StopIteration somewhere!\n #\n self.position += delta\n if self.position >= 100:\n raise StopIteration\n\n def draw(self, pallete):\n # Pallete is simply a numpy.zeros instance.\n # Overwrite any pixels as you want.\n #\n pallete[:, self.position, :] = 255\n\nBasic usage:\n\n # import nummu\n from nummu import Nummu\n\n # set file size\n nm = Nummu(100, 100)\n\n # add drawer defined previously\n nm.add(HelloWorld())\n\n # export to gif\n nm.export('helloworld.gif', delay=5)\n\n\nCheck the examples in project repo, and hopefully it might help you!\n\n## Develop\n\n```\n$ poetry develop\n$ poetry run python examples/helloworld.py\n```\n\n## Test\n\nCurrently nummu support running on 3.6, 3.7\n\n```\n$ pyenv install 3.6.5\n$ pyenv install 3.7.0b2\n$ pyenv local 3.6.5 3.7.0b2\n$ export PATH=$(pyenv root)/shims:$PATH\n$ tox\npy36 runtests: commands[0] | poetry develop\npy36 runtests: commands[0] | poetry run pytest\npy37 runtests: commands[0] | poetry develop\npy37 runtests: commands[0] | poetry run pytest\n py36: commands succeeded\n py37: commands succeeded\n congratulations :)\n```\n\n## Credit\n\nThanks Pillow, numpy, numpngw and array2gif! Nummu stands on the shoulder of these giants!\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "Ju Lin", "maintainer_email": "soasme@gmail.com", "name": "nummu", "package_url": "https://pypi.org/project/nummu/", "platform": "", "project_url": "https://pypi.org/project/nummu/", "project_urls": null, "release_url": "https://pypi.org/project/nummu/0.1.9/", "requires_dist": [ "numpngw (==0.0.6)", "array2gif (==1.0.3)", "Pillow (==5.0.0)" ], "requires_python": ">=3.6,<4.0", "summary": "An animated image maker.", "version": "0.1.9" }, "last_serial": 3953120, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "c187d4a90d067addf097b296497b2334", "sha256": "f04fc399bc500c2798f297f8f1f25f748fa7d736fe8f9ab4573d83b31a7108e4" }, "downloads": -1, "filename": "nummu-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c187d4a90d067addf097b296497b2334", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 2487, "upload_time": "2018-05-24T23:09:04", "url": "https://files.pythonhosted.org/packages/ac/9a/68f24684c3e72aec02785270a83c3621220aa9b3056bbf7488d52fe0ec40/nummu-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbc4de21050c69ca9e6d4609d984e457", "sha256": "bb412366b18b1d8753495378526d70cf964deeeaa26e90695f5e62f69cd0c921" }, "downloads": -1, "filename": "nummu-0.1.1.tar.gz", "has_sig": false, "md5_digest": "dbc4de21050c69ca9e6d4609d984e457", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 1249, "upload_time": "2018-05-24T23:09:05", "url": "https://files.pythonhosted.org/packages/b7/22/b5d41568a1490c61e736210223351b413b5008fee7f507326eb2cd095375/nummu-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "45e375690edc29fdd7c583aa3f8dd246", "sha256": "2575715af342360d56b5fe36109fa1b30535dbc8009ea67be77770e1f13702a6" }, "downloads": -1, "filename": "nummu-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "45e375690edc29fdd7c583aa3f8dd246", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 4266, "upload_time": "2018-05-26T23:45:36", "url": "https://files.pythonhosted.org/packages/b1/03/28339f29030db43b796b8155e9c9c3eb1b323696bfbbd95523dca5ed3f33/nummu-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b638380079658a552097c2eff9c4c36", "sha256": "5dbcd206e8a426cf8cbf86ff8c45242a2581b060446c469c5fc2fea2fa48ecb7" }, "downloads": -1, "filename": "nummu-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1b638380079658a552097c2eff9c4c36", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 2550, "upload_time": "2018-05-26T23:45:34", "url": "https://files.pythonhosted.org/packages/2c/bd/89f3074198da2c124bca10ecd7a50ef90c754dda78601f6338689ff9c6e3/nummu-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a663dc2a9800af8d705ab43825addf06", "sha256": "102845dc09e436a1f5dccc6c023dc6e128a308f10612bf3ab4ffee74946f7238" }, "downloads": -1, "filename": "nummu-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a663dc2a9800af8d705ab43825addf06", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 4545, "upload_time": "2018-05-27T00:08:36", "url": "https://files.pythonhosted.org/packages/33/9d/8d94cf61af88a2911afa2bd8fa8ce8097659a2408257f7393c55eca029b7/nummu-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95711a644616d1c7ba405e58233ae15b", "sha256": "2b8c5836ffd7003ebaba8ee6d6c153e919bbc8fb09a234ca2b0981de12111b14" }, "downloads": -1, "filename": "nummu-0.1.3.tar.gz", "has_sig": false, "md5_digest": "95711a644616d1c7ba405e58233ae15b", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6.0.0, < 4.0.0.0", "size": 2663, "upload_time": "2018-05-27T00:08:34", "url": "https://files.pythonhosted.org/packages/6d/53/d37e83452532be0f8682aeccaed337fe37f12aab836d662c5ee5d40b3a10/nummu-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "a1416f40cde022d054db6695c90230b3", "sha256": "5bd27dec75cc3c55749b009954e810775bebcc6346e6ca3a77d1f0dbd8b1a4d0" }, "downloads": -1, "filename": "nummu-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "a1416f40cde022d054db6695c90230b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6365, "upload_time": "2018-05-29T11:03:53", "url": "https://files.pythonhosted.org/packages/b1/6f/c5df7eede44cd885865b1d8d0349aefc2c0e46c0daada2b4a29f02c564e3/nummu-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45fea5c57fb54da1eb53152fb437c281", "sha256": "92ee095d3060deac3d5181be00e47d093af07cf57f105e3622907ad6ef18d1c4" }, "downloads": -1, "filename": "nummu-0.1.4.tar.gz", "has_sig": false, "md5_digest": "45fea5c57fb54da1eb53152fb437c281", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3829, "upload_time": "2018-05-29T11:03:55", "url": "https://files.pythonhosted.org/packages/5b/6d/2334bc8de02241e6615cbcb77fd2b4208a66da61024a7bc2d5c1bf65d9ab/nummu-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "628b41f3d3b925253d9f52474466394a", "sha256": "6cb0f32ac7e906ae152ed384a1628f18a921b9115f67d64eac4fc2fb4924808d" }, "downloads": -1, "filename": "nummu-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "628b41f3d3b925253d9f52474466394a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6978, "upload_time": "2018-06-04T01:56:03", "url": "https://files.pythonhosted.org/packages/3c/5f/7c998d0efb3d22ca76425572f5fae0541d8bfe895440cffe9724d44f3b34/nummu-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d866451c71adb67a26490a24d0f51cbe", "sha256": "43e80221895e6962dbe6c35fb675b42c608ee232530156364645d1ebe96ebd55" }, "downloads": -1, "filename": "nummu-0.1.5.tar.gz", "has_sig": false, "md5_digest": "d866451c71adb67a26490a24d0f51cbe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4238, "upload_time": "2018-06-04T01:56:05", "url": "https://files.pythonhosted.org/packages/ec/22/c7ce30a3475e22e40c9948d6ddb6ad3ea7f6f7a4f9133f5544334c529ca8/nummu-0.1.5.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "0727c4daeb986640cd7191263c6528aa", "sha256": "f0771a8df7eb86cdab48ac86a89beecaf65cf97c48f26fc392acc5fc196f37c3" }, "downloads": -1, "filename": "nummu-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "0727c4daeb986640cd7191263c6528aa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7094, "upload_time": "2018-06-04T02:20:41", "url": "https://files.pythonhosted.org/packages/9b/a8/d8061f9dada6dedbde86a5cce7f074ff6436ccb92b75f1e72ec2e8fbd1a7/nummu-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afe29349e676dcd0fd82cc960316129c", "sha256": "590c1359243de9a242596f54a804cb1d395abddf1b546f9c2d6ade6d25ade770" }, "downloads": -1, "filename": "nummu-0.1.7.tar.gz", "has_sig": false, "md5_digest": "afe29349e676dcd0fd82cc960316129c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4294, "upload_time": "2018-06-04T02:20:43", "url": "https://files.pythonhosted.org/packages/0b/5d/381584d35d89d6b3074b8bf28b5e2ef552547ef5017a4352371fade8721a/nummu-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "96f2996c39c7dc0618d0b75c53bc4dd7", "sha256": "cb0e31bea7546bf1901e9cd4129eafd10493d53b767f1e5d01aa8e49026e1929" }, "downloads": -1, "filename": "nummu-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "96f2996c39c7dc0618d0b75c53bc4dd7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7098, "upload_time": "2018-06-04T02:33:07", "url": "https://files.pythonhosted.org/packages/64/7e/efc48a2253d578f583f2e4a53a6345d43f9513735dae3c8b873ec26da4bd/nummu-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8cc446899569f00376ec309e0e85f242", "sha256": "d62ea83bde4e3ed92483d524413ad0c261ce8751f63d4bc82758250559f798a7" }, "downloads": -1, "filename": "nummu-0.1.8.tar.gz", "has_sig": false, "md5_digest": "8cc446899569f00376ec309e0e85f242", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4308, "upload_time": "2018-06-04T02:33:08", "url": "https://files.pythonhosted.org/packages/2e/c1/4e8ff367ceb43225c0e995b48674a45d65b2da8c667efd4770395e1c3062/nummu-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "2b8186693f3aedbcd4a248a57eeb5d1a", "sha256": "8ffcc6da85b2ade879d945c401f3410f5c167cdffc82ea90b67f78568ca4d94f" }, "downloads": -1, "filename": "nummu-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "2b8186693f3aedbcd4a248a57eeb5d1a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7435, "upload_time": "2018-06-12T08:42:16", "url": "https://files.pythonhosted.org/packages/0b/90/fdfa5adc9121de0c67f0aff156ebbaf65395ee74d0cffe2f3c1a2d890fa7/nummu-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "580e80b7d64036110c8999eedfaabf41", "sha256": "72faf992596a23dda6f32fefd901fe7464e13dfbf3a7bce0eb31ceb98ed774f0" }, "downloads": -1, "filename": "nummu-0.1.9.tar.gz", "has_sig": false, "md5_digest": "580e80b7d64036110c8999eedfaabf41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4383, "upload_time": "2018-06-12T08:42:17", "url": "https://files.pythonhosted.org/packages/d0/e5/ca0ab0a294309da55d7548f7c902e4ee786cfb9f2902634b2deb97a4d57f/nummu-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b8186693f3aedbcd4a248a57eeb5d1a", "sha256": "8ffcc6da85b2ade879d945c401f3410f5c167cdffc82ea90b67f78568ca4d94f" }, "downloads": -1, "filename": "nummu-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "2b8186693f3aedbcd4a248a57eeb5d1a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7435, "upload_time": "2018-06-12T08:42:16", "url": "https://files.pythonhosted.org/packages/0b/90/fdfa5adc9121de0c67f0aff156ebbaf65395ee74d0cffe2f3c1a2d890fa7/nummu-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "580e80b7d64036110c8999eedfaabf41", "sha256": "72faf992596a23dda6f32fefd901fe7464e13dfbf3a7bce0eb31ceb98ed774f0" }, "downloads": -1, "filename": "nummu-0.1.9.tar.gz", "has_sig": false, "md5_digest": "580e80b7d64036110c8999eedfaabf41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4383, "upload_time": "2018-06-12T08:42:17", "url": "https://files.pythonhosted.org/packages/d0/e5/ca0ab0a294309da55d7548f7c902e4ee786cfb9f2902634b2deb97a4d57f/nummu-0.1.9.tar.gz" } ] }