{ "info": { "author": "Omer Dagan", "author_email": "mr.omer.dagan@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "===================\nMemorize Flashcards\n===================\n\nMemorize flashcards provides a python module plus admin shell script\nmanage personal \"courses\" in the form of question/answer flashcards.\nThis can help memorize stuff of any kind- learning for exam in history\nclass or making your way to learning new language.\nThe admin tool provides the DB stuff, placing the \"cards\" files in\nplace, hashing the, etc, while the python module provides \"policy\"-\nhow often each card is shown.\n\nA lesson\n=========\nA lesson is one \"practice\"- for example, going over 30 flashcards,\njust before bed time.\nThe python module \"policy.py\" is responsible of choosing the cards for\na lesson.\n\nA lesson should be comprised of, typically, the cards which the user\nknow least well. This is the job of the policy- to determine which\ncards should play in the comming lesson.\n\nIt uses the cards *major* and *minor* numbers to do this.\nA major number of card should tell how far the next lesson for this\ncard is. For example, major of value '1' means the next lesson should\ncontain this card, while major value of '8' means you will exersice\nthis card in 8 lessons.\nThe *minor* value of a card tells how well the user known the card.\nA value of 1 means \"not so well\", while value of 256 means \"this card\nis well hard coded in the users brain\".\nUsing these two values the policy should comprise the next lesson.\n\nA lesson in act will be showing a card, showing the back side of it\n(after pressing some key, or after waiting some amount of time), then\nasking the user wheather he knew the card or not.\nThen according to policy, update the major/minor values.\n\nA classic policy\n================\nSuppose we have a card with major/minor values of 1/2. So in the\ncomming lesson the card will be shown.\nIf the user knew the card, a classic policy would push it back to a\ndistant lesson. How distant? minor+major, meaning 3. This means that\nknowing a card doubles the time untill seeing it again. The minor\nnumber is doubled as well, so the new major/manor values are 3/4.\nIf the user didn't know the card, the policy would want to show\nit next lesson again, and the freequency of showing it should be high,\nso in this case the major/minor number would be 2/1.\n\nPolicies can be added by inheriting from \"Policy\" and implmementing\nfetch_card() and update_card().\t\n\nFor example, the classic policy update card function looks somthing\nlike::\n\n\tdef update_card(self, card, value):\n\t\tif (card in self.cards) or (card in self.used_pile):\n\t\t\traise Exception(\"Illegal state- card must be out of pile and used pile when updated\")\n\t\t#print \"D: card lesson before: {}\".format(card.lesson)\n\t\tif (value == True):\n\t\t\tcard.lesson += card.period\n\t\t\tcard.period *= 2\n\t\telse: # value == False\n\t\t\tcard.lesson += 1\n\t\t\tcard.period = 1\n\t\tself.used_pile.append(card)\n\t\t#print \"D: card lesson after: {}\".format(card.lesson)\n\nA client\n=========\n\nClient is a script that uses the policy module and admin tool to\nactually present the cards and using the policy and admin tool to\nupdate the DB.\n\nA very basic one is currently implemented, which is the\n`memorize-flashcards-konsole-client`.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "memorize_flashcards", "package_url": "https://pypi.org/project/memorize_flashcards/", "platform": "", "project_url": "https://pypi.org/project/memorize_flashcards/", "project_urls": null, "release_url": "https://pypi.org/project/memorize_flashcards/1.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "1.0" }, "last_serial": 5168216, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "96a7e55c0aa2343f6f22bf8d616473df", "sha256": "1769be8a44fdb46c54dd11e4fa88683010e9a3102fed7288f55092aae2c23749" }, "downloads": -1, "filename": "memorize_flashcards-1.0.tar.gz", "has_sig": false, "md5_digest": "96a7e55c0aa2343f6f22bf8d616473df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7583, "upload_time": "2019-04-20T17:12:29", "url": "https://files.pythonhosted.org/packages/10/10/c59dc89eeb7e2b55e970d42513a1fdc32c353a0b3d8f89cbaf5283965f7a/memorize_flashcards-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "96a7e55c0aa2343f6f22bf8d616473df", "sha256": "1769be8a44fdb46c54dd11e4fa88683010e9a3102fed7288f55092aae2c23749" }, "downloads": -1, "filename": "memorize_flashcards-1.0.tar.gz", "has_sig": false, "md5_digest": "96a7e55c0aa2343f6f22bf8d616473df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7583, "upload_time": "2019-04-20T17:12:29", "url": "https://files.pythonhosted.org/packages/10/10/c59dc89eeb7e2b55e970d42513a1fdc32c353a0b3d8f89cbaf5283965f7a/memorize_flashcards-1.0.tar.gz" } ] }