{
"info": {
"author": "Abhishek Kumar Jaiswal",
"author_email": "abhishekjaiswal.kol@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3"
],
"description": "effluxpy\n========\n\n|Travis-CI badge| |AppVeyor badge| |Build Status| |Codacy Badge|\n|License: MIT| |Version: 0.5.6| |Python 2.7+, 3.3+|\n\nThe Advanced Browser and Streamer Python.\n\nDocumentation\n~~~~~~~~~~~~~\n\nHead to http://jkabhishek.github.io/effluxpy/ for an online version of\ncurrent *master* documentation,\n\nYou can also build yourself from sphinx sources using the documentation\n``Makefile`` located at ``docs`` directory.\n\nScreenshots\n~~~~~~~~~~~\n\n[|Screenshot of directory with enabled remove|\n\nFeatures\n~~~~~~~~\n\n- **Simple**, like Python\u2019s SimpleHTTPServer or Apache\u2019s Directory\n Listing.\n- **Downloadable directories**, streaming directory tarballs on the\n fly.\n- **Optional remove** for files under given path.\n- **Optional upload** for directories under given path.\n- **Player** audio player plugin is provided (without transcoding).\n\nNew in 0.5\n~~~~~~~~~~\n\n- File and plugin APIs have been fully reworked making them more\n complete and extensible, so they can be considered stable now. As a\n side-effect backward compatibility on some edge cases could be broken\n (please fill an issue if your code is affected).\n\n - Old widget API have been deprecated and warnings will be shown if\n used.\n - Widget registration in a single call (passing a widget instances\n is still available though), no more action-widget duality.\n - Callable-based widget filtering (no longer limited to mimetypes).\n - A raw HTML widget for maximum flexibility.\n\n- Plugins can register command-line arguments now.\n- Player plugin is now able to load ``m3u`` and ``pls`` playlists, and\n optionally play everything on a directory (adding a command-line\n argument).\n- Browsing now takes full advantage of ``scandir`` (already in Python\n 3.5 and an external dependency for older versions) providing faster\n directory listing.\n- Custom file ordering while browsing directories.\n- Easy multi-file uploads.\n- Jinja2 template output minification, saving those precious bytes.\n- Setup script now registers a proper ``effluxpy`` command.\n\nInstall\n-------\n\nIt is on `pypi `__ .\n\n::\n\n pip install effluxpy\n\nYou can get the development version from our `github\nrepository `__ .\n\n::\n\n pip install git+https://github.com/jkabhishek/effluxpy.git\n\nUsage\n~~~~~\n\nServing $HOME/shared to all addresses\n\n::\n\n effluxpy 0.0.0.0 8080 --directory $HOME/shared\n\nShowing help\n\n::\n\n effluxpy --help\n\nShowing help including player plugin arguments\n\n::\n\n effluxpy --plugin=player --help\n\nThis examples assume python\u2019s ``bin`` directory is in ``PATH``,\notherwise try replacing ``effluxpy`` with ``python -m effluxpy``.\n\nCommand-line arguments\n~~~~~~~~~~~~~~~~~~~~~~\n\nThis is what is printed when you run ``effluxpy --help``, keep in mind\nthat plugins (loaded with ``plugin`` argument) could add extra arguments\nto this list.\n\n::\n\n usage: effluxpy [-h] [--directory PATH] [--initial PATH] [--removable PATH]\n [--upload PATH] [--exclude PATTERN] [--exclude-from PATH]\n [--plugin MODULE]\n [host] [port]\n\n positional arguments:\n host address to listen (default: 127.0.0.1)\n port port to listen (default: 8080)\n\n optional arguments:\n -h, --help show this help message and exit\n --directory PATH serving directory (default: current path)\n --initial PATH default directory (default: same as --directory)\n --removable PATH base directory allowing remove (default: none)\n --upload PATH base directory allowing upload (default: none)\n --exclude PATTERN exclude paths by pattern (multiple)\n --exclude-from PATH exclude paths by pattern file (multiple)\n --plugin MODULE load plugin module (multiple)\n\nUsing as library\n~~~~~~~~~~~~~~~~\n\nIt\u2019s a python module, so you can import **effluxpy**, mount **app**, and\nserve it (it\u2019s ``WSGI``\\ \\_ compliant) using your preferred server.\n\neffluxpy is a Flask application, so it can be served along with any\n``WSGI``\\ \\_ app just setting **APPLICATION_ROOT** in **effluxpy.app**\nconfig to effluxpy prefix url, and mounting **effluxpy.app** on the\nappropriate parent *url-resolver*/*router*.\n\n`\\_WSGI `__\n\neffluxpy app config (available at :attr:``effluxpy.app.config``) uses\nthe following configuration options.\n\n- **directory_base**: anything under this directory will be served,\n defaults to current path.\n- **directory_start**: directory will be served when accessing root URL\n- **directory_remove**: file removing will be available under this\n path, defaults to **None**.\n- **directory_upload**: file upload will be available under this path,\n defaults to **None**.\n- **directory_tar_buffsize**, directory tar streaming buffer size,\n defaults to **262144** and must be multiple of 512.\n- **directory_downloadable** whether enable directory download or not,\n defaults to **True**.\n- **use_binary_multiples** whether use binary units (bi-bytes, like\n KiB) instead of common ones (bytes, like KB), defaults to **True**.\n- **plugin_modules** list of module names (absolute or relative to\n plugin_namespaces) will be loaded.\n- **plugin_namespaces** prefixes for module names listed at\n plugin_modules where relative plugin_modules are searched.\n- **exclude_fnc** function will be used to exclude files from listing\n and directory tarballs. Can be either None or function receiving an\n absolute path and returning a boolean.\n\nAfter editing ``plugin_modules`` value, plugin manager (available at\nmodule plugin_manager and app.extensions[\u2018plugin_manager\u2019]) should be\nreloaded using the ``reload`` method.\n\nThe other way of loading a plugin programmatically is calling plugin\nmanager\u2019s ``load_plugin`` method.\n\nExtend via plugin API\n~~~~~~~~~~~~~~~~~~~~~\n\nStarting from version 0.4.0, effluxpy is extensible via plugins. A\nfunctional \u2018player\u2019 plugin is provided as example, and some more are\nplanned.\n\nPlugins can add HTML content to effluxpy\u2019s browsing view, using some\nconvenience abstraction for already used elements like external\nstylesheet and javascript tags, links, buttons and file upload.\n\nMore information at http://jkabhishek.github.io/effluxpy/plugins.html\n\n.. |Travis-CI badge| image:: http://img.shields.io/travis/jkabhishek/effluxpy/master.svg?style=flat-square\n :target: https://travis-ci.org/jkabhishek/effluxpy\n.. |AppVeyor badge| image:: https://img.shields.io/appveyor/ci/jkabhishek/effluxpy/master.svg?style=flat-square\n :target: https://ci.appveyor.com/project/jkabhishek/effluxpy/branch/master\n.. |Build Status| image:: http://img.shields.io/coveralls/jkabhishek/effluxpy/master.svg?style=flat-square\n :target: https://coveralls.io/r/jkabhishek/effluxpy?branch=master\n.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/d5b4bc6a5ec34728ad14016ada414384\n :target: https://www.codacy.com/app/jkabhishek/effluxpy?utm_source=github.com&utm_medium=referral&utm_content=jkabhishek/effluxpy&utm_campaign=Badge_Grade\n.. |License: MIT| image:: http://img.shields.io/pypi/l/effluxpy.svg?style=flat-square\n :target: https://pypi.python.org/pypi/effluxpy/\n.. |Version: 0.5.6| image:: http://img.shields.io/pypi/v/effluxpy.svg?style=flat-square\n :target: https://pypi.python.org/pypi/effluxpy/\n.. |Python 2.7+, 3.3+| image:: https://img.shields.io/badge/python-2.7%2B%2C%203.3%2B-FFC100.svg?style=flat-square\n :target: https://pypi.python.org/pypi/effluxpy/\n.. |Screenshot of directory with enabled remove| image:: https://raw.githubusercontent.com/jkabhishek/effluxpy/master/docs/screenshot.0.3.1-0.png\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "https://github.com/jkabhishek/effluxpy/archive/0.5.8.tar.gz",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/jkabhishek/effluxpy",
"keywords": "web",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "effluxpy",
"package_url": "https://pypi.org/project/effluxpy/",
"platform": "any",
"project_url": "https://pypi.org/project/effluxpy/",
"project_urls": {
"Download": "https://github.com/jkabhishek/effluxpy/archive/0.5.8.tar.gz",
"Homepage": "https://github.com/jkabhishek/effluxpy"
},
"release_url": "https://pypi.org/project/effluxpy/0.5.8/",
"requires_dist": null,
"requires_python": "",
"summary": "Advanced Browser and Streamer Python",
"version": "0.5.8"
},
"last_serial": 3605701,
"releases": {
"0.5.6": [
{
"comment_text": "",
"digests": {
"md5": "e861f25eda200f297cf3effe5cd8ecc1",
"sha256": "b70884ac87ceab09011e421793582cb4f2d54fde1d0b78997a9079a76cbb22e6"
},
"downloads": -1,
"filename": "effluxpy-0.5.6.tar.gz",
"has_sig": false,
"md5_digest": "e861f25eda200f297cf3effe5cd8ecc1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 216742,
"upload_time": "2018-02-22T10:45:00",
"url": "https://files.pythonhosted.org/packages/81/3c/2031c73c4d0a257f60f98c6c3b8f49b486a5744042ebd5581baa95b40ff6/effluxpy-0.5.6.tar.gz"
}
],
"0.5.7": [
{
"comment_text": "",
"digests": {
"md5": "e8eff4af62374ebc51d219c2b8931083",
"sha256": "9da991716569833a949dd787097345bd3e0f2ba4097ba86a3c1ca54989e05080"
},
"downloads": -1,
"filename": "effluxpy-0.5.7.tar.gz",
"has_sig": false,
"md5_digest": "e8eff4af62374ebc51d219c2b8931083",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 216717,
"upload_time": "2018-02-22T14:06:44",
"url": "https://files.pythonhosted.org/packages/5d/de/2ee9ae90538992860fdfc792bf99a49ea07b485cbf836b4844345e274d83/effluxpy-0.5.7.tar.gz"
}
],
"0.5.8": [
{
"comment_text": "",
"digests": {
"md5": "89a4cfcfea741e17fa6efe7a5ab6b1bc",
"sha256": "b11fd059de44214eeed62e06b536f134b62fe36c31c724fbc851a238f4542794"
},
"downloads": -1,
"filename": "effluxpy-0.5.8.tar.gz",
"has_sig": false,
"md5_digest": "89a4cfcfea741e17fa6efe7a5ab6b1bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 217173,
"upload_time": "2018-02-22T15:07:49",
"url": "https://files.pythonhosted.org/packages/69/86/dc49a690aea9be7ec0f505c9caa23d23ea44e58477b9e46be7d448a6567d/effluxpy-0.5.8.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "89a4cfcfea741e17fa6efe7a5ab6b1bc",
"sha256": "b11fd059de44214eeed62e06b536f134b62fe36c31c724fbc851a238f4542794"
},
"downloads": -1,
"filename": "effluxpy-0.5.8.tar.gz",
"has_sig": false,
"md5_digest": "89a4cfcfea741e17fa6efe7a5ab6b1bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 217173,
"upload_time": "2018-02-22T15:07:49",
"url": "https://files.pythonhosted.org/packages/69/86/dc49a690aea9be7ec0f505c9caa23d23ea44e58477b9e46be7d448a6567d/effluxpy-0.5.8.tar.gz"
}
]
}