{ "info": { "author": "Dylan Baker, Josh Temple", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# spectacles\n[![CircleCI](https://circleci.com/gh/dbanalyticsco/spectacles/tree/master.svg?style=svg)](https://circleci.com/gh/dbanalyticsco/spectacles/tree/master)\n[![codecov](https://codecov.io/gh/dbanalyticsco/spectacles/branch/master/graph/badge.svg)](https://codecov.io/gh/dbanalyticsco/spectacles)\n\n`spectacles` helps verify that your Looker instance functions as expected. `spectacles` is a diagnostic tool that checks all explore **dimensions for database errors** and **validates Looks and Dashboards**.\n\nAdd `spectacles` to your **CI pipeline** to check for unexpected side effects from database or LookML changes.\n\n## Why we built this\nOccasionally, when we make changes to LookML or underlying database transformations, we break downstream experiences in Looker. For example:\n\n - We change the name of a database column without changing the corresponding `sql` field in our Looker view, leaving our users with a database error when using that field.\n - We make changes to LookML without remembering to check the Content Validator for errors, disrupting Dashboards and Looks that our users rely on\n\nWe wanted a single tool to perform these checks for us and establish a baseline performance expectation for our Looker instance. We believe in the power of continuous integration for analytics, and we built `spectacles` to enhance the business intelligence layer of analytics CI pipelines.\n\n## How it works\n`spectacles` is written in Python and uses an API-permitted Looker user to perform a few different health checks.\n\n1. Connect to the API and establish a development mode session\n2. Check out the CI build branch of interest on the project\n3. Parse each Explore in the model for exposed dimensions\n4. Query each Explore with all exposed dimensions to find any broken fields\n5. Run the Content Validator and return any errors\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/dbanalyticsco/spectacles/tarball/0.0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dbanalyticsco/spectacles", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "spectacles", "package_url": "https://pypi.org/project/spectacles/", "platform": "", "project_url": "https://pypi.org/project/spectacles/", "project_urls": { "Download": "https://github.com/dbanalyticsco/spectacles/tarball/0.0.1", "Homepage": "https://github.com/dbanalyticsco/spectacles" }, "release_url": "https://pypi.org/project/spectacles/0.0.1/", "requires_dist": [ "requests", "PyYAML", "colorama", "backoff", "aiohttp" ], "requires_python": "", "summary": "", "version": "0.0.1" }, "last_serial": 5897775, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c20f909813ce6edabc6e652e47ba3728", "sha256": "296b7ccc5cc5842bfbf81d4dae0261cd4cc8161e85a169f53ed257ff326c02d5" }, "downloads": -1, "filename": "spectacles-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c20f909813ce6edabc6e652e47ba3728", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16561, "upload_time": "2019-09-27T19:49:48", "url": "https://files.pythonhosted.org/packages/72/99/997cbcc3096c6aaa19e99260d3864677fea17527d763cbb2a36df3e7d342/spectacles-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99c7d704c56edf633ecf245a0e0a2ea9", "sha256": "578f560c12a6f85f930ecf0be6452920f2185efb3be9b80d6afb0ce93362b2c6" }, "downloads": -1, "filename": "spectacles-0.0.1.tar.gz", "has_sig": false, "md5_digest": "99c7d704c56edf633ecf245a0e0a2ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13363, "upload_time": "2019-09-27T19:49:50", "url": "https://files.pythonhosted.org/packages/04/6f/7465da4668d66cd6047e01084e51bb305062d936c7efd9c983720faa6ec2/spectacles-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c20f909813ce6edabc6e652e47ba3728", "sha256": "296b7ccc5cc5842bfbf81d4dae0261cd4cc8161e85a169f53ed257ff326c02d5" }, "downloads": -1, "filename": "spectacles-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c20f909813ce6edabc6e652e47ba3728", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16561, "upload_time": "2019-09-27T19:49:48", "url": "https://files.pythonhosted.org/packages/72/99/997cbcc3096c6aaa19e99260d3864677fea17527d763cbb2a36df3e7d342/spectacles-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99c7d704c56edf633ecf245a0e0a2ea9", "sha256": "578f560c12a6f85f930ecf0be6452920f2185efb3be9b80d6afb0ce93362b2c6" }, "downloads": -1, "filename": "spectacles-0.0.1.tar.gz", "has_sig": false, "md5_digest": "99c7d704c56edf633ecf245a0e0a2ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13363, "upload_time": "2019-09-27T19:49:50", "url": "https://files.pythonhosted.org/packages/04/6f/7465da4668d66cd6047e01084e51bb305062d936c7efd9c983720faa6ec2/spectacles-0.0.1.tar.gz" } ] }