{ "info": { "author": "Nikolay Kim", "author_email": "fafhrd91@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Pyramid", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI" ], "description": "player\n======\n\n.. image :: https://travis-ci.org/fafhrd91/player.png \n :target: https://travis-ci.org/fafhrd91/player\n\nplayer allows to address templates with two parameters, \ncategory and name. Also it is possible to use set of directories\nfor each layer, in that case `player` searches templates\nin each directory. It allows to override templates without changing\ncode. For example form library can define layer `field`::\n\n >> ls ./fields/\n .. bool.pt\n .. file.pt\n ...\n .. textarea.pt\n\nIn your application you can override any of this template by defining \nnew layer for `field` category::\n\n >> ls ./myproject/fields/\n .. bool.pt\n\nUsually top level directory is a category and file in directory is template.\nFor example 'form:view.lt'::\n\n `form` - layer category\n `view` - template name\n `.lt` - custom pyramid renderer factory\n\nLayer can to be defined with `add_layer` config directive:\n\n.. code-block:: python\n\n >> config = Configurator()\n .. config.include('player')\n ..\n .. config.add_layer('form', path='./path_to_form_dirctory/form/')\n\n`form` directory can contain any template:\n\n.. code-block:: python\n\n >> ./form/\n .. view.pt\n .. actions.jinja2\n\nIt is possible to use any of this templates as pyramid renderer path:\n\n.. code-block:: python\n\n >> config.add_view(\n .. name='view.html', \n .. renderer='form:view.lt')\n\nor :\n\n.. code-block:: python\n\n >> config.add_view(\n .. name='actions.html', \n .. renderer='form:actions.lt')\n\n\nIt is possible to run python code before rendering template. \nThere are `add_tmpl_filter` directive and `player.tmpl_filter` \ndecorator:\n\n.. code-block:: python\n\n >> def form_actions(context, request):\n .. return {'url': ...}\n\n >> config.add_tmpl_filter('form:actions', form_action, name='custom')\n \nor:\n\n.. code-block:: python\n\n >> import player\n\n >> @player.tmpl_filter('form:actions', name='custom')\n .. def form_actions(context, request):\n .. return {'url': ...}\n\n`form_actions` function gets call just before rendering template.\nLayer has to be defined with `add_layer` directve before registering \ntemplate filter function.\n\n\nCustomization\n-------------\n\nAny number of layer categories can be registered and any number of\nlayers can be registered in each category. It doesnt require to override \nall templates from category. For example it is possible to override just \nview.pt template::\n\n >> config.add_layer('form', 'custom', path='path_to_form_directory_2/form')\n\nand content of this new directory::\n\n >> ./another_path/form/\n .. view.jinja2\n\nNow view `view.html` uses `view.jinja2` template. But `actions.html` stil\nuses original template.\n\nAnother example, if you want customize `bool` field from ptah.form package\nall you need is to create some folder, add it as 'fields' layer, and put\n`bool.pt` template to this folder, something like that::\n\n >> config.add_layer('fields', 'custom', 'mypackage:fields')\n\nand ::\n\n >> .mypackage/fields/\n .. bool.pt\n\n\nRequest method\n--------------\n\n`player` also provides request method `render_tmpl`. It acccepts\npath::\n\n .. ${structure: request.render_tmpl('form:actions')\n\n`.lt` extension is optional in this case.\n\n\nplayer\n-------\n\n...\n\n\nLicense\n-------\n\nplayer is offered under the BSD license.\n\nCHANGES\n=======\n\n0.6.1 (01-22-2013)\n------------------\n\n- Added python 2.6\n\n\n0.6 (12-10-2012)\n----------------\n\n- Allow to use standard renderers in `render` function\n\n\n0.5 (11-30-2012)\n----------------\n\n- Use jinja2 for templates\n\n- Added `layout_data` request property\n\n- Allow to pass several messages to `error` message\n\n\n0.4 (11-12-2012)\n----------------\n\n- Added `player.layout` renderer\n\n- Added `-c` argument to `player` console script, \n it allows to customize templates\n\n- `set_layout_data` accepts keyword arguments\n\n- Removed `player.wrap_layout()`\n\n- Removed python2.6 support\n\n\n0.3 (11-07-2012)\n----------------\n\n- Added `set_layout_data` request method, allow to set global layout options\n\n- Added status messages\n\n- Added formatters\n\n\n0.2 (11-01-2012)\n----------------\n\n- Added `layout` subsystem\n\n\n0.1 (10-30-2012)\n----------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fafhrd91/player/", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "player", "package_url": "https://pypi.org/project/player/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/player/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/fafhrd91/player/" }, "release_url": "https://pypi.org/project/player/0.6.1/", "requires_dist": null, "requires_python": null, "summary": "Pyramid view layers", "version": "0.6.1" }, "last_serial": 796329, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "c71a6953be43a68b1e8edf464eb60f7d", "sha256": "b7bffc9f52ccfeb8641d04b3f29f8cc6df2622dd66e1b45447744bc4e03ba123" }, "downloads": -1, "filename": "player-0.3.tar.gz", "has_sig": false, "md5_digest": "c71a6953be43a68b1e8edf464eb60f7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17258, "upload_time": "2012-11-08T01:18:16", "url": "https://files.pythonhosted.org/packages/2f/c3/9e30596e7b5e979ffefbcb8a593e141789a3605e9043cab99893eabce566/player-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "528f291693a817849f131df4f6362aab", "sha256": "758bf5c0d1d118fa321668c0e9f8d84fbdbd62377b9b324335b4a72bb14f0537" }, "downloads": -1, "filename": "player-0.4.tar.gz", "has_sig": false, "md5_digest": "528f291693a817849f131df4f6362aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17623, "upload_time": "2012-11-13T07:32:46", "url": "https://files.pythonhosted.org/packages/cc/4a/3a36e9ed944c70e28b9ad57f5297f52fa32544b3a5b6649c8dfb493405de/player-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ac267bc7b5174b8beb03254bd4ae53c0", "sha256": "8c2ebcdc09b724cfc1a97820a7b221d873738be1a1d832ec7f08af63e39b7e31" }, "downloads": -1, "filename": "player-0.5.tar.gz", "has_sig": false, "md5_digest": "ac267bc7b5174b8beb03254bd4ae53c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17911, "upload_time": "2012-11-30T21:38:49", "url": "https://files.pythonhosted.org/packages/60/d4/9542d6c9ae2275978a417eebe6834b410bc92046cd95a62310081c6d8107/player-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "3814f31aab29352b4aa19692b8efd688", "sha256": "fae6102ab4e290aa2aef2feeeb564a7ececd4ff4ebd9bc4e71cfa30e912bc61a" }, "downloads": -1, "filename": "player-0.6.tar.gz", "has_sig": false, "md5_digest": "3814f31aab29352b4aa19692b8efd688", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18095, "upload_time": "2012-12-10T21:18:16", "url": "https://files.pythonhosted.org/packages/2f/e4/c10004d744caeb1417c081ea2983a538d77cdcfe65becec92ee78d530cfb/player-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "20a25fd8b8d234eb32e2796052e565f6", "sha256": "a55bb34b73627c5a9164804a428de421b08ae4926cc5f5d78f6e72f96b82522f" }, "downloads": -1, "filename": "player-0.6.1.tar.gz", "has_sig": false, "md5_digest": "20a25fd8b8d234eb32e2796052e565f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18295, "upload_time": "2013-01-22T17:27:58", "url": "https://files.pythonhosted.org/packages/66/a9/699a6820e8169d28d1372f28c77e4d3f0086dddc670645edb1ec4671a051/player-0.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "20a25fd8b8d234eb32e2796052e565f6", "sha256": "a55bb34b73627c5a9164804a428de421b08ae4926cc5f5d78f6e72f96b82522f" }, "downloads": -1, "filename": "player-0.6.1.tar.gz", "has_sig": false, "md5_digest": "20a25fd8b8d234eb32e2796052e565f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18295, "upload_time": "2013-01-22T17:27:58", "url": "https://files.pythonhosted.org/packages/66/a9/699a6820e8169d28d1372f28c77e4d3f0086dddc670645edb1ec4671a051/player-0.6.1.tar.gz" } ] }