{ "info": { "author": "Nao YONASHIRO", "author_email": "owan.orisano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "\nBQSpec\n===================================\n| SQL testing tool for Google BigQuery.\n| this library is pre-alpha. not recommended to production use.\n\nGetting Started\n----------------\n.. code:: bash\n\n pip install bqspec\n\n.. code:: bash\n\n gcloud auth application-default login\n\nHow to Use\n-----------\nspec.yaml\n\n.. code:: yaml\n\n # test target SQL filepath\n query_path: ./sample.sql\n # any BigQuery query parameters (optional). more details: https://cloud.google.com/bigquery/docs/parameterized-queries\n params:\n - type: DATE\n name: date\n value: 2017-11-30\n # known columns (optional).\n columns:\n - id\n - a\n - b\n - c\n - total\n # conditions which all rows must met (optional).\n invariants:\n - total >= 0 # write python expression\n - a + b == c\n # any test cases\n cases:\n - where:\n - id == 1\n expected:\n - total == 15\n - a == 2\n - b == 3\n - c == 5\n\n.. code:: bash\n\n bqspec -f spec.yaml\n\nor\n\n.. code:: bash\n\n bqspec -d .\n\n\nAuthor\n-----------\n@orisano (Nao YONASHIRO)\n\nLicense\n-----------\nMIT\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/orisano/bqspec", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bqspec", "package_url": "https://pypi.org/project/bqspec/", "platform": "", "project_url": "https://pypi.org/project/bqspec/", "project_urls": { "Homepage": "https://github.com/orisano/bqspec" }, "release_url": "https://pypi.org/project/bqspec/0.3.3/", "requires_dist": [ "six", "ruamel.yaml", "embexpr", "google-cloud-bigquery (==0.25.0)", "click", "tqdm" ], "requires_python": "", "summary": "SQL testing tool for Google BigQuery", "version": "0.3.3", "yanked": false, "yanked_reason": null }, "last_serial": 6214463, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "47c982631a4465a8f9a6d2ccb1af8457", "sha256": "ba64a9e445470a27cd2a877f28cb411290622c7d58c5b427f60ad88ff6188af9" }, "downloads": -1, "filename": "bqspec-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47c982631a4465a8f9a6d2ccb1af8457", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11132, "upload_time": "2017-12-06T02:58:54", "upload_time_iso_8601": "2017-12-06T02:58:54.259352Z", "url": "https://files.pythonhosted.org/packages/0f/44/91ae0d975496272d45580c6d6ecdefe116b83adc0562047bb3bccf98de23/bqspec-0.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68f75e3df8e2100a2f0782b3003029f9", "sha256": "cee5c491b4e0994c3bf1a830f2e70518b286e1fc1d914e3f013e49cd07d513e3" }, "downloads": -1, "filename": "bqspec-0.0.1.tar.gz", "has_sig": false, "md5_digest": "68f75e3df8e2100a2f0782b3003029f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7438, "upload_time": "2017-12-06T02:58:56", "upload_time_iso_8601": "2017-12-06T02:58:56.616151Z", "url": "https://files.pythonhosted.org/packages/1a/9f/cd0ab4564dc2a9b79a80b565a8bfccfd1e32f7ee7cb976b50e2d6c2952c5/bqspec-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1fdd29aeeec1b7e3612ec92fe0b8dd5e", "sha256": "cbb0c1b8d2f707593585ee73ee162285fa1e0bc690c3062136abe3c1e7a3eb11" }, "downloads": -1, "filename": "bqspec-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1fdd29aeeec1b7e3612ec92fe0b8dd5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11144, "upload_time": "2017-12-06T03:14:33", "upload_time_iso_8601": "2017-12-06T03:14:33.524017Z", "url": "https://files.pythonhosted.org/packages/52/a0/2ea56bfda79069110b4d6f1e0e73788ceb34333d010055fc1c5b3b88cc79/bqspec-0.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0864c383d55c2a6a5c231885e0a01767", "sha256": "be16d94bcd2e039a9d2ab2756b6d77c70b6c71c790b6ad44812cdc4123f8c5e7" }, "downloads": -1, "filename": "bqspec-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0864c383d55c2a6a5c231885e0a01767", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7436, "upload_time": "2017-12-06T03:14:35", "upload_time_iso_8601": "2017-12-06T03:14:35.471416Z", "url": "https://files.pythonhosted.org/packages/c9/e5/2fc38811b9897946cf66a063f1271b74d03ab0c04af29319ff138e3dca4d/bqspec-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ba62eb58fc700d42cb9786e43e44d7fc", "sha256": "9c3f01221883189cff0e89f0f617f867cf953659a39f8bd456e0d125c8912dbf" }, "downloads": -1, "filename": "bqspec-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba62eb58fc700d42cb9786e43e44d7fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11248, "upload_time": "2017-12-13T03:53:33", "upload_time_iso_8601": "2017-12-13T03:53:33.447672Z", "url": "https://files.pythonhosted.org/packages/50/70/ad0ee02baa570e760a96c1c1a1eaa3e2dda3cc745051a51ac144a4c3bc22/bqspec-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7f733fd6d38f76b259c4e340fc4e837e", "sha256": "6c9662fe02e5bd078be8e25dd5e62f2cf1f813aacc567575722df929fb074163" }, "downloads": -1, "filename": "bqspec-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7f733fd6d38f76b259c4e340fc4e837e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7559, "upload_time": "2017-12-13T03:53:34", "upload_time_iso_8601": "2017-12-13T03:53:34.817562Z", "url": "https://files.pythonhosted.org/packages/2a/65/9febc71a0ce2b8798c90b3405ff24199f3bcde8c2ee5fd52eebd54adb851/bqspec-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1a26b2293ab4d309297227dc12c227fc", "sha256": "c05188d4317fceb5e3b3613d838a945bb9de3df77933892423a63bdfc6fc0e94" }, "downloads": -1, "filename": "bqspec-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a26b2293ab4d309297227dc12c227fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11541, "upload_time": "2017-12-13T12:18:15", "upload_time_iso_8601": "2017-12-13T12:18:15.121846Z", "url": "https://files.pythonhosted.org/packages/4e/ac/c44b79760b1f60b777c1386598fbf7606e49fe8217f7bff2329251aedfd4/bqspec-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "30bf6535020ba5e1d75f2df2ae04b0a6", "sha256": "d2503a156243ca54d1f1a18a94e943ceec640821ff2784bc8c2394ff22906755" }, "downloads": -1, "filename": "bqspec-0.2.0.tar.gz", "has_sig": false, "md5_digest": "30bf6535020ba5e1d75f2df2ae04b0a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7818, "upload_time": "2017-12-13T12:18:16", "upload_time_iso_8601": "2017-12-13T12:18:16.201257Z", "url": "https://files.pythonhosted.org/packages/bd/f6/859f6d32e4e954dc9a016dfe1512fbcf4ece9ba6d05381f05001f3ed6c44/bqspec-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7ec8bd47d48bcb724e5411d00bf37ca3", "sha256": "b17e90b458864e64712f9ffb2f8ab94c2a92b9a170282270aaee9f1e7ed4acd2" }, "downloads": -1, "filename": "bqspec-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ec8bd47d48bcb724e5411d00bf37ca3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11562, "upload_time": "2017-12-13T12:27:29", "upload_time_iso_8601": "2017-12-13T12:27:29.511787Z", "url": "https://files.pythonhosted.org/packages/02/9b/d7c3202b2538910561372c1c6e5688bbf703cf90904968e94f37a10800a8/bqspec-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2c0171df5f8b84c169b53f5e2c6c1424", "sha256": "9a642747f7bfe871ea5a4b1eaf3854b360a2045785ca79d3ce0491c82b7db63b" }, "downloads": -1, "filename": "bqspec-0.2.1.tar.gz", "has_sig": false, "md5_digest": "2c0171df5f8b84c169b53f5e2c6c1424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7844, "upload_time": "2017-12-13T12:27:31", "upload_time_iso_8601": "2017-12-13T12:27:31.722982Z", "url": "https://files.pythonhosted.org/packages/69/9b/20d513715e6671e70982a7cc84dea69b8bde23b3b4bf4c8480aa13e3d685/bqspec-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b6a3e442e8bca8046fd006d41a1734e8", "sha256": "d2181ab2ae072ab64df9c548174ab59514c73cb8ac068ac4ea62305da48b372f" }, "downloads": -1, "filename": "bqspec-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b6a3e442e8bca8046fd006d41a1734e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11565, "upload_time": "2017-12-14T01:49:30", "upload_time_iso_8601": "2017-12-14T01:49:30.477162Z", "url": "https://files.pythonhosted.org/packages/37/69/fcb79a410ed395df387136770aca493d1faf00a8d4009772504e77ef041c/bqspec-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3390e6f4148c279c9ff5c98295ce4976", "sha256": "f911b7db3facf6f3639372870ca795bf0a83c5b956eaf4b6e8f822aa34101e5b" }, "downloads": -1, "filename": "bqspec-0.2.2.tar.gz", "has_sig": false, "md5_digest": "3390e6f4148c279c9ff5c98295ce4976", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7847, "upload_time": "2017-12-14T01:49:32", "upload_time_iso_8601": "2017-12-14T01:49:32.861287Z", "url": "https://files.pythonhosted.org/packages/d3/31/809097320f40ae67644ab8689de3e328bf933906ad5e3c28c6fb47e1b6f3/bqspec-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "18ff1a5fac8f27b975020b2ea6ce7b21", "sha256": "b814525e9cb35d5979b06bf191f79153147c0139642dbe24a211521c5111b58d" }, "downloads": -1, "filename": "bqspec-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18ff1a5fac8f27b975020b2ea6ce7b21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11582, "upload_time": "2017-12-14T06:38:58", "upload_time_iso_8601": "2017-12-14T06:38:58.317561Z", "url": "https://files.pythonhosted.org/packages/46/4f/8ff91e65c2d4da367057a3b8890d4af690cbaaaf64a0cb1014c2524f1cfe/bqspec-0.2.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "47bc1059e4d068783c21a4bb10a43ef1", "sha256": "9e5c3cfd0a6deebee41d722cabc8c4b5fbe5e1969179bd41f7006c349e601196" }, "downloads": -1, "filename": "bqspec-0.2.3.tar.gz", "has_sig": false, "md5_digest": "47bc1059e4d068783c21a4bb10a43ef1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7844, "upload_time": "2017-12-14T06:39:00", "upload_time_iso_8601": "2017-12-14T06:39:00.953887Z", "url": "https://files.pythonhosted.org/packages/86/5b/5ea7ae8b1d303e984c3d9dfa1729d5ea90bab2ab37eed52fe4deb2b4706d/bqspec-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "25454daebfcc60dbf56112d2d384e9ec", "sha256": "ec3ab004a222373e9d846a4e2faa3c0fad4a4fb00a24dc2b4a378a8b13234ab3" }, "downloads": -1, "filename": "bqspec-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25454daebfcc60dbf56112d2d384e9ec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11533, "upload_time": "2017-12-15T06:34:57", "upload_time_iso_8601": "2017-12-15T06:34:57.604840Z", "url": "https://files.pythonhosted.org/packages/cf/cb/4bb337f657ebe183e0422dd525ee7abac6c4ba17e6dbcebfa1929b1b73eb/bqspec-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1207ee740bf3fa3c1c6b5cc1d01afb38", "sha256": "bfe358288eb0f71816f2d8e15e79633730615395e5524cb2b9a50fa7dae9051d" }, "downloads": -1, "filename": "bqspec-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1207ee740bf3fa3c1c6b5cc1d01afb38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7810, "upload_time": "2017-12-15T06:34:59", "upload_time_iso_8601": "2017-12-15T06:34:59.173153Z", "url": "https://files.pythonhosted.org/packages/f4/00/36d52c4444efb19a01518ea19bab822c1c9bd0782ccecf136ebe9e1bf02b/bqspec-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9c2b7891fe556fa38e91df2a26a6e4de", "sha256": "41df6f5537122f61aeae120eae2aa0d1448d6de73f6f13c829a815bb85f2585f" }, "downloads": -1, "filename": "bqspec-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c2b7891fe556fa38e91df2a26a6e4de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11536, "upload_time": "2017-12-15T09:27:36", "upload_time_iso_8601": "2017-12-15T09:27:36.732194Z", "url": "https://files.pythonhosted.org/packages/70/6e/5be24b9b178e5e4a52263b2c357d037107dd9e91b10deaf0ff9f61b6eb8f/bqspec-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "73ecfd3cd9b716b42cc70dc6543779dc", "sha256": "03e7e38c0531e6d776e24f42cae75c85b0ba0aabe69fd6d4207049e6bb2ccf37" }, "downloads": -1, "filename": "bqspec-0.3.1.tar.gz", "has_sig": false, "md5_digest": "73ecfd3cd9b716b42cc70dc6543779dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7818, "upload_time": "2017-12-15T09:27:37", "upload_time_iso_8601": "2017-12-15T09:27:37.816457Z", "url": "https://files.pythonhosted.org/packages/e8/f0/82e5cd151f83fbfd5f67bcd0c5f1476a0ea9aa70c56dfbe51ce037bb962f/bqspec-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e488a867848da288d8986b2cf217b4df", "sha256": "b3b866ee2fb90a1e591c829535858e17ff8a8141655d7070b4583c16c92323d8" }, "downloads": -1, "filename": "bqspec-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e488a867848da288d8986b2cf217b4df", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10620, "upload_time": "2019-10-23T05:36:30", "upload_time_iso_8601": "2019-10-23T05:36:30.302724Z", "url": "https://files.pythonhosted.org/packages/5a/6f/bd68f7abdcad933b1f0b659253e527249f3ea7f4632342365b5ea89761b2/bqspec-0.3.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "577f1934b24f574dc8a0408d594125de", "sha256": "f7b72a8e731ad54567c72358eec5feb097e8e4a604c37ec5773ea693f2e9679d" }, "downloads": -1, "filename": "bqspec-0.3.2.tar.gz", "has_sig": false, "md5_digest": "577f1934b24f574dc8a0408d594125de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8457, "upload_time": "2019-10-23T05:36:31", "upload_time_iso_8601": "2019-10-23T05:36:31.996426Z", "url": "https://files.pythonhosted.org/packages/db/41/e304301e8fe7c5ad075daad407626b8710ed20cd0826fdc4ced3c7c9c9c5/bqspec-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "3d28fab848f029e28d8440e60a2c3ef5", "sha256": "ecf65ae4742aaaa097075af0cf2d5a50a4de206853004ab7429d1305cc886311" }, "downloads": -1, "filename": "bqspec-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d28fab848f029e28d8440e60a2c3ef5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10621, "upload_time": "2019-11-28T14:38:05", "upload_time_iso_8601": "2019-11-28T14:38:05.711969Z", "url": "https://files.pythonhosted.org/packages/4d/62/7acbb0e017da3eb37b8b74a774119d22c9532ae613d5fb94f66c0a4ecbc7/bqspec-0.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "746e90a7d44c8611a3f8cc76d402e307", "sha256": "b238e1f43f98371d805405534ae46f844e4e2d6a7305ade7b6f636e5a46eca7d" }, "downloads": -1, "filename": "bqspec-0.3.3.tar.gz", "has_sig": false, "md5_digest": "746e90a7d44c8611a3f8cc76d402e307", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8495, "upload_time": "2019-11-28T14:38:07", "upload_time_iso_8601": "2019-11-28T14:38:07.934776Z", "url": "https://files.pythonhosted.org/packages/58/65/29f1b75fd09821d68ea000fde17db215a0a639cbef6feb5075841fb1d502/bqspec-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d28fab848f029e28d8440e60a2c3ef5", "sha256": "ecf65ae4742aaaa097075af0cf2d5a50a4de206853004ab7429d1305cc886311" }, "downloads": -1, "filename": "bqspec-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d28fab848f029e28d8440e60a2c3ef5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10621, "upload_time": "2019-11-28T14:38:05", "upload_time_iso_8601": "2019-11-28T14:38:05.711969Z", "url": "https://files.pythonhosted.org/packages/4d/62/7acbb0e017da3eb37b8b74a774119d22c9532ae613d5fb94f66c0a4ecbc7/bqspec-0.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "746e90a7d44c8611a3f8cc76d402e307", "sha256": "b238e1f43f98371d805405534ae46f844e4e2d6a7305ade7b6f636e5a46eca7d" }, "downloads": -1, "filename": "bqspec-0.3.3.tar.gz", "has_sig": false, "md5_digest": "746e90a7d44c8611a3f8cc76d402e307", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8495, "upload_time": "2019-11-28T14:38:07", "upload_time_iso_8601": "2019-11-28T14:38:07.934776Z", "url": "https://files.pythonhosted.org/packages/58/65/29f1b75fd09821d68ea000fde17db215a0a639cbef6feb5075841fb1d502/bqspec-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }