{ "info": { "author": "Chris Dent", "author_email": "cdent@peermore.com", "bugtrack_url": null, "classifiers": [], "description": "\nSummary\n=======\n\ntsapp provides a tool, `tsapp`, for creating browser-based applications\nfor use with [TiddlySpace](http://tiddlyspace.com/). Such applications are\nmade of one or more html files along with one or more CSS and JavaScript\nfiles for presenting and access the tiddler data that lives in TiddlySpace.\n\nThe combination can be very useful for rapid development of web applications\nthat need a persistent but simple data store with a clean, robust API.\n\nInstall\n=======\n\ntsapp is a Python 2 based tool. You will need a Python installation (2.5\nand above). `pip` is used for installation. If you don't have pip you can\nlearn how to get it [here](http://www.pip-installer.org/).\n\n```\npip install -U tsapp\n```\n\nOnce installed the `tsapp` script should be on your `$PATH`.\n\nCommands\n========\n\n`tsapp` provides a single script that takes multiple commands. Running \n`tsapp help` will list the relevant commands. The following lists \navailable commands. Those commands which are not yet completed are marked\nwith `TBC`.\n\nNote that the commands are designed to allow easy creation of aliases and\nto otherwise be combined in a useful fashion using the shell.\n\ninit\n----\n\n`tsapp init `\n\nCreate an app directory named whatever you give you for ``. \nInside the directory will be a stub `index.html` file and an assets\ndirectory. `index.html` is used as the primary access page of your\napp. JavaScript, CSS, and other files go in assets.\n\nserve\n-----\n\n`tsapp serve`\n\nRun a local web server that will serve up your HTML file and other assets.\nAny assets which are not found locally will be looked for at the target\nTiddlySpace server (see configuration below). Paths to\n`/bags//tiddlers/` will first try to load\n`assets/` locally. If that is not found, then the original\npath will be looked up on the TiddlySpace server.\n\nThe proxy server will always send `PUT`, `POST` and `DELETE` requests\nto the target server.\n\nThe goal with this arrangement is to allow the local files to not have\nto change when pushed to the target server for eventual hosting.\n\nIf `wsgi_server` is set in config the value is taken as a module\ncontaining a function `start_server` which, when passed the config\nwill start a server.\n\npush\n----\n\n`tsapp push []`\n\nPush (via HTTP `PUT`) all the local assets to the target server, in the\nbag named by ``. If the bag does not end with `_private` or\n`_public`, then `_public` will be appended. The exception to this is if\n`tiddlyweb_mode` is set to True in config.\n\nFiles that have a `.html` or `.tid` extension on the source file will\nhave the extension removed on the target.\n\nIf `` is provided, just that one tiddler will be pushed.\n\npush_hard\n---------\n\n`tsapp push_hard []`\n\nPush (via HTTP `PUT`) all the local assets to the target server, in the\nbag named by ``. If the bag does not end with `_private` or\n`_public`, then `_public` will be appended. The exception to this is if\n`tiddlyweb_mode` is set to True in config.\n\nThis command is distinct from `push` in that the target file on the\nserver is deleted before the `PUT`.\n\nFiles that have a `.html` or `.tid` extension on the source file will\nhave the extension removed on the target.\n\nIf `` is provided, just that one tiddler will be pushed.\n\nauth\n----\n\n`tsapp auth `\n\nAuthenticate to the target_server as username and write the resulting\nauth token to the local directory's configuration file.\n\ndelete\n------\n\n`tsapp delete `\n\nA convenience method for removing a tiddler that's ended up on the\nserver that is no longer needed and may be in the way.\n\nConfiguration\n=============\n\ntsapp looks for a `.tsapp` configuration file in the current user's `$HOME`\nand in the current directory. `$HOME/.tsapp` overrides defaults and \n`./.tsapp` overrides `$HOME/.tsapp`. There is no requirement for a configuration\nfile in the home directory if one is not desired. However, in order\nfor the `push` command to work, a `.tsapp` containing an `auth_token` must\nbe found. The `auth` command will create one.\n\nMake sure that you do _not_ commit a .tsapp file that includes the\nauth_token.\n\nThe fields are:\n\ntarget_server\n-------------\n\nThe URL (without trailing `/`) of the home tiddlyspace server. Defaults to\n`http://tiddlyspace.com`.\n\nlocal_host\n----------\n\nThe hostname or IP to which to bind the local proxy. Default is `0.0.0.0`.\n\nport\n----\n\nThe port to which to bind the local proxy. Default is `8080`.\n\nauth_token\n----------\n\nAuth secret for accessing private resources on the target server. No default.\nSet it with the `auth` command or copy in the tiddlyweb_user cookie.\n\nThe auth_token property will also be set (only if it does not exist already)\nwhen the server intercepts login requests to `/challenge/\n\nIf a POST to `/logout` is made and the auth_token exists, it will be removed\nfrom the configuration in the local directory.\n\nwsgi_sever\n----------\n\nThe name of a python module containing a `start_server` method which,\nwhen passed `config`, will start a web server hosting the proxy\napplication. Originally this was the server provided by the `wsgiref`\nmodule in the Python stdlib, but this proved to be annoyingly slow.\nNow `CherryPyWSGIServer` is used. An example of using the original\nserver [is availble](https://gist.github.com/cdent/5564147).\n\ntiddlyweb_mode\n--------------\n\nIf set to True, tsapp does not append `_public` or `_private` to a bag when\npushing assets.\n\nThis option will also ensure use of the default tiddlyweb authentication\nchallenger when using the `auth` command.\n\nserver_prefix\n-------------\n\nA URL prefix (without any `/`)\nprepended to `/bags//tiddlers/` that is used when\nauthenticating, looking up, pushing and deleting assets. This is limited\nto just a single segment e.g. the prefix `web` would complete the path as:\n`/web/bags//tiddlers/`\n\nExamples\n========\n\n* http://tsapp.tiddlyspace.com/ provides a simple docs interface,\n created with `tsapp`.\n\nAcknowledgements\n================\n\nThanks to @bengillies for his `tsupload` script which provided some of the\nmotivation for creating this.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/tsapp", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "tsapp", "package_url": "https://pypi.org/project/tsapp/", "platform": "Posix; MacOS X; Windows", "project_url": "https://pypi.org/project/tsapp/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/tsapp" }, "release_url": "https://pypi.org/project/tsapp/0.7.0/", "requires_dist": null, "requires_python": null, "summary": "Manage an app for TiddlySpace.", "version": "0.7.0" }, "last_serial": 800981, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "31516b2be2e930ba86ef8ef1549a1dd4", "sha256": "5a832ceeb610788a9fc65d2385a94a5150b3e6178ac955bf12482ff87a216aef" }, "downloads": -1, "filename": "tsapp-0.1.1.tar.gz", "has_sig": false, "md5_digest": "31516b2be2e930ba86ef8ef1549a1dd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7447, "upload_time": "2012-07-30T18:59:03", "url": "https://files.pythonhosted.org/packages/a4/ac/de45cad6332a808445780fb744308810c918ae362a379d8360ee302fe22c/tsapp-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1c3ea2840c636739bfc78afa05ed4404", "sha256": "bac3ae1250f51eedd1ef2ae8bb6a96e9756f83f889d902d8e1740a5d860e2e9b" }, "downloads": -1, "filename": "tsapp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1c3ea2840c636739bfc78afa05ed4404", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7576, "upload_time": "2012-07-30T19:05:34", "url": "https://files.pythonhosted.org/packages/12/03/e340984d4b6c7db534e8fa8db391693a23b6207479ffbb8ce6d25a901448/tsapp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "395fc21e260ed4af7601ede925ec9a47", "sha256": "7866240217eb2f1dcf28fbe2be09a7546abed63fa361716307c10a46a814b955" }, "downloads": -1, "filename": "tsapp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "395fc21e260ed4af7601ede925ec9a47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7823, "upload_time": "2012-07-31T16:02:22", "url": "https://files.pythonhosted.org/packages/d2/d5/4bd013f0a3bfc3fdee68cdd0299d2b9243c1133997164bf658ed410c1df7/tsapp-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "dcab44f7cc247d4e5f97c91786c22273", "sha256": "f5142b22c2d3dfc45f4e16cb1f618d8fcadd7da3f103087f9ab925e57521db9c" }, "downloads": -1, "filename": "tsapp-0.1.4.tar.gz", "has_sig": false, "md5_digest": "dcab44f7cc247d4e5f97c91786c22273", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7905, "upload_time": "2012-07-31T20:31:50", "url": "https://files.pythonhosted.org/packages/ea/74/ef1110e3dce2d56d8701571d58d9a8fb3c4258f06d7f9e5c425a561113be/tsapp-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "69053afff50697c3998f8410ab311504", "sha256": "9b8d9d0db9dcea7237a6477195070972f30fabd944e50bdeb5f70d230efdbff4" }, "downloads": -1, "filename": "tsapp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "69053afff50697c3998f8410ab311504", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7918, "upload_time": "2012-08-01T00:27:40", "url": "https://files.pythonhosted.org/packages/d1/77/e3e380df32358d6398f5de8c159b3f9db3a79e6e4383672950383a04513a/tsapp-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "bf760d47042743508a6dc90519f216bb", "sha256": "0a1cf5ca39730be593e8d2d94a0b42ca24136edcf6d54025853fb2be5d257a6e" }, "downloads": -1, "filename": "tsapp-0.1.6.tar.gz", "has_sig": false, "md5_digest": "bf760d47042743508a6dc90519f216bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7941, "upload_time": "2012-08-29T20:56:51", "url": "https://files.pythonhosted.org/packages/97/e0/c5a6fca37f7aa5ac6e616d31d55ae3329400aa440b5cd6a98655a79af8ac/tsapp-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "5e56785ee7b415795160ebec4b0c4a1c", "sha256": "d4521beb81df14ca1ec0bd3e0bfddedcafe227aa4fa9f846bb24268ea523926d" }, "downloads": -1, "filename": "tsapp-0.1.7.tar.gz", "has_sig": false, "md5_digest": "5e56785ee7b415795160ebec4b0c4a1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8513, "upload_time": "2012-09-07T22:30:37", "url": "https://files.pythonhosted.org/packages/75/b8/15a27eb4c9781fa5696e905cb31018872479f67ce3b5be545b7455ddd267/tsapp-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "b0580e0cfb9e15e8d38dd354af33e837", "sha256": "9fb810426d00aff2b2761f4b2c315737452d3a90a8c9846046eb27e1ae165fca" }, "downloads": -1, "filename": "tsapp-0.1.8.tar.gz", "has_sig": false, "md5_digest": "b0580e0cfb9e15e8d38dd354af33e837", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8565, "upload_time": "2012-09-14T15:43:16", "url": "https://files.pythonhosted.org/packages/fa/a3/64e7e198492d595183ac61d142a0e2b7fa2f54c089732602f5096b375ad1/tsapp-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "55956bb6b766d593266635bc894c56ac", "sha256": "c276ca2f9d59384a6646037272b7a90c5f76de045b0af405f35939622bb575e4" }, "downloads": -1, "filename": "tsapp-0.1.9.tar.gz", "has_sig": false, "md5_digest": "55956bb6b766d593266635bc894c56ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8616, "upload_time": "2012-09-25T12:09:33", "url": "https://files.pythonhosted.org/packages/d9/1d/e357249613c2b5c8590e30060d0359553589e2724fbc2597a9709f8833ed/tsapp-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c330016920daef69a0bad2cdc1cfef1a", "sha256": "7e32688320b153f452ca96461e1a3ccd824808347ad76bebdd7e929182bdc5a0" }, "downloads": -1, "filename": "tsapp-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c330016920daef69a0bad2cdc1cfef1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9031, "upload_time": "2012-11-13T13:00:39", "url": "https://files.pythonhosted.org/packages/73/a8/f747bbe0c290c68e2ab2b27d3a20721d69373b2475624212ed8bed855808/tsapp-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f0d2d85792703cd28e894efeb92ab54a", "sha256": "5bcf0423f569e508802e6b62f798d11f35c257a167addfb73e6aec082fa99385" }, "downloads": -1, "filename": "tsapp-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f0d2d85792703cd28e894efeb92ab54a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9047, "upload_time": "2012-11-13T15:41:54", "url": "https://files.pythonhosted.org/packages/f9/5a/852a3cbb220c99fb90ebbcbaf3628d00d1d6a011c9058aa4e6fb54ba9c68/tsapp-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a69181c2c3866a459077c56df87709f0", "sha256": "8cc829e0f8e1529c9b3b76cf92a82c2b6f949f93a764215bd0c7dee04c74eb1d" }, "downloads": -1, "filename": "tsapp-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a69181c2c3866a459077c56df87709f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9110, "upload_time": "2012-12-23T13:43:06", "url": "https://files.pythonhosted.org/packages/04/e5/87f98da906ad7c3b73d355f9ee5d92ed85b67c1c65741ef13d9934bf4568/tsapp-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "dbd79a8d5e6102d847d04ff35e8885a7", "sha256": "c5649c1db9cfe4ffd51b1fcd671d9e401235eebadff3b13ea898aa961cb198d1" }, "downloads": -1, "filename": "tsapp-0.3.0.tar.gz", "has_sig": false, "md5_digest": "dbd79a8d5e6102d847d04ff35e8885a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9153, "upload_time": "2013-01-17T11:59:32", "url": "https://files.pythonhosted.org/packages/b5/2d/61841af9cd53d032bf134698c4b12f2f77c38ecbf462d9f43959d4c15c32/tsapp-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "f7b9e087e590ea7802d2477dc530ddf5", "sha256": "57dedf9583d7f168ff50c509081005bcce3ab131c72d22f60e146e64e5706ada" }, "downloads": -1, "filename": "tsapp-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f7b9e087e590ea7802d2477dc530ddf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9269, "upload_time": "2013-01-17T15:15:32", "url": "https://files.pythonhosted.org/packages/90/60/d6e71a4af4a3a57d3923bd9787c8afdb9d2aca3d27dd351606c2e6b6b1be/tsapp-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "3d6fcfd896bf7d92929362af0cef3d01", "sha256": "b16d59fd086b52a93ac6a475029946f0ab84300c6ca07a9aca2e026a0e2c82e3" }, "downloads": -1, "filename": "tsapp-0.3.2.tar.gz", "has_sig": false, "md5_digest": "3d6fcfd896bf7d92929362af0cef3d01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9382, "upload_time": "2013-01-18T11:42:29", "url": "https://files.pythonhosted.org/packages/e5/76/36b7f28e512fb65036a172affe0505f1e41e060876977a35d4e7b50912e3/tsapp-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "67d14d26cf21f3d9fcdd078da1ced34f", "sha256": "627dbee2ee80974d81af998c52a7d9f39a5733bed5cae8713a57f4f9e9dc3580" }, "downloads": -1, "filename": "tsapp-0.3.3.tar.gz", "has_sig": false, "md5_digest": "67d14d26cf21f3d9fcdd078da1ced34f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9471, "upload_time": "2013-02-26T14:22:19", "url": "https://files.pythonhosted.org/packages/07/38/c72be5b0a407b074c2d852ede9fdb2a124bd19803dc7eefef81bc90289c9/tsapp-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0af3a8f649e38ef8005f7b4f373089b4", "sha256": "0a0e3f47dd1cbe6342e58319035d463730b871839c3fe102ad686fcc7fda50a4" }, "downloads": -1, "filename": "tsapp-0.3.4.tar.gz", "has_sig": false, "md5_digest": "0af3a8f649e38ef8005f7b4f373089b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9515, "upload_time": "2013-03-01T13:21:42", "url": "https://files.pythonhosted.org/packages/5e/56/ccfa7736d5952343f80198460ea410ce10c5ab33ba9d697d32af00c717c0/tsapp-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "7120d8b8adb89aeb1eff73dee53915d1", "sha256": "2384e124ce0116b48033eac0a2edde5fa94b31ccdabec6763e18a21a96b2778d" }, "downloads": -1, "filename": "tsapp-0.3.5.tar.gz", "has_sig": false, "md5_digest": "7120d8b8adb89aeb1eff73dee53915d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9524, "upload_time": "2013-03-01T16:15:02", "url": "https://files.pythonhosted.org/packages/de/1d/7a0e3fd23f7a33f13de58014a2ad4518c7c2084307f7fe33bb1e3a410bde/tsapp-0.3.5.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f68fb948a976e70e3d2c957dc6d7f0ea", "sha256": "b5818d8244638a086b4e821d2d324e2e7d491b472b9f8a835e3602df16014d60" }, "downloads": -1, "filename": "tsapp-0.4.0.tar.gz", "has_sig": false, "md5_digest": "f68fb948a976e70e3d2c957dc6d7f0ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9856, "upload_time": "2013-05-12T17:26:49", "url": "https://files.pythonhosted.org/packages/29/95/546115fb7dfe52fa01d558f510b4824e1557b72e5c78fc458ff56e1e7cff/tsapp-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "a0cfbc0ac2b45ebda9f44d5478f97ddf", "sha256": "ceba85505f350b2b3655591c17177287696d74455118db4310bcb748226960d9" }, "downloads": -1, "filename": "tsapp-0.5.0.tar.gz", "has_sig": false, "md5_digest": "a0cfbc0ac2b45ebda9f44d5478f97ddf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10842, "upload_time": "2013-05-14T13:52:24", "url": "https://files.pythonhosted.org/packages/55/27/5dbc08009904144116732b05646c574ff7c64b9dc6db517575a3f544175f/tsapp-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "41ef2e61e6dc51744d1330e7211844a1", "sha256": "b3ee5ac26108ce1eb4a12be50d859e9a09ae57a8a6bec17bfbc6178b7ee5ffec" }, "downloads": -1, "filename": "tsapp-0.6.0.tar.gz", "has_sig": false, "md5_digest": "41ef2e61e6dc51744d1330e7211844a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11087, "upload_time": "2013-05-18T13:57:52", "url": "https://files.pythonhosted.org/packages/7c/d0/665c686f31f499aaabf5ad70ebff6750b6371f7b036db2deb9b63fe19873/tsapp-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "7ef709e40bfa20f49711d86981c8c4f2", "sha256": "0f321d14b03823e825777eb165cba37ba560c4abdbddb7e438c368764b32cdec" }, "downloads": -1, "filename": "tsapp-0.6.1.tar.gz", "has_sig": false, "md5_digest": "7ef709e40bfa20f49711d86981c8c4f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11162, "upload_time": "2013-05-18T18:16:21", "url": "https://files.pythonhosted.org/packages/bd/ed/61fc673e855ae171ff96c1406a0dd659f2a8b480da85aa8e18fcb2d157cd/tsapp-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "adad1dfd59c7dc9e90ecb29514c192ed", "sha256": "e61df7e14dfb1a3f950516e362f482bfce5e9d308e99f0bc3c30e09d835e5542" }, "downloads": -1, "filename": "tsapp-0.7.0.tar.gz", "has_sig": false, "md5_digest": "adad1dfd59c7dc9e90ecb29514c192ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11207, "upload_time": "2013-06-15T17:01:29", "url": "https://files.pythonhosted.org/packages/72/11/46a43179641a58e1855a9ba23e99cda9179f9015d361ca5ed8254d8d8d66/tsapp-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "adad1dfd59c7dc9e90ecb29514c192ed", "sha256": "e61df7e14dfb1a3f950516e362f482bfce5e9d308e99f0bc3c30e09d835e5542" }, "downloads": -1, "filename": "tsapp-0.7.0.tar.gz", "has_sig": false, "md5_digest": "adad1dfd59c7dc9e90ecb29514c192ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11207, "upload_time": "2013-06-15T17:01:29", "url": "https://files.pythonhosted.org/packages/72/11/46a43179641a58e1855a9ba23e99cda9179f9015d361ca5ed8254d8d8d66/tsapp-0.7.0.tar.gz" } ] }