{ "info": { "author": "Chris L. Barnes", "author_email": "barnesc@janelia.hhmi.org", "bugtrack_url": null, "classifiers": [], "description": "# FrAn: FRame ANnotation\n\nWatch a video in multipage TIFF format and label frames where events start or end.\n\nWritten for python 3.7.\n\n## Installation\n\n```bash\npip install fran\n```\n\nIf you think you may already have a version of `fran` installed, add the `--upgrade` option.\n\n## Usage\n\n### fran\n\n```_fran\nusage: fran [-h] [--write_config WRITE_CONFIG] [--outfile OUTFILE]\n [--config CONFIG] [--fps FPS] [--cache CACHE] [--threads THREADS]\n [--keys KEYS] [--flipx] [--flipy] [--rotate ROTATE] [--version]\n [--verbose] [--logfile LOGFILE]\n [infile]\n\nLog video (multipage TIFF) frames in which an event starts or ends\n\npositional arguments:\n infile Path to multipage TIFF file to read. If no path is given, a file dialog will open.\n\noptional arguments:\n -h, --help show this help message and exit\n --write_config WRITE_CONFIG, -w WRITE_CONFIG\n Write back the complete config to a file at this path, then exit\n --outfile OUTFILE, -o OUTFILE\n Path to CSV for loading/saving. If no path is selected when you save, a file dialog will open.\n --config CONFIG, -c CONFIG\n Path to TOML file for config\n --fps FPS, -f FPS Maximum frames per second; default 30\n --cache CACHE, -n CACHE\n Number of frames to cache (increase if reading over a network and you have lots of RAM); default 500\n --threads THREADS, -t THREADS\n number of threads to use for reading file (increase if reading over a network); default 3\n --keys KEYS, -k KEYS Optional mappings from event name to key, in the format \"w=forward,a=left,s=back,d=right\". These are additive with those defined in the config\n --flipx, -x Flip image in x\n --flipy, -y Flip image in y\n --rotate ROTATE, -r ROTATE\n Rotate image (degrees counterclockwise; applied after flipping)\n --version Print the version and then exit\n --verbose, -v Increase verbosity of logging (can be repeated). One for DEBUG, two for FRAME.\n --logfile LOGFILE, -l LOGFILE\n File to save log to\n\nPlayback\n========\nLEFT and RIGHT arrows play the video in that direction at the configured FPS.\nHold SHIFT + direction to play at 10x speed.\nPress COMMA or PERIOD to step one frame left or right, respectively.\n\nContrast\n========\nContrast is controlled by rescaling the pixel intensities between a min and max threshold.\nHold UP/DOWN to change the lower threshold (increasing it blacks out dim pixels).\nHold SHIFT + UP/DOWN to change the upper threshold (decreasing it whites out bright pixels).\n\nEvents\n======\nLETTER keys mark the start of an event associated with that letter.\nSHIFT + LETTER marks the end of the event.\nEvents can overlap, but events of the same type cannot contain each other or start on the same frame.\n\nStatus\n======\nSPACE shows in-progress events.\nRETURN shows the current result table in the console.\nBACKSPACE shows the current frame number and contrast thresholds in the interval [0, 1].\n\nPrompts\n=======\nDELETE shows a prompt asking which in-progress event to delete, then a confirmation.\nSHIFT + delete shows a prompt asking which keypress on this frame to delete.\nCTRL + n shows a prompt asking which in-progress event whose note to edit (if there is more than one), then the new value.\n\nPrompts may appear in unexpected places on your screen.\n\nDebug\n=====\nCTRL + d to dump the event log for debugging\n\nOther\n=====\nCTRL + s to save\nCTRL + z to undo\nCTRL + r to redo\nCTRL + h to show this message\n```\n\n#### Examples\n\n```bash\n# run with default settings: a file dialog will ask where your TIFF file is and where to save the CSV\nfran\n\n# run with 5 image-reading threads (more than the default 3)\n# and a 1000-frame cache (more than the default 500)\nfran --threads 5 --cache 1000\n\n# copy the default config to a file, which you can edit\nfran --write_config my_config.toml\n\n# run with a given config file\nfran --config my_config.toml\n\n# give the input and output files to avoid file dialogs\nfran my_image_file.tif --outfile my_results.csv\n\n# flip the image in x and then rotate counterclockwise by 45 degrees\nfran my_image_file.tif --flipx --rotate 45\n\n```\n\nTo add event names (with mappings from their associate keys) to your config, the `[keys]` section should look like\n\n```toml\n[keys]\nw = \"forward\"\na = \"left\"\ns = \"back\"\nd = \"right\"\n\n```\n\nSee [the default config file](fran/config.toml) for the defaults.\n\n#### Output\n\nIf `--outfile` is given, saving writes to the file in CSV format.\nOtherwise, it writes to stdout (all other messages are on stderr).\n\nIf given output file already exists, events will be loaded from it.\nThis is not possible if the output file is selected in the GUI.\n\ne.g.\n\n```csv\nstart,stop,key,event,note\n120,500,f,forward,\"this event is a nice event\"\n505,530,b,backward,\n650,None,r,right,\"this doesn't finish in the video\"\n```\n\n#### Example workflow\n\n1. Install fran (`pip install fran`)\n2. Write a basic config file to your working directory (`fran --write_config my_project/project_config.toml`)\n3. Edit that config file as you like, with the image transform, event names and so on\n4. Start annotating! `fran my_project/my_video.tiff --config my_project/project_config.toml --outfile my_project/results.csv`\n\n### fran-rename\n\nA utility to rename events in an existing results file.\n\n```_fran_rename\nusage: fran-rename [-h] [--config CONFIG] [--keys KEYS] [--version] [--print]\n results\n\nRename all of the events in a given results file, with a key mapping specified\nin a config TOML and/or command line argument.\n\npositional arguments:\n results Path to CSV to update.\n\noptional arguments:\n -h, --help show this help message and exit\n --config CONFIG, -c CONFIG\n Path to TOML file for config\n --keys KEYS, -k KEYS Optional mappings from event name to key, in the\n format \"w=forward,a=left,s=back,d=right\". These are\n additive with those defined in the config\n --version Print the version and then exit\n --print, -p Print results to stdout, instead of saving file back\n```\n\n## N.B.\n\n[MacOS disagrees with pygame](https://bitbucket.org/pygame/pygame/issues/203/window-does-not-get-focus-on-os-x-with)\n if installed in a virtual environment: \n use the system python (if 3.7+ is available) or one installed with homebrew.\n (if 3.7+ is available) or one installed with homebrew.\n\n\n## Contributing\n\n```sh\n# Install development dependencies\npip install -r requirements.txt\n# Install package in editable mode\npip install -e .\n# Install pre-commit hooks for lint/formatting\npre-commit install\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/clbarnes/frame_annotator", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "fran", "package_url": "https://pypi.org/project/fran/", "platform": "", "project_url": "https://pypi.org/project/fran/", "project_urls": { "Homepage": "https://github.com/clbarnes/frame_annotator" }, "release_url": "https://pypi.org/project/fran/0.8.6/", "requires_dist": [ "imageio (>=2.5.0)", "pygame (>=1.9.5)", "pandas (>=0.24.2)", "numpy (>=1.16.2)", "scikit-image (>=0.15.0)", "toml (>=0.10.0)" ], "requires_python": ">=3.7", "summary": "Annotate frames of a multiTIFF video", "version": "0.8.6" }, "last_serial": 5368417, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0c983d5810dc69a42d15e8df020e5db9", "sha256": "091e06df0a5b844b44d9c23c8e7b93f76e63ae70a092f372d304b5bffe5b25f6" }, "downloads": -1, "filename": "fran-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0c983d5810dc69a42d15e8df020e5db9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 14152, "upload_time": "2019-04-25T17:10:45", "url": "https://files.pythonhosted.org/packages/fb/45/77484f4b63d3bd87ee859519a5264d368508284a67947b96508903916301/fran-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7ba57a7d9d2daf6e24fa0f440b2c08e", "sha256": "61818b03c1773970414bc565c2b41529a21ca641ea05376fcedd99a201f14e59" }, "downloads": -1, "filename": "fran-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d7ba57a7d9d2daf6e24fa0f440b2c08e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 12518, "upload_time": "2019-04-25T17:10:56", "url": "https://files.pythonhosted.org/packages/db/46/803e0deb68ee3ecf890b00adc803f8a2f1f93e7724f7842b06b432f8f8c4/fran-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e027b5834b4689f6df54a1ca691b7963", "sha256": "57791badde350a074f37ba085129be3e46cd6cdf213c483593966aaf67114c3a" }, "downloads": -1, "filename": "fran-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e027b5834b4689f6df54a1ca691b7963", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15890, "upload_time": "2019-04-29T20:29:48", "url": "https://files.pythonhosted.org/packages/c3/08/4cb848ce25089659116407680bd3c83336dfc82bc590f0c2b860fc3bb680/fran-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec9897150332aa518231e9cbaa969dcd", "sha256": "99a484bdc793971d54cb0834da5813cb3fd7d5678dec3926f4df0f42857d05fe" }, "downloads": -1, "filename": "fran-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ec9897150332aa518231e9cbaa969dcd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14561, "upload_time": "2019-04-29T20:29:52", "url": "https://files.pythonhosted.org/packages/ff/58/4e31767d7c132ef5167c67551eaffddeb14a5cfa19f2f04c39a1cd83bff1/fran-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6d6582d1f2d182d71c94b39b35783bad", "sha256": "b0ea0ecec3d718c3dc66f5a2f5ead73bf6f46fb9963a91066293472e960b1f9b" }, "downloads": -1, "filename": "fran-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6d6582d1f2d182d71c94b39b35783bad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16284, "upload_time": "2019-05-06T22:19:06", "url": "https://files.pythonhosted.org/packages/88/b8/7ece8659caee75b50cbb0b277a3b572abe427f62d32c78141c922bc456c2/fran-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d490d7d011fc916c3c6b729d31512b3a", "sha256": "8df3a54bd66a6de400b506344bcb4014fd5ee4b382bc8fef483befb3a75fa0bc" }, "downloads": -1, "filename": "fran-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d490d7d011fc916c3c6b729d31512b3a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15079, "upload_time": "2019-05-06T22:19:08", "url": "https://files.pythonhosted.org/packages/4e/e9/b9261cc60c8ced91830f38774eeb4318a03d8c9367769f2309f468214a77/fran-0.3.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "aa385a0d4438ac600a71f447864aafd0", "sha256": "5f6dc2c7c6600210f5b37c0ca4e05099594bbc874d1cd7cf980ce92990e9c056" }, "downloads": -1, "filename": "fran-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aa385a0d4438ac600a71f447864aafd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16207, "upload_time": "2019-05-06T23:35:33", "url": "https://files.pythonhosted.org/packages/f7/1a/3d36ea976e8ccefa17279e44800b301c6f01d97dcdf901e330ea67433be5/fran-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eca7010b2a9a3843d228b5551eeac447", "sha256": "1892177ed2c8c6c920dfcf209e4593b647ffb94c619fff5120b78f96799ed930" }, "downloads": -1, "filename": "fran-0.4.1.tar.gz", "has_sig": false, "md5_digest": "eca7010b2a9a3843d228b5551eeac447", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15010, "upload_time": "2019-05-06T23:35:34", "url": "https://files.pythonhosted.org/packages/8d/b1/06239778d04897ea3602e84ed17cc000513c216877eae43ef9a70b10607b/fran-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "df3400ed328c47ab6af1c52df751e5fd", "sha256": "09811cec6b72aa2e431ab906ac22441f73709ecc253a954e36a2d8c09f5fd4a3" }, "downloads": -1, "filename": "fran-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "df3400ed328c47ab6af1c52df751e5fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16208, "upload_time": "2019-05-06T23:39:48", "url": "https://files.pythonhosted.org/packages/64/d2/0c8937a86dcf5a2fe6c32662af8f19bd5b847f63bae6e85405a298e0131b/fran-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "57613e9acddf9d696e37b7c11263d91b", "sha256": "ab6925af8847471cb6d945ad9e48c12d2cd87254dddbb56c9ad1449769087abf" }, "downloads": -1, "filename": "fran-0.4.2.tar.gz", "has_sig": false, "md5_digest": "57613e9acddf9d696e37b7c11263d91b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15007, "upload_time": "2019-05-06T23:39:50", "url": "https://files.pythonhosted.org/packages/58/cb/d347c26fa19a1cc340fa9b7ce68c3b862efa71be19bd54a6e49ab573116d/fran-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "a4754fecf281170046e358a753ac215a", "sha256": "1518909ae336484a4b3aa4e6906c14a2a866c3d727259a4da25ed5ecce24ce9e" }, "downloads": -1, "filename": "fran-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a4754fecf281170046e358a753ac215a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16209, "upload_time": "2019-05-07T14:41:19", "url": "https://files.pythonhosted.org/packages/32/ed/0d0b5ffa340582c5d6719f35bfa119958d492b2f9b3897163a00ca839a1f/fran-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "686a27718b53aa79737c3f4622f92346", "sha256": "7ee5651cb10c1365e33ff32942b0376b08429eeb02c07f582d15bb8e705098dd" }, "downloads": -1, "filename": "fran-0.4.3.tar.gz", "has_sig": false, "md5_digest": "686a27718b53aa79737c3f4622f92346", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15010, "upload_time": "2019-05-07T14:41:20", "url": "https://files.pythonhosted.org/packages/26/33/52b4666479730a3c0de457b2209e0ad538598be295590e65eec019e2895c/fran-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "0d809b09445e4261d1b0fb3169495b72", "sha256": "54f5d6922653b3d4f1d422051c5e878ea621f7c14cb8a09c877a715fbd0d5dcb" }, "downloads": -1, "filename": "fran-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0d809b09445e4261d1b0fb3169495b72", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16372, "upload_time": "2019-05-07T15:43:08", "url": "https://files.pythonhosted.org/packages/6d/76/97a173aa99004b9155c930982425604b16f932671d00a4c7f3e53157d87b/fran-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0efb423e9e73d6f49a7bbc1ee4c82bcc", "sha256": "824ea8bdab53b83cfe3bc3dfb9cecd31d1286890850a87a4dfd5acaa1a045951" }, "downloads": -1, "filename": "fran-0.4.4.tar.gz", "has_sig": false, "md5_digest": "0efb423e9e73d6f49a7bbc1ee4c82bcc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15153, "upload_time": "2019-05-07T15:43:10", "url": "https://files.pythonhosted.org/packages/84/20/f7c28cc1902394917f22a47abc28416e2336078ca091bb0a19f764fc927f/fran-0.4.4.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "2d342c5e0e6bc7308342e47bebfdeb9e", "sha256": "bd6fc80562729aff8914e254b40aeac52f43cb072e1b5b538a2c8d98352122fc" }, "downloads": -1, "filename": "fran-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2d342c5e0e6bc7308342e47bebfdeb9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 17996, "upload_time": "2019-05-07T19:28:22", "url": "https://files.pythonhosted.org/packages/ab/d1/0dc7b274958a71c33319359974b36023da90359c2095058301f78a77cf75/fran-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a482239571c01e969e8ba9d0ea47cef4", "sha256": "2692ddee8998cc527ab66bf8d58cb2c65cac54370efa9c39b2f68ea2a4331864" }, "downloads": -1, "filename": "fran-0.5.0.tar.gz", "has_sig": false, "md5_digest": "a482239571c01e969e8ba9d0ea47cef4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 16287, "upload_time": "2019-05-07T19:28:24", "url": "https://files.pythonhosted.org/packages/06/02/1162be3d72fe3ebd07ab6852ac744a9eec72e6f4c9f368597fa196a55f1f/fran-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "f3f3c8ab91184eae99eeb2fc12505646", "sha256": "c73803b131b6b296d11b46f3086efa6bcc6527a2419cd5e4b61ae2824a3657c7" }, "downloads": -1, "filename": "fran-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f3f3c8ab91184eae99eeb2fc12505646", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 17945, "upload_time": "2019-05-15T21:38:52", "url": "https://files.pythonhosted.org/packages/e9/93/8ebc72cff379f12aa2df10967b9f07c1ef5f55824c570db4d9376d82754f/fran-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63695a0c5fb899cc631b35c85b531fb8", "sha256": "a7751feafe11ae3e73a032122902658d4ef9135df6f57f5000d45f9529e358f5" }, "downloads": -1, "filename": "fran-0.6.0.tar.gz", "has_sig": false, "md5_digest": "63695a0c5fb899cc631b35c85b531fb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 16199, "upload_time": "2019-05-15T21:38:53", "url": "https://files.pythonhosted.org/packages/72/dd/56eb69429e643acc76246ce2189bbe08623877fd2ba15480855d8324974e/fran-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "68241a3787556e5fe8cbdeb3e2734a50", "sha256": "6190336c84a2150138084d0edcae2ad4bd68ab28d0f2e9fa0167e54096eb427c" }, "downloads": -1, "filename": "fran-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "68241a3787556e5fe8cbdeb3e2734a50", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 17962, "upload_time": "2019-05-15T21:49:54", "url": "https://files.pythonhosted.org/packages/f0/62/65d40b7ab664f78c7fa51b3f9e952bfbeae3e1c2c77ca14cd4cb0a0dfc8a/fran-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43dae6086d6061cf7f1fd3bb3546a04f", "sha256": "e27c895f8083217eb5228510c4ee06631d10e541f82b5d8d15f84063cf4f8de7" }, "downloads": -1, "filename": "fran-0.6.1.tar.gz", "has_sig": false, "md5_digest": "43dae6086d6061cf7f1fd3bb3546a04f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 16300, "upload_time": "2019-05-15T21:49:55", "url": "https://files.pythonhosted.org/packages/ec/37/e670af1cd5d5aa0a7e4aa819409bac861b0205ac838ba7059c6798b4df61/fran-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "cb15402245043f33d64bb8bc290441c2", "sha256": "75c07707b3f9adfe32116d620959f0449878281dc4f8df116af6e77ffd8d37e6" }, "downloads": -1, "filename": "fran-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cb15402245043f33d64bb8bc290441c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 18032, "upload_time": "2019-05-15T21:58:51", "url": "https://files.pythonhosted.org/packages/15/a7/5112e6d2a109aeb47ed39fed5f62801ad131c2560bc8b1f4a62ecaebe075/fran-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec45df4ac323576a98130c7f51cc7df6", "sha256": "d3cbef4eb8898cf133291c9990ccc982d58bd501ecb7c017e4ba2817a38905e7" }, "downloads": -1, "filename": "fran-0.6.2.tar.gz", "has_sig": false, "md5_digest": "ec45df4ac323576a98130c7f51cc7df6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 16371, "upload_time": "2019-05-15T21:58:53", "url": "https://files.pythonhosted.org/packages/9a/a6/ca1ef15251cff93073f159a3f3ceda92b7d73ddffc9aa260a14907499fd7/fran-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "8dc5a7828224fcfa117edddb813251e1", "sha256": "3f265e1acd2812c6ddf369fd3b81576701a03f025dbb661827f3a02a4a3d5462" }, "downloads": -1, "filename": "fran-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8dc5a7828224fcfa117edddb813251e1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19269, "upload_time": "2019-06-05T23:02:09", "url": "https://files.pythonhosted.org/packages/e0/a4/29e9a3b33d7b6de34a304ca5ef25701ecf21d29469f4a64493e006f25993/fran-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba18ba75f4e8ee8d8714b230472413b3", "sha256": "a29ca37fd12c2fde555b1acce51c4ddfc7d7f23214c800abf1cc4b9fea6b682e" }, "downloads": -1, "filename": "fran-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ba18ba75f4e8ee8d8714b230472413b3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17474, "upload_time": "2019-06-05T23:02:10", "url": "https://files.pythonhosted.org/packages/2a/f1/d1753f4acf9ce3b604783d029be3824f4847e53a5da7e1b13162d523b3b5/fran-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "d4b7c613e29f14beccf1da3ca7422328", "sha256": "885fabc21da9b1de309daba9b8417abcf4bbb57d68795c9a4de72e72c240a1cc" }, "downloads": -1, "filename": "fran-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d4b7c613e29f14beccf1da3ca7422328", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19315, "upload_time": "2019-06-06T15:09:14", "url": "https://files.pythonhosted.org/packages/93/fc/669dfe1c1affbdac0c8651319835425969ce4b30c15539a5daf008438c9d/fran-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e27afdeec5b6272b51576d6852c40643", "sha256": "63617070e6fa40e8ec5bcbe72d7ffcc119df7dc0b1a54fa857f14c7b81e267ff" }, "downloads": -1, "filename": "fran-0.7.1.tar.gz", "has_sig": false, "md5_digest": "e27afdeec5b6272b51576d6852c40643", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17564, "upload_time": "2019-06-06T15:09:16", "url": "https://files.pythonhosted.org/packages/36/51/0da09081b95d68763426bf7a29eb100a2d432c5299b866bc5d2e4bc8887d/fran-0.7.1.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "d3b469587a413f7c367e1a457e92eb1d", "sha256": "2b6fd5354493a831899384b6adf4853560a6c7db90bf66e95065e9c591b4eddf" }, "downloads": -1, "filename": "fran-0.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d3b469587a413f7c367e1a457e92eb1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19573, "upload_time": "2019-06-06T17:51:35", "url": "https://files.pythonhosted.org/packages/22/6e/bcab9a5f08f6a4783ee020b7fa78958ba7bbf2935913287f85db02fefbfb/fran-0.8.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b730ba4392c250b091a70963a1237e0", "sha256": "f40b9157d7d0b2e68bab7b0b5797395b54aaecdb9ef6f91e633ded136c91e99c" }, "downloads": -1, "filename": "fran-0.8.3.tar.gz", "has_sig": false, "md5_digest": "0b730ba4392c250b091a70963a1237e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17813, "upload_time": "2019-06-06T17:51:37", "url": "https://files.pythonhosted.org/packages/92/04/f5b7d43d70642c47358db1d1baa0f8f770f470282ad419352e03bea69c41/fran-0.8.3.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "085ad85d05e3453fbacf4756a29db936", "sha256": "35d662430eca1a02438407a60685f9143536140759eb0232a37fa54d306cba64" }, "downloads": -1, "filename": "fran-0.8.5-py3-none-any.whl", "has_sig": false, "md5_digest": "085ad85d05e3453fbacf4756a29db936", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19573, "upload_time": "2019-06-06T18:03:29", "url": "https://files.pythonhosted.org/packages/a0/b4/c18c53fd226022c241c71f13e6046ded07d666ecdd47a50bfd0727418776/fran-0.8.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f25cdbb32f960dd6a40530634a7a68be", "sha256": "0df74ac3ed2ba5649e4de7860dcc08bef6e3284547b617e2326e9a5f48db8518" }, "downloads": -1, "filename": "fran-0.8.5.tar.gz", "has_sig": false, "md5_digest": "f25cdbb32f960dd6a40530634a7a68be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17813, "upload_time": "2019-06-06T18:03:30", "url": "https://files.pythonhosted.org/packages/8f/7e/51f375499b11f025c083daab2a5c11b049408124ae666c0a3d621f438b8c/fran-0.8.5.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "f692d3cff25e476ca103f656675870a5", "sha256": "64d839a2044639bd30d1b135a7908ba4c3a17bef9988807e1340a5d487efd748" }, "downloads": -1, "filename": "fran-0.8.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f692d3cff25e476ca103f656675870a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19572, "upload_time": "2019-06-06T18:10:36", "url": "https://files.pythonhosted.org/packages/04/8b/aad9370921f8e4ffd223ab3dc4acce78740719f11a4dae8680c6b3c9351f/fran-0.8.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63d8e6ac2dfbb51158796631e89c2a1b", "sha256": "272563df7a6319a186eb16508d018fbec34e69a73af6d32f4e51267844b4b74d" }, "downloads": -1, "filename": "fran-0.8.6.tar.gz", "has_sig": false, "md5_digest": "63d8e6ac2dfbb51158796631e89c2a1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17812, "upload_time": "2019-06-06T18:10:38", "url": "https://files.pythonhosted.org/packages/1a/9f/0be49a5b654a03df1b5f167be45bc7ec0bd5fb903f19fdfdc11c485d99b1/fran-0.8.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f692d3cff25e476ca103f656675870a5", "sha256": "64d839a2044639bd30d1b135a7908ba4c3a17bef9988807e1340a5d487efd748" }, "downloads": -1, "filename": "fran-0.8.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f692d3cff25e476ca103f656675870a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19572, "upload_time": "2019-06-06T18:10:36", "url": "https://files.pythonhosted.org/packages/04/8b/aad9370921f8e4ffd223ab3dc4acce78740719f11a4dae8680c6b3c9351f/fran-0.8.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63d8e6ac2dfbb51158796631e89c2a1b", "sha256": "272563df7a6319a186eb16508d018fbec34e69a73af6d32f4e51267844b4b74d" }, "downloads": -1, "filename": "fran-0.8.6.tar.gz", "has_sig": false, "md5_digest": "63d8e6ac2dfbb51158796631e89c2a1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 17812, "upload_time": "2019-06-06T18:10:38", "url": "https://files.pythonhosted.org/packages/1a/9f/0be49a5b654a03df1b5f167be45bc7ec0bd5fb903f19fdfdc11c485d99b1/fran-0.8.6.tar.gz" } ] }