{ "info": { "author": "Pete Cacioppi", "author_email": "peter.cacioppi@opexanalytics.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "# ticdat\n\nGo [here](https://github.com/ticdat/ticdat/wiki/ticdat-status) for project status and installation\ninstructions. Go [here](https://ticdat.github.io/ticdat/) for documentation.\n\n`ticdat` is a Python package that provides lightweight, ORM style functionality around either a dict-of-dicts or\n`pandas.DataFrame` representation of tables. It is well suited for defining and validating the input data for complex\nsolve engines (i.e. optimization and scheduling-type problems).\n\n`ticdat` functionality is organized around two classes - `TicDatFactory` and `PanDatFactory`. Both classes define a\nsimple database style schema on construction. Data integrity rules can then be added in the form of foreign key\nrelationships, data field types (to include numerical ranges and allowed strings) and row predicates\n(functions that check if a given row violates a particular data condition). The factory classes can then be used to\nconstruct `TicDat`/`PanDat` objects that contain tables consistent with the defined schema. By design,\n`ticdat`, allows these data objects to violate the data integrity rules while providing convenient bulk query functions\nto determine where those violations occur.\n\n`TicDat` objects (created by a `TicDatFactory`) contain tables in a dict-of-dict format. The outer dictionary maps\nprimary key values to data rows. The inner dictionaries are data rows indexed by field names (similar to\n`csv.DictReader/csv.DictWriter`). Tables that do not have primary keys are rendered as a list of data row dictionaries.\n\n`PanDat` objects (created by `PanDatFactory`) render tables as `pandas.DataFrame` objects. The columns in each\n`DataFrame` will contain all of the primary key and data fields that were defined in the `PanDatFactory` schema. The\n`PanDatFactory` code can be thought of as implementing a shim library that organizes `DataFrame` objects into a\npredefined schema, and facilitates rich integrity checks based on schema defined rules.\n\nThe `ticdat` example library is focused on two patterns for building optimization engines - using `TicDatFactory` in\nconjunction with `gurobipy` and using `PanDatFactory` in conjunction with `amplpy`. That said, `ticdat` can also be\nused with libraries like `pyomo`, `pulp`, `docplex` and `xpress`. It also has functionality to support the OPL and\nLINGO modeling languages, although the AMPL support is far more mature.\n\n`ticdat`'s association with AMPL is particularly strong. The design goals of `ticdat` were inspired by AMPL\u2019s pattern\nof cleanly separating model from data, as well as its ability to thoroughly validate input data prior to solving.\nAMPL Optimization has endorsed `ticdat` as their preferred library for bridging the world\u2019s leading modeling language\n(AMPL) with Python\u2019s most powerful data analysis package (`pandas`).\n\nThe `ticdat` library is distributed under the BSD2 open source license.\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/ticdat/ticdat/", "keywords": "", "license": "BSD 2-Clause", "maintainer": "", "maintainer_email": "12samn@gmail.com", "name": "ticdat", "package_url": "https://pypi.org/project/ticdat/", "platform": "any", "project_url": "https://pypi.org/project/ticdat/", "project_urls": { "Homepage": "https://github.com/ticdat/ticdat/" }, "release_url": "https://pypi.org/project/ticdat/0.2.18/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.2.18" }, "last_serial": 5142429, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "65edcd85e63c62d2a43af84651a2ba00", "sha256": "5b6d54cfe6018f43442507f34bc23346590493736af6df6e8d55f80f88f1238a" }, "downloads": -1, "filename": "ticdat-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65edcd85e63c62d2a43af84651a2ba00", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 67935, "upload_time": "2016-07-08T18:59:21", "url": "https://files.pythonhosted.org/packages/4f/2c/66cb43c758dc40e3d31d276034bd38fefaf791f8935cdb00e215cabcde0f/ticdat-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c87c83d8edccd8a83ca48f8ee77448c", "sha256": "e199bd671e6ed6b8796e2d5c1e797d993e267fdb0de631787ba81e99bf7ec86e" }, "downloads": -1, "filename": "ticdat-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8c87c83d8edccd8a83ca48f8ee77448c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55161, "upload_time": "2016-07-08T18:59:25", "url": "https://files.pythonhosted.org/packages/84/e4/19e584e4f7f6d2948238239b2d107fd77cdcc65b0cdf90bb974618348751/ticdat-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "0b7209a8d187041ff2ce95e12613074a", "sha256": "a781abfedc023907b6f79207f7d22d2d8370ddad386f6a927d8149d0570c5be5" }, "downloads": -1, "filename": "ticdat-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b7209a8d187041ff2ce95e12613074a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 71587, "upload_time": "2016-07-23T02:38:40", "url": "https://files.pythonhosted.org/packages/12/eb/77ce133867c3fb396e5d14e2f06df90d24bccf3d3ef90ceace17312310da/ticdat-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e05f740d8e56d1c8b56c2d8316ccebd", "sha256": "ed2b30aac30ce48e4ea9f41c94794e4485d2adffc6c91ec4c5bff5593e32ce7b" }, "downloads": -1, "filename": "ticdat-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4e05f740d8e56d1c8b56c2d8316ccebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56420, "upload_time": "2016-07-23T02:38:42", "url": "https://files.pythonhosted.org/packages/cf/bd/0ca0c057d4883317b4589e064b7fc5e49bb548a25280d985a9644121696a/ticdat-0.2.1.tar.gz" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "1ce31e9c733c466c99c57db4e1a0ece4", "sha256": "0901ace4b797433e235d7fc86ace830842e9551e59cb6914830eb1822eeff74f" }, "downloads": -1, "filename": "ticdat-0.2.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ce31e9c733c466c99c57db4e1a0ece4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 111532, "upload_time": "2018-01-17T18:25:26", "url": "https://files.pythonhosted.org/packages/13/64/769df75c97aabab4a216a87254201970c2d3c88c2cef5fc4c7417d750713/ticdat-0.2.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f3bc62eb170d290b1180239872341f2", "sha256": "73204d872fadf2c2e8c2c0863d7c979a5f23993ab245f5ecaeef0a08b5e9c427" }, "downloads": -1, "filename": "ticdat-0.2.12.tar.gz", "has_sig": false, "md5_digest": "7f3bc62eb170d290b1180239872341f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92519, "upload_time": "2018-01-17T18:25:34", "url": "https://files.pythonhosted.org/packages/fe/cb/aac4c61ceae5b8266be86a26386e51ca166c499d6f9d1393766341cf5f2f/ticdat-0.2.12.tar.gz" } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "64004d1f5719d45ef39c5ef63979a10d", "sha256": "5d1da7d8aae01b0b8af9c409fc2faf0f60b4daf64096d5a2c2268b78622f2471" }, "downloads": -1, "filename": "ticdat-0.2.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64004d1f5719d45ef39c5ef63979a10d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122878, "upload_time": "2018-04-12T18:08:25", "url": "https://files.pythonhosted.org/packages/9b/d0/c228a48f2cb37864a02d6035789806ece3ba8878db87ef8eb57575373016/ticdat-0.2.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2450e352c016c348bc8708bb2a9d2799", "sha256": "11dd85c823b12c5aa0a78dcf29008047c73e591bed29f30536f6aa0cd9f90c68" }, "downloads": -1, "filename": "ticdat-0.2.13.tar.gz", "has_sig": false, "md5_digest": "2450e352c016c348bc8708bb2a9d2799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98086, "upload_time": "2018-04-12T18:08:33", "url": "https://files.pythonhosted.org/packages/b4/87/83c1aa206e6b97a234afe01f11ed8cc223cd520afffb3b8436aae846010e/ticdat-0.2.13.tar.gz" } ], "0.2.16": [ { "comment_text": "", "digests": { "md5": "1236d3cbd1e177a07a4eddae0baa9ecd", "sha256": "a90f68895050653157c590d70764d51aa40878ce8f2c6a7918c116c0ba4e8fa9" }, "downloads": -1, "filename": "ticdat-0.2.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1236d3cbd1e177a07a4eddae0baa9ecd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 155709, "upload_time": "2018-08-21T00:12:27", "url": "https://files.pythonhosted.org/packages/03/90/28d69fc4422c9380eec03c0ab61910a08d1d88c02b70b5782c8dfe65f3cc/ticdat-0.2.16-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "375b70ba517500e4738718fd1140c90d", "sha256": "59f1c0fa5c930b0de1ce1ba902c414c6fa613b0815a678b3068e00e2bd0c5dc0" }, "downloads": -1, "filename": "ticdat-0.2.16.tar.gz", "has_sig": false, "md5_digest": "375b70ba517500e4738718fd1140c90d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129219, "upload_time": "2018-08-21T00:12:09", "url": "https://files.pythonhosted.org/packages/5b/bb/675a62229f31bc3bc7e501b20be836c5cc613dddf4210a67bc6e15bec433/ticdat-0.2.16.tar.gz" } ], "0.2.18": [ { "comment_text": "", "digests": { "md5": "d705f5a2562cd2fc08fd4ed66d9a22c6", "sha256": "2420f6e3946ca20b6154174c07540b505489e2746f05e455439c5f375f61dc39" }, "downloads": -1, "filename": "ticdat-0.2.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d705f5a2562cd2fc08fd4ed66d9a22c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 146315, "upload_time": "2019-04-15T01:24:48", "url": "https://files.pythonhosted.org/packages/07/da/dc28a72a99b2be20afea83c3f81f697828569e26897a223fd547327b3a34/ticdat-0.2.18-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82d8dbfbcca8940d901b6274cc0463e3", "sha256": "d9cb3ce895b7c6ecc1b2c5b29d82a59e95325542518d9a468137cb7b8ed16f06" }, "downloads": -1, "filename": "ticdat-0.2.18.tar.gz", "has_sig": false, "md5_digest": "82d8dbfbcca8940d901b6274cc0463e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127346, "upload_time": "2019-04-15T01:24:50", "url": "https://files.pythonhosted.org/packages/23/6e/a157a92617947ff5ec39d8d7de6cb7fcdcbbd6b05b27cdd2ffba0ec1a545/ticdat-0.2.18.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "55a4d09415ba59a2d4aa4034d2e030f0", "sha256": "97bde0a1f9810fdc9ee05c7c0419aaa1fbc2f274a7ee3581dc96d80fcb396a3a" }, "downloads": -1, "filename": "ticdat-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55a4d09415ba59a2d4aa4034d2e030f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 73479, "upload_time": "2016-08-29T22:54:57", "url": "https://files.pythonhosted.org/packages/e3/4d/c1684ec9f3d09668772204c3a8d3e6c038aad7e1253c57fefd267215e657/ticdat-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8e1c4662e04a444088f8e1de6a3603f", "sha256": "ff50f3daa8728b43338d24b90a8e20ff7c1ced20f99162035f3ca69519b61a44" }, "downloads": -1, "filename": "ticdat-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b8e1c4662e04a444088f8e1de6a3603f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58529, "upload_time": "2016-08-29T22:55:00", "url": "https://files.pythonhosted.org/packages/f9/de/dd77108fdb62652bb82764f3ef4472c9598d6506fe34f02ee6c927ae89cd/ticdat-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "77b3c6b2f928d3869bc86b7e038f9f06", "sha256": "448d269e7eec8cadfdca2f1ee035a8ea48ddf89146ef6a1b1049b53429cbd501" }, "downloads": -1, "filename": "ticdat-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77b3c6b2f928d3869bc86b7e038f9f06", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 84081, "upload_time": "2016-11-07T17:33:38", "url": "https://files.pythonhosted.org/packages/01/6c/c7b2d26dd722492c2f7cf9bee8e59ab417fcb7ade845dc18970fae7f5116/ticdat-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8789d7bba7756e9d904140d4d4f6098c", "sha256": "6ecf96b3726b3644fbf34f078ad18f2a3ec9cef60bc45c5e83b09c8e33ab98df" }, "downloads": -1, "filename": "ticdat-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8789d7bba7756e9d904140d4d4f6098c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68592, "upload_time": "2016-11-07T17:34:10", "url": "https://files.pythonhosted.org/packages/72/85/022ed8a9e13ea73b3fa53a621b31981b455a1eef0a21f4b5ee6ad13b9a9c/ticdat-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "f82b9d338008c9004a12f285c3c19e81", "sha256": "b7101219391ad468712d0e25b208af34989ac0d664827314d80c268f4a1e20e9" }, "downloads": -1, "filename": "ticdat-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f82b9d338008c9004a12f285c3c19e81", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 83992, "upload_time": "2016-11-10T20:33:19", "url": "https://files.pythonhosted.org/packages/90/09/ef80b25da581864feccea621e0f457cbb797a49de4394270d597493dd35e/ticdat-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f8675c55fa5f28b15d8f52ff0b4ba9c", "sha256": "8dd8bbe1f8cbbee0828ffcf2916f635669a4ce15ad347cfa5f48c750056e5dcd" }, "downloads": -1, "filename": "ticdat-0.2.4.tar.gz", "has_sig": false, "md5_digest": "2f8675c55fa5f28b15d8f52ff0b4ba9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68454, "upload_time": "2016-11-10T20:33:05", "url": "https://files.pythonhosted.org/packages/17/8a/663bc981b73342fabb35f42d5bba0dbe00f3a9f25f746d5fcae2febee39f/ticdat-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "93b8e33a1038b946b8376a7104d19712", "sha256": "fd89831189cc08c880e8200b0f63d65e18d6b99036a6283aab327c0e578fb8d5" }, "downloads": -1, "filename": "ticdat-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "93b8e33a1038b946b8376a7104d19712", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 97033, "upload_time": "2017-03-07T20:36:56", "url": "https://files.pythonhosted.org/packages/91/e1/7776756d641ef71f8d664804dbbfa6ccc59130a18a5d42d262f7cba131d6/ticdat-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76f8feed5a0588ed836fb1331e37c00d", "sha256": "f668b54b4f8d82cde913b6d956524f553baa79572dc51732d9532d629574c90a" }, "downloads": -1, "filename": "ticdat-0.2.5.tar.gz", "has_sig": false, "md5_digest": "76f8feed5a0588ed836fb1331e37c00d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80950, "upload_time": "2017-03-07T20:38:32", "url": "https://files.pythonhosted.org/packages/4f/b3/6c9e96d4ac67b8b19f8b54ff1dedfe1585e12d3eccad5d4f69df7a181d6f/ticdat-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "716c3f6e28cd763eea9a12c9d5d2e507", "sha256": "74d8c32c574865f71af0ca3895e55077993e953fb624db6d7358d18bc35ed02b" }, "downloads": -1, "filename": "ticdat-0.2.6.tar.gz", "has_sig": false, "md5_digest": "716c3f6e28cd763eea9a12c9d5d2e507", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82987, "upload_time": "2017-03-17T23:34:00", "url": "https://files.pythonhosted.org/packages/6f/72/f030a66eae22867cd09d5614cf43887b5a1f86ce258c598d5be6cfd24c0f/ticdat-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "694c4d4e6dd8ee2d328d5937dd9dd2b5", "sha256": "4305c6aa772df86127c27f0fd0edb5c6eb0961ea0cd3b6fd9056790783b9d925" }, "downloads": -1, "filename": "ticdat-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "694c4d4e6dd8ee2d328d5937dd9dd2b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 111357, "upload_time": "2017-06-14T20:49:13", "url": "https://files.pythonhosted.org/packages/bb/28/e2cfb8620f1dda41b7650f2cdc5aaf4e6bb7f45195f24352309624ea0640/ticdat-0.2.7-py2.py3-none-any.whl" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "f53327fe15362eab2a7b4b3e4609950f", "sha256": "66552c32efc137fa354a1d04b0ef4a9206e9d8161251ce2258313f1a2f50e704" }, "downloads": -1, "filename": "ticdat-0.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f53327fe15362eab2a7b4b3e4609950f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 106038, "upload_time": "2017-06-23T23:48:04", "url": "https://files.pythonhosted.org/packages/54/8c/255be6db21289ddebd5401a17f63a256a02f73a1f69c14c5ffecacefa824/ticdat-0.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5ffc5d52b827f60e642a1de51af1566", "sha256": "31b71e523e63fa461efcf5b4c879869ab3a8275ebc574727935b5fb33cafea73" }, "downloads": -1, "filename": "ticdat-0.2.8.tar.gz", "has_sig": false, "md5_digest": "a5ffc5d52b827f60e642a1de51af1566", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88962, "upload_time": "2017-06-23T23:48:20", "url": "https://files.pythonhosted.org/packages/0e/55/878c0782205cb911e204da9d6cba4849a4c7575539cd127fdf505e207226/ticdat-0.2.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d705f5a2562cd2fc08fd4ed66d9a22c6", "sha256": "2420f6e3946ca20b6154174c07540b505489e2746f05e455439c5f375f61dc39" }, "downloads": -1, "filename": "ticdat-0.2.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d705f5a2562cd2fc08fd4ed66d9a22c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 146315, "upload_time": "2019-04-15T01:24:48", "url": "https://files.pythonhosted.org/packages/07/da/dc28a72a99b2be20afea83c3f81f697828569e26897a223fd547327b3a34/ticdat-0.2.18-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82d8dbfbcca8940d901b6274cc0463e3", "sha256": "d9cb3ce895b7c6ecc1b2c5b29d82a59e95325542518d9a468137cb7b8ed16f06" }, "downloads": -1, "filename": "ticdat-0.2.18.tar.gz", "has_sig": false, "md5_digest": "82d8dbfbcca8940d901b6274cc0463e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127346, "upload_time": "2019-04-15T01:24:50", "url": "https://files.pythonhosted.org/packages/23/6e/a157a92617947ff5ec39d8d7de6cb7fcdcbbd6b05b27cdd2ffba0ec1a545/ticdat-0.2.18.tar.gz" } ] }