{ "info": { "author": "Samuel Kolb", "author_email": "samuel.kolb@me.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "# TaCle: Tabular Constraint Learner\nTaCLe is a constraint learner designed for usage in spreadsheets and tabular data.\n\n## Installation\n\n pip install tacle\n\n## Using TaCLe\n\n### Running TaCLe from command line\nTaCLe can be used from command line to analyze a CSV file:\n\n python -m tacle data/magic_ice_cream.csv\n\nThis returns a list of constraints in the file:\n\n ALLDIFFERENT(T2[:, 1])\n ALLDIFFERENT(T1[:, 4])\n ALLDIFFERENT(T1[:, 5])\n ALLDIFFERENT(T1[:, 6])\n T1[:, 1] -> T2[:, 1]\n T1[:, 6] = SUM(T1[:, 3:5], row)\n\n**Filter output**\n\nIf you are interested in specific types of constraints, you can filter the output:\n\n python -m tacle data/magic_ice_cream.csv -f \"foreign-key\" # Report only foreign keys\n python -m tacle data/magic_ice_cream.csv -f \"\" # Report only formulas -- use for only constraints\n\n**Tables**\n\nTo view the tables that TaCLe finds in a file you can run:\n\n python -m tacle data/magic_ice_cream.csv -t\n\n\nThis returns the tables and blocks found by TaCLe:\n\n Table T1, (1:9, 0:7)\n Columns 0-2 (string), Columns 2-6 (int), Columns 6-7 (string)\n\n Table T2, (11:15, 0:2)\n Columns 0-1 (string), Columns 1-2 (int)\n\n\n## Papers\nRead more about how TaCLe works in one of our two papers [journal version](https://link.springer.com/article/10.1007/s10994-017-5640-x), [demo paper](https://dl.acm.org/citation.cfm?id=3133193).\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/ML-KULeuven/tacle", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tacle", "package_url": "https://pypi.org/project/tacle/", "platform": "", "project_url": "https://pypi.org/project/tacle/", "project_urls": { "Homepage": "https://github.com/ML-KULeuven/tacle" }, "release_url": "https://pypi.org/project/tacle/0.7.12/", "requires_dist": [ "numpy", "python-constraint", "matplotlib", "pandas" ], "requires_python": ">=3.5.0", "summary": "TaCLe is a tool for learning constraints and formulas in spreadsheets.", "version": "0.7.12" }, "last_serial": 5129914, "releases": { "0.7.1": [ { "comment_text": "", "digests": { "md5": "238a444b885242033c0dfb72e8befeb3", "sha256": "798a04289d8eea4901611d40a9cb5c26ead893c6b92388c710bbd2d784a3903f" }, "downloads": -1, "filename": "tacle-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "238a444b885242033c0dfb72e8befeb3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 66433, "upload_time": "2019-04-09T11:49:39", "url": "https://files.pythonhosted.org/packages/6b/e1/008278cfe5d011148012d5fd4b5051f86eac24b8787b8eefec2d38fb3683/tacle-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "105e229b048a99e4747267f4203bec12", "sha256": "1f2587c3b18731a0d98c55397cdff0a3f79bffc7154e63c75875690a00607bc6" }, "downloads": -1, "filename": "tacle-0.7.1.tar.gz", "has_sig": false, "md5_digest": "105e229b048a99e4747267f4203bec12", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 54802, "upload_time": "2019-04-09T11:49:41", "url": "https://files.pythonhosted.org/packages/7d/64/c5ef89981dad62c95bf3b6eaab3c0a16c1656d5e3601af9c78fbc01b9364/tacle-0.7.1.tar.gz" } ], "0.7.10": [ { "comment_text": "", "digests": { "md5": "0b8f7339bcb2bafd6981d3139ffbe52a", "sha256": "f81757ae156f9099a04e019c2c9d8b59f48fc64cad83f5dddb6c6da716c61a08" }, "downloads": -1, "filename": "tacle-0.7.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b8f7339bcb2bafd6981d3139ffbe52a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68712, "upload_time": "2019-04-11T16:37:15", "url": "https://files.pythonhosted.org/packages/2e/74/d8572b40f549197b2549dc28593d819c1c6ed73430de761047cd55436baa/tacle-0.7.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "154e25d1dffbc2217f6f9bfa8b104dfb", "sha256": "07ea857c1379b0914c500641276eff8e66e5452e4c15ee26e0619855f958d2c3" }, "downloads": -1, "filename": "tacle-0.7.10.tar.gz", "has_sig": false, "md5_digest": "154e25d1dffbc2217f6f9bfa8b104dfb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56149, "upload_time": "2019-04-11T16:37:16", "url": "https://files.pythonhosted.org/packages/68/7a/2e65f51017e5fb14e43832744e4d4a90813269f7d00fb3b1db40386b1bda/tacle-0.7.10.tar.gz" } ], "0.7.11": [ { "comment_text": "", "digests": { "md5": "f38874f0763e9b16e1ae377c35dbded7", "sha256": "7cba7b4acb05d73d393544285e6b698474aaadd0af5d6dc826329306dac0a5ee" }, "downloads": -1, "filename": "tacle-0.7.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f38874f0763e9b16e1ae377c35dbded7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68723, "upload_time": "2019-04-11T16:39:54", "url": "https://files.pythonhosted.org/packages/0d/db/153c172ff49e6eeee9274884a474ac5095bde04acbed1c68d44630cae0dd/tacle-0.7.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8193bec5167035f9756d11f255db412c", "sha256": "bcd58b85a1b1407278a0333196abce0c4f4461f6cd3d1c7fb5c2e3a91bf9947f" }, "downloads": -1, "filename": "tacle-0.7.11.tar.gz", "has_sig": false, "md5_digest": "8193bec5167035f9756d11f255db412c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56151, "upload_time": "2019-04-11T16:39:56", "url": "https://files.pythonhosted.org/packages/f1/fe/f37b99d697c38c0381f9227d1a3304b34317258c96ed56ff71fa07ee6f1e/tacle-0.7.11.tar.gz" } ], "0.7.12": [ { "comment_text": "", "digests": { "md5": "99ec56bf1aab59f086c20e7f6a8e019c", "sha256": "09a65c3faf3bde284a618dc29a18dc89865c5e89fe89e5415c84e6437d6ee4e8" }, "downloads": -1, "filename": "tacle-0.7.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99ec56bf1aab59f086c20e7f6a8e019c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68775, "upload_time": "2019-04-11T16:45:39", "url": "https://files.pythonhosted.org/packages/14/ce/420ae263965800c085598425cd277ff179129e5ead4dec9f8be02a54595e/tacle-0.7.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbc3e2401eca5673619aac093ae1c61f", "sha256": "4407ece13b92b8099bd6ed55544ef625a005891736d2de46ddb570897a408532" }, "downloads": -1, "filename": "tacle-0.7.12.tar.gz", "has_sig": false, "md5_digest": "cbc3e2401eca5673619aac093ae1c61f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56207, "upload_time": "2019-04-11T16:45:41", "url": "https://files.pythonhosted.org/packages/85/6f/2fa17bac08577ba7bc7ff70400e08a41feb4b7c63751315d0cfcd36afd03/tacle-0.7.12.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "bf2b025aaf85cc40da5148891475e33f", "sha256": "435801cb706be96723c3bb8e86e117e9f50be302bc8d1db6805b2977530e0993" }, "downloads": -1, "filename": "tacle-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf2b025aaf85cc40da5148891475e33f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 66542, "upload_time": "2019-04-09T11:56:11", "url": "https://files.pythonhosted.org/packages/90/26/99b0459a66134830ae207d55beac898052da2348933bc147a0f52cdf9ba1/tacle-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0efdad9cee383064335e501253f161f8", "sha256": "8a83f6528f3170072bb6104a1320f406aa4d5060a9c28a052448fc3b6d2d5c7d" }, "downloads": -1, "filename": "tacle-0.7.2.tar.gz", "has_sig": false, "md5_digest": "0efdad9cee383064335e501253f161f8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 55037, "upload_time": "2019-04-09T11:56:12", "url": "https://files.pythonhosted.org/packages/f8/61/92ef6d44b9988a93ee57fd5401f4c1b8602e686344414048e21027456a52/tacle-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "fab7bd72dc69711ab8a302536ec0254f", "sha256": "c3703922cd248002e1ce9c1efc6287cb5d2f18fa6de92a8863d2f5d001ed9d32" }, "downloads": -1, "filename": "tacle-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fab7bd72dc69711ab8a302536ec0254f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 66954, "upload_time": "2019-04-09T12:16:14", "url": "https://files.pythonhosted.org/packages/3c/89/a541d093a745286def2d079c5e969e4fa0fc34b119438274f4d023db8291/tacle-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09f024120be54555bc152698dc8b88ed", "sha256": "248c39ea00182756eba5ad21004406b97a9c1198b0d63d1998fb100a0d22afb5" }, "downloads": -1, "filename": "tacle-0.7.3.tar.gz", "has_sig": false, "md5_digest": "09f024120be54555bc152698dc8b88ed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 55918, "upload_time": "2019-04-09T12:16:15", "url": "https://files.pythonhosted.org/packages/0d/5c/15087d1c0dd90fabea99701b09ecf1da10ca5288378d374debc48a7fa149/tacle-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "dda74053d82e9b21107309b6305233b6", "sha256": "b79981327649be60331d1241679ef522834c1e430a429cd99423166555a06b0e" }, "downloads": -1, "filename": "tacle-0.7.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dda74053d82e9b21107309b6305233b6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68499, "upload_time": "2019-04-09T12:57:30", "url": "https://files.pythonhosted.org/packages/4f/85/b3e72f18c9750da46cfbf3b22dae42006257bcbd8b26e58dea1b6ebd7e2d/tacle-0.7.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee44b1111de1d36b1908192af30ef66f", "sha256": "8445bfc247f2725ef469d658abc26155a5c5b9b7d3096c692247ffc5348cc921" }, "downloads": -1, "filename": "tacle-0.7.4.tar.gz", "has_sig": false, "md5_digest": "ee44b1111de1d36b1908192af30ef66f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 55975, "upload_time": "2019-04-09T12:57:31", "url": "https://files.pythonhosted.org/packages/57/60/a7c5a79ff0268617728d8f272d3ec1586abd7f546082ad1654642c294fa8/tacle-0.7.4.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "7fd3510bbcf788b2b9c152aea6b1b59e", "sha256": "06c0f327f17fdebdaa9dba52a0c39fa24972f21f189274280bd38feb2cacbd29" }, "downloads": -1, "filename": "tacle-0.7.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fd3510bbcf788b2b9c152aea6b1b59e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68575, "upload_time": "2019-04-09T13:36:13", "url": "https://files.pythonhosted.org/packages/39/80/6fd5b31da7b7c094dd7fd32a68784a8f2057708bb1f61e26be2455fb12dd/tacle-0.7.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a422543e63332494a9142f8115902970", "sha256": "f624b110bce3e8d7d4a8d87377b285169ee06666d3d37a2e3794befdbe944b13" }, "downloads": -1, "filename": "tacle-0.7.5.tar.gz", "has_sig": false, "md5_digest": "a422543e63332494a9142f8115902970", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56042, "upload_time": "2019-04-09T13:36:15", "url": "https://files.pythonhosted.org/packages/8a/5e/9402df8a1af9888bf6ec34236e6bb9daa6866a5b09a07b8ef24a2af42215/tacle-0.7.5.tar.gz" } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "30b319462126c73b2aa51e36eb412803", "sha256": "079c47b7b5ebc6abe795f4b17bceb0f3f2a52fdef3518a3f892763f806a8a271" }, "downloads": -1, "filename": "tacle-0.7.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30b319462126c73b2aa51e36eb412803", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68606, "upload_time": "2019-04-11T12:01:45", "url": "https://files.pythonhosted.org/packages/f2/7f/ccb0abec6edbe8595d87b82eebff49999905f474b026142416b1a05efaf4/tacle-0.7.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49605185385cfd310bead055fb0d2908", "sha256": "c4421688bda2a97a8b2b62f04303e9f9c69ef497a8142e4c0f2a8ffad69ac751" }, "downloads": -1, "filename": "tacle-0.7.6.tar.gz", "has_sig": false, "md5_digest": "49605185385cfd310bead055fb0d2908", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56076, "upload_time": "2019-04-11T12:01:47", "url": "https://files.pythonhosted.org/packages/a5/3a/c87c162d9062f7221d83a45538f85098943402347645b2f33338e17c1989/tacle-0.7.6.tar.gz" } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "3730cd73ec40f494fb9575369a4c5437", "sha256": "7e34cf62bb59155630b8ebc8cc39d6f138d683183d597accd7b76cdb6224c44a" }, "downloads": -1, "filename": "tacle-0.7.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3730cd73ec40f494fb9575369a4c5437", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68622, "upload_time": "2019-04-11T12:03:41", "url": "https://files.pythonhosted.org/packages/8e/78/eb88249a5c2ac7a573550a614f5160b3b65b17886f59a0689f84bebca119/tacle-0.7.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d74faf6f8c908ce3aade29a4af2dc58", "sha256": "5221191bc86501d6c777da8a94f7949954d546f0cc3f16048e6f10c46f53b7f7" }, "downloads": -1, "filename": "tacle-0.7.7.tar.gz", "has_sig": false, "md5_digest": "9d74faf6f8c908ce3aade29a4af2dc58", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56085, "upload_time": "2019-04-11T12:03:43", "url": "https://files.pythonhosted.org/packages/73/ef/34c60d3c0f4f52193f54a5759de21ef7b7b3e5f4dc11e766873033f275c3/tacle-0.7.7.tar.gz" } ], "0.7.8": [ { "comment_text": "", "digests": { "md5": "29c6f5849507a6bdc8e2ef51ea5a79b3", "sha256": "8f922b962f466c4a5a208c4edd51770244941bb9ee75c1edd7d66db79f052142" }, "downloads": -1, "filename": "tacle-0.7.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29c6f5849507a6bdc8e2ef51ea5a79b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68625, "upload_time": "2019-04-11T12:04:29", "url": "https://files.pythonhosted.org/packages/f7/77/038ec0120484253cd661a6561143ecf3cb8e431d35f47e37bed9911e38c0/tacle-0.7.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7fd4fa87c2b6172d772070618e276b7", "sha256": "2eae6b4a1cca5ac2c4e6274dfddd80c9aabcf88ba91d337dc8b339c28f6616d0" }, "downloads": -1, "filename": "tacle-0.7.8.tar.gz", "has_sig": false, "md5_digest": "e7fd4fa87c2b6172d772070618e276b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56084, "upload_time": "2019-04-11T12:04:30", "url": "https://files.pythonhosted.org/packages/f2/01/0abd824659843c77a5155903247952847f0ce02ae048fd022cb2453e41fb/tacle-0.7.8.tar.gz" } ], "0.7.9": [ { "comment_text": "", "digests": { "md5": "de356cf663775c8679327bfe628fcddb", "sha256": "3df0a6d4b4cb1c6135b0fc2bca1f4815140ba07da503e6540c0d3a0c8e48d797" }, "downloads": -1, "filename": "tacle-0.7.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de356cf663775c8679327bfe628fcddb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68705, "upload_time": "2019-04-11T16:36:19", "url": "https://files.pythonhosted.org/packages/42/d9/d9a7d554f2939e5ae200346318e9d0903aad3b6d14bc40bbfa37c43f7e86/tacle-0.7.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2747f791fd2f8924e9d610b68d20bc2", "sha256": "15fc76c8490c94450d8091e8414d65fc02f839c238464a78dfde5268490511a4" }, "downloads": -1, "filename": "tacle-0.7.9.tar.gz", "has_sig": false, "md5_digest": "e2747f791fd2f8924e9d610b68d20bc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56144, "upload_time": "2019-04-11T16:36:21", "url": "https://files.pythonhosted.org/packages/cc/ba/9ce23808b974aba18c65dabbbd5f1705bf63787ff47fd09b989a1092f53d/tacle-0.7.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "99ec56bf1aab59f086c20e7f6a8e019c", "sha256": "09a65c3faf3bde284a618dc29a18dc89865c5e89fe89e5415c84e6437d6ee4e8" }, "downloads": -1, "filename": "tacle-0.7.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99ec56bf1aab59f086c20e7f6a8e019c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 68775, "upload_time": "2019-04-11T16:45:39", "url": "https://files.pythonhosted.org/packages/14/ce/420ae263965800c085598425cd277ff179129e5ead4dec9f8be02a54595e/tacle-0.7.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbc3e2401eca5673619aac093ae1c61f", "sha256": "4407ece13b92b8099bd6ed55544ef625a005891736d2de46ddb570897a408532" }, "downloads": -1, "filename": "tacle-0.7.12.tar.gz", "has_sig": false, "md5_digest": "cbc3e2401eca5673619aac093ae1c61f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 56207, "upload_time": "2019-04-11T16:45:41", "url": "https://files.pythonhosted.org/packages/85/6f/2fa17bac08577ba7bc7ff70400e08a41feb4b7c63751315d0cfcd36afd03/tacle-0.7.12.tar.gz" } ] }