{ "info": { "author": "AivanF.", "author_email": "projects@aivanf.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: Freely Distributable", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Text Processing", "Topic :: Utilities" ], "description": "# Lemuras\n\nSometimes you cannot or don't want to use Pandas or similar advanced tool for data analysis, but still have a need to manipulate large tables with code. In such cases you can use **Lemuras** \u2013 it is a *pure Python* library without external dependencies. And if you have some experience of Pandas or SQL, then you can easily work with Lemuras.\n\nAgain, this library may be considered as a simplified analogue of Pandas, but not as a replacement. However, Lemuras is capable of processing an operation on a few tables with several thousands of rows in less than a second on a simple web server. So, if you need a tiny library to generate analytical reports or convert table formats, Lemuras is a good choice!\n\n## Features\n\n- Integration with *Jupyter IPython Notebook*: Lemuras objects are printed as nice tables.\n- Save / load **CSV files**, **JSON**, **HTML** tables, **SQL** (both query result and table creation code).\n- Automatic columns types detection, simple type conversion.\n- Access, add, edit, delete cells, rows, columns. Apply custom of built-in functions, lambdas, sort the data, iterate over rows.\n- Advanced processing of **columns**: you can take any table column, apply any function or lambda, do math with several columns and discrete values, compare them, check existing in other columns or lists, filter a table by it, or add it to a table, etc... In other words, you can do anything!\n- **Grouping by** *none*, *one*, or *multiple columns*, **aggregation** with *built-in* or *user-defined functions and lambdas* for specified or just all the columns.\n- **Merge** (**Join**): *inner / left / right / outer*.\n- **Tables concatenation** and **appending**.\n- **Pivot tables** creation.\n\nIt is tasted on Python **2.7** and Python **3.4-3.7**\n\n## Examples\n\nAll the features are described in notebook examples:\n\n1) [Basic things](https://github.com/AivanF/Lemuras/blob/master/examples/Example%201%20-%20Basic%20things.ipynb) \u2013 access to columns, cells, rows; add, delete, change their values; also filtering and sorting.\n1.5) [Functions applying](https://github.com/AivanF/Lemuras/blob/master/examples/Example%201.5%20-%20Functions%20Applying.ipynb) \u2013 apply functions or lambda expressions to columns or tables, change types, aggregate values, use your own or one of lots predefined useful functions (oncluding statistical ones).\n2) [Group by](https://github.com/AivanF/Lemuras/blob/master/examples/Example%202%20-%20Group%20By.ipynb) \u2013 grouping and combining (aggregating).\n3) [Merge / Join](https://github.com/AivanF/Lemuras/blob/master/examples/Example%203%20-%20Merge%20Join.ipynb) \u2013 such types: inner, outer, left, right.\n4) [Pivot table](https://github.com/AivanF/Lemuras/blob/master/examples/Example%204%20-%20Pivot%20table.ipynb) \u2013 create new tables with columns, rows and cells from another table.\n5) [Tables Concatenate / Append](https://github.com/AivanF/Lemuras/blob/master/examples/Example%205%20-%20Tables%20Concatenate%20Append.ipynb) \u2013 simple tables concatenation and appending.\n6) [Types, Read/Write, CSV, SQL, JSON, HTML](https://github.com/AivanF/Lemuras/blob/master/examples/Example%206%20-%20Types%20Read%20Write%20CSV%20SQL%20JSON%20HTML.ipynb) \u2013 description of Lemuras supported data types, saving to and loading from CSV, SQL, JSON, HTML formats.\n\nIn addition, there are several complex examples of solving a real world problems:\n\n1) [Retargeting results report](https://github.com/AivanF/Lemuras/blob/master/examples/Complex%20Example%20-%20Retargeting%20results%20report.ipynb)\n\n2) [Filtration by location area](https://github.com/AivanF/Lemuras/blob/master/examples/Complex%20Example%202%20-%20Filtering%20by%20Location%20Area.ipynb)\n\n3) [OLAP reports parser](https://github.com/AivanF/Lemuras/blob/master/examples/Complex%20Example%203%20-%20Parsing%20OLAP%20Reports.ipynb) with CSV, TSV, and even XLS support\n\nThe code of Lemuras is well-commented, also there are many unit-tests, so, you can easily find useful information there. Contributions are welcome.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AivanF/Lemuras", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "Lemuras", "package_url": "https://pypi.org/project/Lemuras/", "platform": "", "project_url": "https://pypi.org/project/Lemuras/", "project_urls": { "Homepage": "https://github.com/AivanF/Lemuras" }, "release_url": "https://pypi.org/project/Lemuras/1.2.2/", "requires_dist": null, "requires_python": "", "summary": "A small Python library to deal with big tables", "version": "1.2.2" }, "last_serial": 5681015, "releases": { "1.1.7": [ { "comment_text": "", "digests": { "md5": "d6f9ba659ac5d8c27f271e62c58b3905", "sha256": "a104842e79b31fedd507ca635f034d5e1e48f84c1f8cf1ff76aec33e80abe0a9" }, "downloads": -1, "filename": "lemuras-1.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d6f9ba659ac5d8c27f271e62c58b3905", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12548, "upload_time": "2018-12-05T01:02:11", "url": "https://files.pythonhosted.org/packages/3f/59/22fd14c4522f87d5fe0d569a8e8cad8422c4851c3e5088354facb744ad7e/lemuras-1.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b73df9879243a46cd854df3e6e15f6c", "sha256": "d180e0d4859eb11d0cfd37bb9f4a90ca8d09374bf5f088dbb0e8f7a16da3b114" }, "downloads": -1, "filename": "lemuras-1.1.7.tar.gz", "has_sig": false, "md5_digest": "1b73df9879243a46cd854df3e6e15f6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13260, "upload_time": "2018-12-05T01:02:13", "url": "https://files.pythonhosted.org/packages/a9/8f/91547ff822be84fe313b4a43652dbbb9b06f922dfe6458263a362746472a/lemuras-1.1.7.tar.gz" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "b9928f2ea9ee670413461381320232c6", "sha256": "5e02c7a4ce5286a03f9b26c4fe263f8f180d6aa3f58258b41fb969b82befa003" }, "downloads": -1, "filename": "Lemuras-1.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "b9928f2ea9ee670413461381320232c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26410, "upload_time": "2018-12-19T23:16:31", "url": "https://files.pythonhosted.org/packages/2a/ca/26a0c98eeeb725232de041910a37be4777006d4080631e70cdc83e029432/Lemuras-1.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdbb333864b28c7b9a67ab8dc9570612", "sha256": "cd23d7b87de0f97d2394772116934fe2d7f19c87cba32613a59ea30b15d8341b" }, "downloads": -1, "filename": "Lemuras-1.1.9.tar.gz", "has_sig": false, "md5_digest": "bdbb333864b28c7b9a67ab8dc9570612", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15140, "upload_time": "2018-12-19T23:16:37", "url": "https://files.pythonhosted.org/packages/40/47/341d00e62454e4dafc3d725767ad5588cbe6d16ee805dc446cc4deb0192d/Lemuras-1.1.9.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "617641512b9b4bbae9a53212143c3d1d", "sha256": "4a8df3acb9e8fc286bb8a9f9e435f108797bc3b8fd802fa71102373f18fc54dc" }, "downloads": -1, "filename": "Lemuras-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "617641512b9b4bbae9a53212143c3d1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24994, "upload_time": "2019-02-21T17:06:10", "url": "https://files.pythonhosted.org/packages/5d/51/925dbe57c60545d36cfd31f83b7016197c33db10c1a50a0e88761c128e9f/Lemuras-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98b1c2a616b1b7f7dc395d9818c9ab8c", "sha256": "572cd21f20bcb225e28e13318ea608b699fb92314e99aabb75302e98fa3b796a" }, "downloads": -1, "filename": "Lemuras-1.2.0.tar.gz", "has_sig": false, "md5_digest": "98b1c2a616b1b7f7dc395d9818c9ab8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19816, "upload_time": "2019-02-21T17:06:11", "url": "https://files.pythonhosted.org/packages/b8/11/87c299ab1deee5bd47938ed2a2a7c231a42abe81798055bf98b5b683af47/Lemuras-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "741eff93143901838327e0738418bac4", "sha256": "83f7d353701d5b95ac6a525857b66f5e1251c5700b177bd8db13dd362121ad2d" }, "downloads": -1, "filename": "Lemuras-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "741eff93143901838327e0738418bac4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29774, "upload_time": "2019-04-23T20:41:25", "url": "https://files.pythonhosted.org/packages/dc/4a/bce5ebfdcb5227ba49f93a3a0a0d56c885a4d1c59f511577f3cad7acfe8d/Lemuras-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f32ab23223f8efee95f57d11e860081", "sha256": "e9b5030994fd0c1f4c181be4a3b9cfb089078a25caf08d8d69078cba1ba3b085" }, "downloads": -1, "filename": "Lemuras-1.2.1.tar.gz", "has_sig": false, "md5_digest": "8f32ab23223f8efee95f57d11e860081", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24739, "upload_time": "2019-04-23T20:41:26", "url": "https://files.pythonhosted.org/packages/77/29/fb71f2055b6edb6be359104982f49e18c35c50d6baf9f257a82185499e8a/Lemuras-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "6791b83321f9ba02e7e5638e60c73443", "sha256": "a88b499e9ca944601d958838b8d533fe4cc0c9cfe1b9930618647afe5565f64b" }, "downloads": -1, "filename": "Lemuras-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6791b83321f9ba02e7e5638e60c73443", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30085, "upload_time": "2019-08-15T07:52:06", "url": "https://files.pythonhosted.org/packages/53/b4/7ba266e78e87ab3224db8eedc71f81f685859cc413104cc474ff20f3199e/Lemuras-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24c9c609d8d295ccde909102eac6e060", "sha256": "29cc7edc8334bd966b3b161e366973f50d0c50d6a2b0629f8891a1aedff92b4b" }, "downloads": -1, "filename": "Lemuras-1.2.2.tar.gz", "has_sig": false, "md5_digest": "24c9c609d8d295ccde909102eac6e060", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25126, "upload_time": "2019-08-15T07:52:09", "url": "https://files.pythonhosted.org/packages/f8/c3/ebbad66c2ccb2a705eca515820fdd4449f671109916ceab300e89ee480d9/Lemuras-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6791b83321f9ba02e7e5638e60c73443", "sha256": "a88b499e9ca944601d958838b8d533fe4cc0c9cfe1b9930618647afe5565f64b" }, "downloads": -1, "filename": "Lemuras-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6791b83321f9ba02e7e5638e60c73443", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30085, "upload_time": "2019-08-15T07:52:06", "url": "https://files.pythonhosted.org/packages/53/b4/7ba266e78e87ab3224db8eedc71f81f685859cc413104cc474ff20f3199e/Lemuras-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24c9c609d8d295ccde909102eac6e060", "sha256": "29cc7edc8334bd966b3b161e366973f50d0c50d6a2b0629f8891a1aedff92b4b" }, "downloads": -1, "filename": "Lemuras-1.2.2.tar.gz", "has_sig": false, "md5_digest": "24c9c609d8d295ccde909102eac6e060", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25126, "upload_time": "2019-08-15T07:52:09", "url": "https://files.pythonhosted.org/packages/f8/c3/ebbad66c2ccb2a705eca515820fdd4449f671109916ceab300e89ee480d9/Lemuras-1.2.2.tar.gz" } ] }