{ "info": { "author": "Oliver Cope", "author_email": "oliver@redgecko.org", "bugtrack_url": null, "classifiers": [], "description": "fresco-fs: filesystem resources for the fresco framework\n========================================================\n\nfresco-fs provides a flexible framework to load and serve\ncontent from a filesystem directory, integrated with\n`the fresco web framework `_.\n\nThis package was developed for the\n`Skot.be kot listings site `_,\nwhere it is used to serve some of the site's static content.\n\nExample:\n\n.. code:: python\n\n from fresco import FrescoApp\n from fresco_fs import FSResources\n import markdown\n\n\n def serve_markdown(path):\n \"\"\" Take a path to a .md file and turn it into an HTML response \"\"\"\n with open(path, 'r', encoding='utf-8') as f:\n return Response(markdown.markdown(f.read()))\n\n pages = FSResources(\n\n search_path=['path/to/content/files/'],\n\n # Each of extension will be added to the request filename in\n # turn until one matches. So a request for '/mypage' would try\n # '/mypage.md' then '/mypage.txt'.\n # (Note that a request for '/mypage.txt' would be translated into\n # '/mypage.txt.md' and '/mypage.txt.txt'.)\n search_extensions=['.md', '.txt'],\n\n # A function taking a mapped path and returning a fresco Response.\n responder=serve_markdown,\n\n # The route name to use. Routes can be generated with\n # `urlfor('pages', path='mypage')`\n route_name='pages')\n\n app = FrescoApp()\n app.include('/', pages)\n\n\n\nFSResources allows paths to be rewritten on ingress by passing a ``rewriter``\nfunction to the constructor. This function must take the requested path\nand return zero or more rewritten paths. Each rewritten path is then tested\nin order, and the first existing path is served.\n\nFor example to serve different content depending on language, you could write a\nfunction like this:\n\n.. code:: python\n\n def try_i18n_paths(virtualpath):\n lang = get_active_language()\n return ['{}.{}'.format(virtualpath, lang), virtualpath]\n\nThe FSResources constructor would then look like this:\n\n.. code:: python\n\n pages = FSResources(\n search_path=['path/to/content/files/'],\n search_extensions=['.md', '.txt'],\n responder=serve_markdown,\n rewriter=try_i18n_paths)\n\n\n\n\n\n\n0.1 (released 2017-03-06)\n=========================\n\nInitial release", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://skot.be/", "keywords": "", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "fresco-fs", "package_url": "https://pypi.org/project/fresco-fs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fresco-fs/", "project_urls": { "Homepage": "https://skot.be/" }, "release_url": "https://pypi.org/project/fresco-fs/0.1.1/", "requires_dist": [ "fresco" ], "requires_python": "", "summary": "Filesystem resources for fresco", "version": "0.1.1" }, "last_serial": 2686023, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "836b8f1df3d0c6f43466e1f544594c58", "sha256": "9701603abe4bbb2eb5a2763bdfe98e0e4029de717679d341a1222b9970e708a6" }, "downloads": -1, "filename": "fresco_fs-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "836b8f1df3d0c6f43466e1f544594c58", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5296, "upload_time": "2017-03-06T14:49:42", "url": "https://files.pythonhosted.org/packages/c2/39/9d870e72ef6990ead8a86a52176151e29858c94cfc613e5b524131d2344e/fresco_fs-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "143d5abbf58731928fcd17f999df616a", "sha256": "73b4c7099a2c3c918c9a250bd971c5ac6716fbb7d45ceb6306a4d2db02bc5b3c" }, "downloads": -1, "filename": "fresco-fs-0.1.tar.gz", "has_sig": false, "md5_digest": "143d5abbf58731928fcd17f999df616a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7363, "upload_time": "2017-03-06T14:49:45", "url": "https://files.pythonhosted.org/packages/d1/02/b23a7f8c394098cb51a2706a4fe1e512564ee3dd9d46b9451b03a6f64f07/fresco-fs-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "82d9cca195c7097df6c7a2712160cee4", "sha256": "432d2fa0a1d1dc9058cbeb0960a5059539e263c0434c7b6618376525877cab7b" }, "downloads": -1, "filename": "fresco_fs-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "82d9cca195c7097df6c7a2712160cee4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5329, "upload_time": "2017-03-06T14:53:35", "url": "https://files.pythonhosted.org/packages/c7/21/ac1f23136ba17e576d50749646db647ea43192ce5ca51b48476ebcc33f67/fresco_fs-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc73d7269dab3b2d2c9de15457fbe418", "sha256": "4bd6f2dd356f024aee68c34a0818e533ca76803c187f431944938d960f3119ef" }, "downloads": -1, "filename": "fresco-fs-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cc73d7269dab3b2d2c9de15457fbe418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7310, "upload_time": "2017-03-06T14:53:39", "url": "https://files.pythonhosted.org/packages/66/e6/d7a46213f579fa62a38b0e27ad049f8e5b65c55f6010f4f1eae57e24ce3d/fresco-fs-0.1.1.tar.gz" } ], "0.1.1.dev0": [ { "comment_text": "", "digests": { "md5": "13df3c4bfbfb8bf034addc2acb2f6d1c", "sha256": "c650061efc3dc6d4053cbf08cc766ef51cff1f3d3eb0452d6a0d4f995b872b8a" }, "downloads": -1, "filename": "fresco-fs-0.1.1.dev0.tar.gz", "has_sig": false, "md5_digest": "13df3c4bfbfb8bf034addc2acb2f6d1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7336, "upload_time": "2017-03-06T14:53:38", "url": "https://files.pythonhosted.org/packages/dd/03/6bdae9fd3f924d67915df088dfcf25d2930d815de9e64299a807f2aae32f/fresco-fs-0.1.1.dev0.tar.gz" } ], "0.1.dev0": [ { "comment_text": "", "digests": { "md5": "d5141f24b06aebfb8a957b77e15fc39a", "sha256": "481dc647777a5a29d963c69949bfe50c641403656a77d8c96ea2d5abca937ad3" }, "downloads": -1, "filename": "fresco_fs-0.1.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "d5141f24b06aebfb8a957b77e15fc39a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5367, "upload_time": "2017-03-06T14:43:06", "url": "https://files.pythonhosted.org/packages/bf/7f/aff2ecb06b0cb826e64b6c1d5a4c7e7b233b985afa8f15437e8abd4f17de/fresco_fs-0.1.dev0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dca011ebe0666ef52cfecfb4048c0577", "sha256": "e45572176b4e37922807b1048f0aca9a38777f131130b8b369b4c080a3cea52b" }, "downloads": -1, "filename": "fresco-fs-0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "dca011ebe0666ef52cfecfb4048c0577", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7312, "upload_time": "2017-03-06T14:43:08", "url": "https://files.pythonhosted.org/packages/85/05/2f0c411d2f4c2146913207809e3def654e955ac8edf67f38c24e08af3575/fresco-fs-0.1.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "82d9cca195c7097df6c7a2712160cee4", "sha256": "432d2fa0a1d1dc9058cbeb0960a5059539e263c0434c7b6618376525877cab7b" }, "downloads": -1, "filename": "fresco_fs-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "82d9cca195c7097df6c7a2712160cee4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5329, "upload_time": "2017-03-06T14:53:35", "url": "https://files.pythonhosted.org/packages/c7/21/ac1f23136ba17e576d50749646db647ea43192ce5ca51b48476ebcc33f67/fresco_fs-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc73d7269dab3b2d2c9de15457fbe418", "sha256": "4bd6f2dd356f024aee68c34a0818e533ca76803c187f431944938d960f3119ef" }, "downloads": -1, "filename": "fresco-fs-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cc73d7269dab3b2d2c9de15457fbe418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7310, "upload_time": "2017-03-06T14:53:39", "url": "https://files.pythonhosted.org/packages/66/e6/d7a46213f579fa62a38b0e27ad049f8e5b65c55f6010f4f1eae57e24ce3d/fresco-fs-0.1.1.tar.gz" } ] }