{ "info": { "author": "Brian Kirkpatrick", "author_email": "code@tythos.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Topic :: Database :: Database Engines/Servers", "Topic :: Internet :: WWW/HTTP", "Topic :: Scientific/Engineering :: Information Analysis" ], "description": "pyroclast\r\n=========\r\n\r\nYou know what's awesome? Setting up a REST-ful server you can start with\r\na single command, out-of-the-box.\r\n\r\nYou know what's even cooler? Adding file resources to that server just\r\nby dragging and dropping said files into a folder.\r\n\r\nWelcome to pyroclast.\r\n\r\nGet Started\r\n===========\r\n\r\nTo start a Pyroclast instance, simply point the Python interpreter to\r\nthe server.py file:\r\n\r\n::\r\n\r\n python server.py\r\n\r\nAlternatively, you can import server and start an instance manually from\r\nwithin Python:\r\n\r\n::\r\n\r\n from pyroclast import server\r\n server.start()\r\n\r\nOnce the server is started, you will see a blank HTTP response for\r\n127.0.0.1:1337. This means it's working!\r\n\r\nGet Served\r\n==========\r\n\r\nWithin the Pyroclast package, the 'data/' folder contains all files your\r\nserver will host. This can include:\r\n\r\n- JavaScript Object Notation files (.JSON)\r\n- Comma-Seperated Value files (.CSV)\r\n- Excel files (.XLS, .XLSX)\r\n- SQLite database files (.SQL)\r\n- UnQLite database files (.UNQ)\r\n- eXtensible Markup Language files (.XML)\r\n\r\nTo add a file, simply copy it into the Pyroclast package's 'data/'\r\nfolder and the Pyroclast server will do the rest.\r\n\r\nAlternatively, you can serve a file procedurally using the data module's\r\nserve() function, which will copy directory contents into 'data/':\r\n\r\n::\r\n\r\n from pyroclast import data\r\n data.serve('/path/to/my/file.xlsx')\r\n\r\nGet Your Data\r\n=============\r\n\r\nOnce your server is up and running, you can query files from a URL based\r\non the file path relative to 'data/'--i.e., if 'test.xlsx' is in\r\n'data/', it is accessed by the URL 'http://127.0.0.1:1337/test.xlsx'.\r\n\r\nAll data queried will be returned in one of two formats:\r\n\r\n- A CSV-formatted text table (for flat data table formats, like .CSV,\r\n .XLS/.XLSX, and .SQL)\r\n- A JSON-formatted text tree (for object hierarchy formats, like .JSON,\r\n .XML, and .UNQ)\r\n\r\nSpecific subsets of data from a source can be selected using the query\r\nsegment of the URL (i.e., ?key=value&key2=value2). In addition to\r\ndown-selecting the returned data set based on attribute key-value pairs,\r\nthere are several format-specific keys that can be used. (Note that\r\nthere are no format-specific keys for .JSON, .XML, and .CSV formats).\r\n\r\n.XLS/.XLSX\r\n----------\r\n\r\nExcel spreadsheets can contain multiple sheets. Pyroclast assumes each\r\nqueried sheet is a flat table starting from the first row (a header) and\r\nfirst column. Specific sheets can be selected in one of two ways:\r\n\r\n- Passing the name of the desired sheet as the value of the '\\_sheet'\r\n key\r\n- Passing the index of the desired sheet (starting with 0) as the value\r\n of the '\\_sheet' key\r\n\r\nIn cases where no '\\_sheet' value is given, Pyroclast will default to\r\nthe first sheet in the file.\r\n\r\nIn cases where sheets are given integer values as names, Pyroclast will\r\ndefault to the string interpretation.\r\n\r\n.SQL\r\n----\r\n\r\nSQLite database files require a query indicate a specific table. This is\r\ndone by passing the desired table name as a value of the '\\_table' key.\r\nIf the '\\_table' key is not specified, an error will be raised.\r\n\r\n.UNQ\r\n----\r\n\r\nUnQLite is a funny beast. .UNQ database files can contain both key-value\r\npairs AND collections of related object hierarchies.\r\n\r\n- The '\\_collection' key can be used to indicate a specific collection.\r\n- The '\\_key' key can be used to indicate the key of a specific\r\n key-value pair.\r\n\r\nIf neither '\\_collection' or '\\_key' is indicated, Pyroclast will return\r\nall contents of the database. Key-value pairs will be included in the\r\nresponse twice:\r\n\r\n- Once as single-entry dictionaries at the root level of the response\r\n- Once as entries to a dictionary assigned to the '\\_root' key", "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/Tythos/pyroclast", "keywords": "rest server json csv sqlite unqlite excel xml", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "pyroclast", "package_url": "https://pypi.org/project/pyroclast/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyroclast/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Tythos/pyroclast" }, "release_url": "https://pypi.org/project/pyroclast/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Basic Python-based data server for exposing flat table and object hierarchy files via REST-ful queries", "version": "1.0.1" }, "last_serial": 1847177, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "98f8254e5038a856f1d69472b3bf185b", "sha256": "e4541648eb25a5b3e7a9f2d9160099a9f66cac04f17a59c42bdbad482a10c297" }, "downloads": -1, "filename": "pyroclast-0.9.0.zip", "has_sig": false, "md5_digest": "98f8254e5038a856f1d69472b3bf185b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48004, "upload_time": "2015-12-04T20:28:53", "url": "https://files.pythonhosted.org/packages/03/72/ca1095a5e341370b095f5e6388d16243b859338358e770c02fd50644d222/pyroclast-0.9.0.zip" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "76e3831b2033d79fac68f9dcc3a877f6", "sha256": "f2ce3e42f4b1fb3a78805000c26de3aa9f7f3d15dcd14da5cd30295415fb2ca4" }, "downloads": -1, "filename": "pyroclast-0.9.1.zip", "has_sig": false, "md5_digest": "76e3831b2033d79fac68f9dcc3a877f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48706, "upload_time": "2015-12-04T20:46:57", "url": "https://files.pythonhosted.org/packages/8f/db/c793a82d1c009bd45a098863b17f56d357d8e5449bf53c8cddd59310fe05/pyroclast-0.9.1.zip" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "a0407b6ca27591f81e9fa48e692ebb51", "sha256": "00ece5dab75e874d64354434087a839e32426ef9a17a1ee08e7d0d91c29dbc40" }, "downloads": -1, "filename": "pyroclast-0.9.2.zip", "has_sig": false, "md5_digest": "a0407b6ca27591f81e9fa48e692ebb51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48699, "upload_time": "2015-12-04T21:07:29", "url": "https://files.pythonhosted.org/packages/bf/2e/bc7a42e2c122abeead3b2102f97a4d4d5c792128ca29a13127f95d002906/pyroclast-0.9.2.zip" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "5fbdc90b73cb4cc20e0b17dcb3ea5a97", "sha256": "3f4c39fd5e27859a890c75bc86428935a8324b23e61849072469e265f50c09ad" }, "downloads": -1, "filename": "pyroclast-0.9.3.zip", "has_sig": false, "md5_digest": "5fbdc90b73cb4cc20e0b17dcb3ea5a97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51853, "upload_time": "2015-12-04T21:15:10", "url": "https://files.pythonhosted.org/packages/d6/2f/f4cdcce1a5dcb2b296e051352f0ea8c7ac6cb8ace204846f4b80325ccef4/pyroclast-0.9.3.zip" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "f2fffddbc10f40ca71c843a67c7e2cf8", "sha256": "11b50951ee65dac789ce43b31e887f67979df5915a1b34094f9ee4f2e6c58335" }, "downloads": -1, "filename": "pyroclast-0.9.4.zip", "has_sig": false, "md5_digest": "f2fffddbc10f40ca71c843a67c7e2cf8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51773, "upload_time": "2015-12-04T21:18:00", "url": "https://files.pythonhosted.org/packages/2a/b4/261c54cd688252d9b5efa7e4117c3d5e69e0821c15eeaf3d5580696effe9/pyroclast-0.9.4.zip" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "dc697849573eaa7335d3adf270d6b569", "sha256": "db42dd487f7ffcc0798fb88e891a405862d153ca82d31c772427ffab438d04ea" }, "downloads": -1, "filename": "pyroclast-0.9.5.zip", "has_sig": false, "md5_digest": "dc697849573eaa7335d3adf270d6b569", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51801, "upload_time": "2015-12-04T21:19:01", "url": "https://files.pythonhosted.org/packages/46/16/ba4476734a07d0388cc1079d917ed848ec3f31fa0f95e3f8313c47df4c0e/pyroclast-0.9.5.zip" } ], "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "ef6457e437f307092597a9feaeb4cfa5", "sha256": "1c623e8946c70d56dbc48da450b643f524d0e9db102359530696fe7ad5428c22" }, "downloads": -1, "filename": "pyroclast-1.0.1.zip", "has_sig": false, "md5_digest": "ef6457e437f307092597a9feaeb4cfa5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51790, "upload_time": "2015-12-04T21:26:37", "url": "https://files.pythonhosted.org/packages/28/65/d367ea4a57aef089b25c5b9f9a9f5225e765bb386cc1e1af766ec1a5806a/pyroclast-1.0.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ef6457e437f307092597a9feaeb4cfa5", "sha256": "1c623e8946c70d56dbc48da450b643f524d0e9db102359530696fe7ad5428c22" }, "downloads": -1, "filename": "pyroclast-1.0.1.zip", "has_sig": false, "md5_digest": "ef6457e437f307092597a9feaeb4cfa5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51790, "upload_time": "2015-12-04T21:26:37", "url": "https://files.pythonhosted.org/packages/28/65/d367ea4a57aef089b25c5b9f9a9f5225e765bb386cc1e1af766ec1a5806a/pyroclast-1.0.1.zip" } ] }