2022-03-21T03:54:00,245 Created temporary directory: /tmp/pip-ephem-wheel-cache-v5aycn28 2022-03-21T03:54:00,250 Created temporary directory: /tmp/pip-req-tracker-ww1obhwm 2022-03-21T03:54:00,251 Initialized build tracking at /tmp/pip-req-tracker-ww1obhwm 2022-03-21T03:54:00,251 Created build tracker: /tmp/pip-req-tracker-ww1obhwm 2022-03-21T03:54:00,252 Entered build tracker: /tmp/pip-req-tracker-ww1obhwm 2022-03-21T03:54:00,253 Created temporary directory: /tmp/pip-wheel-aubzjpfo 2022-03-21T03:54:00,323 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2022-03-21T03:54:00,337 2 location(s) to search for versions of apache-iotdb: 2022-03-21T03:54:00,337 * https://pypi.org/simple/apache-iotdb/ 2022-03-21T03:54:00,337 * https://www.piwheels.org/simple/apache-iotdb/ 2022-03-21T03:54:00,338 Fetching project page and analyzing links: https://pypi.org/simple/apache-iotdb/ 2022-03-21T03:54:00,339 Getting page https://pypi.org/simple/apache-iotdb/ 2022-03-21T03:54:00,342 Found index url https://pypi.org/simple 2022-03-21T03:54:00,478 Found link https://files.pythonhosted.org/packages/76/14/d01b6281df00530c69bc8eae2074b9970bbe865a5e971b5cd2019e8b8250/apache-iotdb-0.9.0.tar.gz#sha256=0f7f2ea82b2bdfd974c1757dd2b93ae96754bf5aeb56c895f08f7302e76977ad (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.9.0 2022-03-21T03:54:00,479 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/84/aa/fa9401ccadb89ddce7c2b8a03baee9dbb9913c52b5936d0ec7968cabf056/apache_iotdb-0.9.0-py3-none-any.whl#sha256=1feb6b731a9af26aac7a1e6fab74e85dd960562a1dca6e4c5c9d10234a570e82 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,481 Found link https://files.pythonhosted.org/packages/01/fa/e65db378e4d8e07322ec175f37568bceb55ebb3c8397fa7b48e9f087c451/apache-iotdb-0.9.2.tar.gz#sha256=e898a8c1a62493c0c7547f89fe15d39ccb76fc4a6468dbc0f5406e2229c5233d (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.9.2 2022-03-21T03:54:00,481 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/43/8d/72fa03325e9281b613a0eabae9cc7c606ce0e8952bee0c3ca855e4579a1d/apache_iotdb-0.9.2-py3-none-any.whl#sha256=29c5ad15a61ef6200bb3cff15abed66acf87abbbdedab496978a4ee8f731f82c (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,483 Found link https://files.pythonhosted.org/packages/34/95/030c2da665358de8ba950099b3b0397dca437fcde60d5d1730d0c451d5e3/apache-iotdb-0.9.3.tar.gz#sha256=5c17a131cc2485c1788a2d8a29ee850dabd9b16ada3f13996c8a07e11ae23df4 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.9.3 2022-03-21T03:54:00,483 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/5c/d4/2e329baab32ad93730ba4b79df9b91f1d55d0d37428a5dbbe2dd4c9f3a9d/apache_iotdb-0.9.3-py3-none-any.whl#sha256=4a589b5bbbdb8fdc9d1c91320a9a3480e41768cb590d82ab317dc62f57302d6c (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,485 Found link https://files.pythonhosted.org/packages/1d/dc/138e08717f8c2e0e238f35d39b34af6cfc1c7a1332b6aa4689750f4fda26/apache-iotdb-0.10.0.tar.gz#sha256=0c95e2ec5bc4e3338a83898a329ec9609681efbee26b000350d4ac08d564b91e (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.10.0 2022-03-21T03:54:00,486 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/c3/76/46884f04945b6f02bbec4e06d83fafc16f326ca0f9b35b8c0141018990c0/apache_iotdb-0.10.0-py3-none-any.whl#sha256=1607a07d9546fbd1e1239c5faed9a85a3a021e7ad3a389df3eeedcb95708c641 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,487 Found link https://files.pythonhosted.org/packages/f6/4d/b229b9f309431e8164c9cd893431009a57efcaa059f58c1091d222601da3/apache-iotdb-0.10.1.tar.gz#sha256=b3f1651a6b290220222d0eaf66955396e9c3ce17d01be6cd698d31e0e5feb51e (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.10.1 2022-03-21T03:54:00,488 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/d6/87/2e003dcf87ffa8e73f48a62a107b989967e906670d905a05ae1c1349f396/apache_iotdb-0.10.1-py3-none-any.whl#sha256=b4b13fa0d6ed86fbcc1231cad3d220ee81b38452e87fea655641720f803d4c1d (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,489 Found link https://files.pythonhosted.org/packages/16/8b/2ec65fa81d5961bd927c02d6a209490bf325b2a164506cd3b12e846d7061/apache-iotdb-0.11.0.tar.gz#sha256=a89a080bd084ab35e87c08660a1ce604c1857e3ffcf702d39540fb35366eabd8 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.11.0 2022-03-21T03:54:00,490 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/47/c8/047703f7e8125b15361c766b90c6f1cbdbf797f84803f38b1732c1a386cb/apache_iotdb-0.11.0-py3-none-any.whl#sha256=4771e87dd8d933815206c063014beff8eff4c8025353723ac67603f49a119224 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,491 Found link https://files.pythonhosted.org/packages/55/a1/ef100f67e0f26fbc1d19b84115b21de942e7b7e01803706d19f841ac06c1/apache-iotdb-0.11.1.tar.gz#sha256=d80bc159ae19e04d11f0a671061a19f640f95415d9c5f3c4073dd0645c365c44 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.11.1 2022-03-21T03:54:00,492 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/9f/9f/dce2d782c8b64700539039ef5d66f5f7a781689538c0a176cf56099ec9d1/apache_iotdb-0.11.1-py3-none-any.whl#sha256=317a24e4870d587820f8d5be294e2e9a6ad09f70566ce4380506085c47b2fc0a (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,493 Found link https://files.pythonhosted.org/packages/69/d5/f1b9ff293fe02eb1f1cb3cba13b5d9a4b547415ab0045b2a8a3612249e12/apache-iotdb-0.11.2.tar.gz#sha256=d6bf2cf44bf4f7a3c8093da17688ae28c2f2c24eafce6f2f062a01ebc68beae9 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.11.2 2022-03-21T03:54:00,494 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/2b/96/a5f0c63659cc8477c53d8a8321c07ea5a0bb2430abaaab477a6185bb43a1/apache_iotdb-0.11.2-py3-none-any.whl#sha256=762d5b0c5f82869237d5375d2a8774f99654c3b693d6f77bf6e9decc78b7fd5d (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,495 Found link https://files.pythonhosted.org/packages/7d/cf/0d672a828527f59cdc66c078b0b8e356ca0a3191224a4363ce2256337d1c/apache-iotdb-0.11.3.tar.gz#sha256=db3b395fd7c61e4d42a4d8dea8455f846055ca03eb67ed256d655eab20ce0369 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.11.3 2022-03-21T03:54:00,496 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/d2/c7/6709b26341e59788d05a297182aa3f96c692e85421c169f657e92c3b4765/apache_iotdb-0.11.3-py3-none-any.whl#sha256=55e9a0042694ba7fa482f733a1d548c0180bccf0e35e090b85d7b9050c95162b (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,497 Found link https://files.pythonhosted.org/packages/00/a1/5b1b8a2754f4b25420d9a4461b5e2b8573bb89b43054f9303ea0558df0de/apache-iotdb-0.11.4.tar.gz#sha256=83190c258ec5befef3d4efe23825b37855825de6f84ec5b759dd53bf614ae2ff (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.11.4 2022-03-21T03:54:00,498 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/48/f4/a21fd4495f93c428de788a477665f1815b257568469c38108666125fff4b/apache_iotdb-0.11.4-py3-none-any.whl#sha256=cf1ee85db62d31642b32742aba0a026a941b85cf4bb49ec48ef09b9e241f3bf5 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,499 Found link https://files.pythonhosted.org/packages/9e/16/bb2ef45f62e9866f1be97f04e2c581247d3b145e5d8a01b7c143023c6c45/apache-iotdb-0.12.0.tar.gz#sha256=b86ddbcf62a17f7ffdc924933f052d1d1c09b25cb0160d0ab1d0fecf8007b902 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.0 2022-03-21T03:54:00,500 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/93/32/e051c3ce387e54b1f036995e92ff352895cf01a51b170752e906a7d42364/apache_iotdb-0.12.0-py3-none-any.whl#sha256=061d9407266b9d100113fa2d11890a8d5d56f8b496305c5864f08a9af35fcc12 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,501 Found link https://files.pythonhosted.org/packages/20/0c/b39e9f362fb0a1a43cb0a05a5b2d9163815f0048575e0c071bbaa50070b8/apache-iotdb-0.12.1.tar.gz#sha256=2ff51551184706b690c91b2f24e4e10694ae486d46b1674b79e58ef2410b9f61 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.1 2022-03-21T03:54:00,502 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/55/cf/219a0c3cd17537cebf6e67deeaa77b57741c9b40bcddbb7f59ac9b828401/apache_iotdb-0.12.1-py3-none-any.whl#sha256=bc5ddc6b683bf26a0b9a8c47ada13d29918503664e9e1c3fdefae73121f3a327 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,503 Found link https://files.pythonhosted.org/packages/fd/64/d83ceaaab941dd78df38cd8c35d27028a27724c2535f0e6f01a48472aa28/apache-iotdb-0.12.2.tar.gz#sha256=530b328959f7b20d09f73682d68ecde5d6d58d1048b7d10f6a3846ed6ccef954 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.2 2022-03-21T03:54:00,504 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/0b/33/60af46cbc25d7ecf9722bf311295cb0acbf2841f6eb3e3af7433ac3e199d/apache_iotdb-0.12.2-py3-none-any.whl#sha256=4a8cbbf791710bbe1bd83f55b5a6209fed0c28bf1d297dc50df44b9b1662c5a0 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,506 Found link https://files.pythonhosted.org/packages/24/7c/81a9dcfd218d4654b03d9079578659d6201aa4f9e9ccba328c0742e8e9c1/apache-iotdb-0.12.3.tar.gz#sha256=5b73fcce1c33070e14f00d4708129320dbfcd7bd8b80fb82cd74a267457b81e0 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.3 2022-03-21T03:54:00,506 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/9f/ae/e79cef98fa20cf977ea22b065fcff8d7b976922dd281f4a74a02b1a72b41/apache_iotdb-0.12.3-py3-none-any.whl#sha256=724ff3ecb4762801cbc977ea4257586757943356bfa16fbfb4cc45ddcea06897 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,508 Found link https://files.pythonhosted.org/packages/9e/11/0d12f9b906b3aac1446c09e297bcdf3a0cdfb016aae1ec77effa214999de/apache-iotdb-0.12.4.tar.gz#sha256=01b1370a1816e5934dc6fd34606b9dfe63817c94d626069aff9102e6e6b77751 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.4 2022-03-21T03:54:00,508 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/2b/cb/34f5d9137086d912e4518d751eca1ac9a8b908706c4b3176ca32911fabd2/apache_iotdb-0.12.4-py3-none-any.whl#sha256=b5aa061943bf32b9d289ffcf15e5bad8abc8ef8ee7413e035014ec27b81ad11f (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,509 Found link https://files.pythonhosted.org/packages/8a/52/93503eac47c1561edc21431f7154b694afad9d461e2af0fea36966953c24/apache-iotdb-0.12.5.tar.gz#sha256=38eb0acb7f8f66f2c40dbeeb0bcaac9914442c02d2b2b40f621080ad8532af48 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.12.5 2022-03-21T03:54:00,510 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/7a/30/1cd9bca76c1f4f9b4cd48d11f23103ade9c5a35410bbf0a8f5997bab51b0/apache_iotdb-0.12.5-py3-none-any.whl#sha256=3255a9b173ef106ff04aa683d2dc59f2c5109c0e197dc39a0d3abcc517c27393 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,511 Found link https://files.pythonhosted.org/packages/a6/cd/33de301e51132f8d0d79adc346d38685a6b871251846bad95b35ebf74ac9/apache-iotdb-0.13.0.tar.gz#sha256=42f0f028d609cd06eef653683cfecc25436d8538d40b2b49b724be921a5fe910 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.13.0 2022-03-21T03:54:00,512 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/71/c1/3684d3b6e6eddda5fbe994e123c6bc6569409994a44b5d3e4b130554802a/apache_iotdb-0.13.0-py3-none-any.whl#sha256=1d1ed3469afbe39ab6159f5e7965579d315828c675480dc620ec6d2bb1687e3b (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,514 Found link https://files.pythonhosted.org/packages/7e/3e/40f0d900e04598036cc65ae437a2ee9f4aa149860d434a6f4b291460582c/apache-iotdb-0.13.0.post1.tar.gz#sha256=1f971f4ef6525a5971794967ba5e9a5ee4858237d17493c0de889cb14f9f76e3 (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7), version: 0.13.0.post1 2022-03-21T03:54:00,514 Skipping link: No binaries permitted for apache-iotdb: https://files.pythonhosted.org/packages/7c/f2/ef6f589910f1b850ad665d4958e2a26b5249bddc81d5f29a711e21a79dc1/apache_iotdb-0.13.0.post1-py3-none-any.whl#sha256=0b6f35e13caaaf2ebd7f3edd24dfe3f5802cc95c4015a3a68e1e6c686c16d4ef (from https://pypi.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,515 Fetching project page and analyzing links: https://www.piwheels.org/simple/apache-iotdb/ 2022-03-21T03:54:00,516 Getting page https://www.piwheels.org/simple/apache-iotdb/ 2022-03-21T03:54:00,518 Found index url https://www.piwheels.org/simple 2022-03-21T03:54:00,753 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.10.0-py3-none-any.whl#sha256=388ade65f63cb37eef343e4f294cf3488b79894ff8061a7d9b2bf42277ded9de (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,754 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.10.1-py3-none-any.whl#sha256=b4b13fa0d6ed86fbcc1231cad3d220ee81b38452e87fea655641720f803d4c1d (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,754 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.11.0-py3-none-any.whl#sha256=4771e87dd8d933815206c063014beff8eff4c8025353723ac67603f49a119224 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,755 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.11.1-py3-none-any.whl#sha256=317a24e4870d587820f8d5be294e2e9a6ad09f70566ce4380506085c47b2fc0a (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,756 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.11.2-py3-none-any.whl#sha256=762d5b0c5f82869237d5375d2a8774f99654c3b693d6f77bf6e9decc78b7fd5d (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,756 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.11.3-py3-none-any.whl#sha256=55e9a0042694ba7fa482f733a1d548c0180bccf0e35e090b85d7b9050c95162b (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,757 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.11.4-py3-none-any.whl#sha256=cf1ee85db62d31642b32742aba0a026a941b85cf4bb49ec48ef09b9e241f3bf5 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,757 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.0-py3-none-any.whl#sha256=061d9407266b9d100113fa2d11890a8d5d56f8b496305c5864f08a9af35fcc12 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,758 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.1-py3-none-any.whl#sha256=bc5ddc6b683bf26a0b9a8c47ada13d29918503664e9e1c3fdefae73121f3a327 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,758 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.2-py3-none-any.whl#sha256=bb7605db211272947ba451cdad35a2b4f554167361f0c08acedbfb0723ac7ab8 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,759 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.3-py3-none-any.whl#sha256=eb77b047b61a087b286e01afea6ee9761c9e687479a4e551be085d82612ed220 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,759 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.4-py3-none-any.whl#sha256=af5fa8000dd449fb6d98420287b2049b5e68d268fa1529fa96955b5fe7637c13 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,760 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.12.5-py3-none-any.whl#sha256=06bb080be5b0469037e68db56a7feb10da911a396a47d598598d8d8c50d07419 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,760 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.13.0-py3-none-any.whl#sha256=67b7429e60cdd5e1e3a808592a87a591c028af62de8e2fec2535b4a3105f21b7 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,761 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.9.0-py3-none-any.whl#sha256=1feb6b731a9af26aac7a1e6fab74e85dd960562a1dca6e4c5c9d10234a570e82 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,761 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.9.2-py3-none-any.whl#sha256=b7fad95c7f041f18a621439aa3cd19fc79d76caa85a93967163566c10b7c6348 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,762 Skipping link: No binaries permitted for apache-iotdb: https://www.piwheels.org/simple/apache-iotdb/apache_iotdb-0.9.3-py3-none-any.whl#sha256=b535b53a5182dc94116e67edb4a34c1efb007574273e2ff4ad72ebc3b4634326 (from https://www.piwheels.org/simple/apache-iotdb/) (requires-python:>=3.7) 2022-03-21T03:54:00,763 Skipping link: not a file: https://www.piwheels.org/simple/apache-iotdb/ 2022-03-21T03:54:00,763 Skipping link: not a file: https://pypi.org/simple/apache-iotdb/ 2022-03-21T03:54:00,804 Given no hashes to check 1 links for project 'apache-iotdb': discarding no candidates 2022-03-21T03:54:00,836 Collecting apache-iotdb==0.13.0.post1 2022-03-21T03:54:00,840 Created temporary directory: /tmp/pip-unpack-ygoj92er 2022-03-21T03:54:01,100 Downloading apache-iotdb-0.13.0.post1.tar.gz (52 kB) 2022-03-21T03:54:01,340 Added apache-iotdb==0.13.0.post1 from https://files.pythonhosted.org/packages/7e/3e/40f0d900e04598036cc65ae437a2ee9f4aa149860d434a6f4b291460582c/apache-iotdb-0.13.0.post1.tar.gz#sha256=1f971f4ef6525a5971794967ba5e9a5ee4858237d17493c0de889cb14f9f76e3 to build tracker '/tmp/pip-req-tracker-ww1obhwm' 2022-03-21T03:54:01,350 Created temporary directory: /tmp/pip-build-env-pcbgg6j_ 2022-03-21T03:54:01,364 Created temporary directory: /tmp/pip-standalone-pip-ri5qy3hn 2022-03-21T03:54:03,547 Installing build dependencies: started 2022-03-21T03:54:03,549 Running command pip subprocess to install build dependencies 2022-03-21T03:54:13,624 Using pip 22.0.3 from /tmp/pip-standalone-pip-ri5qy3hn/__env_pip__.zip/pip (python 3.7) 2022-03-21T03:54:14,997 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2022-03-21T03:54:18,981 Collecting setuptools>=40.8.0 2022-03-21T03:54:19,232 Using cached https://www.piwheels.org/simple/setuptools/setuptools-60.10.0-py3-none-any.whl (1.1 MB) 2022-03-21T03:54:19,877 Collecting wheel 2022-03-21T03:54:19,916 Using cached https://www.piwheels.org/simple/wheel/wheel-0.37.1-py2.py3-none-any.whl (35 kB) 2022-03-21T03:54:24,664 Installing collected packages: wheel, setuptools 2022-03-21T03:54:24,944 Creating /tmp/pip-build-env-pcbgg6j_/overlay/bin 2022-03-21T03:54:24,949 changing mode of /tmp/pip-build-env-pcbgg6j_/overlay/bin/wheel to 755 2022-03-21T03:54:28,825 Successfully installed setuptools-60.10.0 wheel-0.37.1 2022-03-21T03:54:28,993 WARNING: You are using pip version 22.0.3; however, version 22.0.4 is available. 2022-03-21T03:54:28,994 You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command. 2022-03-21T03:54:29,466 Installing build dependencies: finished with status 'done' 2022-03-21T03:54:29,492 Getting requirements to build wheel: started 2022-03-21T03:54:29,494 Running command Getting requirements to build wheel 2022-03-21T03:54:31,384 2022-03-21T03:54:31,392 # Apache IoTDB 2022-03-21T03:54:31,393 [![Main Mac and Linux](https://github.com/apache/iotdb/actions/workflows/main-unix.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-unix.yml) 2022-03-21T03:54:31,393 [![Main Win](https://github.com/apache/iotdb/actions/workflows/main-win.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-win.yml) 2022-03-21T03:54:31,394 [![coveralls](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master)](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master) 2022-03-21T03:54:31,394 [![GitHub release](https://img.shields.io/github/release/apache/iotdb.svg)](https://github.com/apache/iotdb/releases) 2022-03-21T03:54:31,394 [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) 2022-03-21T03:54:31,395 ![](https://github-size-badge.herokuapp.com/apache/iotdb.svg) 2022-03-21T03:54:31,395 ![](https://img.shields.io/github/downloads/apache/iotdb/total.svg) 2022-03-21T03:54:31,395 ![](https://img.shields.io/badge/platform-win10%20%7C%20macox%20%7C%20linux-yellow.svg) 2022-03-21T03:54:31,396 ![](https://img.shields.io/badge/java--language-1.8-blue.svg) 2022-03-21T03:54:31,396 [![IoTDB Website](https://img.shields.io/website-up-down-green-red/https/shields.io.svg?label=iotdb-website)](https://iotdb.apache.org/) 2022-03-21T03:54:31,397 Apache IoTDB (Database for Internet of Things) is an IoT native database with high performance for 2022-03-21T03:54:31,397 data management and analysis, deployable on the edge and the cloud. Due to its light-weight 2022-03-21T03:54:31,398 architecture, high performance and rich feature set together with its deep integration with 2022-03-21T03:54:31,398 Apache Hadoop, Spark and Flink, Apache IoTDB can meet the requirements of massive data storage, 2022-03-21T03:54:31,398 high-speed data ingestion and complex data analysis in the IoT industrial fields. 2022-03-21T03:54:31,399 # Apache IoTDB Python Client API 2022-03-21T03:54:31,400 Using the package, you can write data to IoTDB, read data from IoTDB and maintain the schema of IoTDB. 2022-03-21T03:54:31,401 ## Requirements 2022-03-21T03:54:31,401 You have to install thrift (>=0.13) before using the package. 2022-03-21T03:54:31,402 ## How to use (Example) 2022-03-21T03:54:31,402 First, download the package: `pip3 install apache-iotdb` 2022-03-21T03:54:31,403 You can get an example of using the package to read and write data at here: [Example](https://github.com/apache/iotdb/blob/rel/0.11/client-py/src/SessionExample.py) 2022-03-21T03:54:31,404 (you need to add `import iotdb` in the head of the file) 2022-03-21T03:54:31,404 Or: 2022-03-21T03:54:31,405 ```python 2022-03-21T03:54:31,406 from iotdb.Session import Session 2022-03-21T03:54:31,406 ip = "127.0.0.1" 2022-03-21T03:54:31,407 port_ = "6667" 2022-03-21T03:54:31,407 username_ = 'root' 2022-03-21T03:54:31,407 password_ = 'root' 2022-03-21T03:54:31,407 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:31,408 session.open(False) 2022-03-21T03:54:31,408 zone = session.get_time_zone() 2022-03-21T03:54:31,408 session.close() 2022-03-21T03:54:31,409 ``` 2022-03-21T03:54:31,410 ## IoTDB Testcontainer 2022-03-21T03:54:31,410 The Test Support is based on the lib `testcontainers` (https://testcontainers-python.readthedocs.io/en/latest/index.html) which you need to install in your project if you want to use the feature. 2022-03-21T03:54:31,411 To start (and stop) an IoTDB Database in a Docker container simply do: 2022-03-21T03:54:31,411 ``` 2022-03-21T03:54:31,412 class MyTestCase(unittest.TestCase): 2022-03-21T03:54:31,412 def test_something(self): 2022-03-21T03:54:31,412 with IoTDBContainer() as c: 2022-03-21T03:54:31,413 session = Session('localhost', c.get_exposed_port(6667), 'root', 'root') 2022-03-21T03:54:31,413 session.open(False) 2022-03-21T03:54:31,413 result = session.execute_query_statement("SHOW TIMESERIES") 2022-03-21T03:54:31,414 print(result) 2022-03-21T03:54:31,414 session.close() 2022-03-21T03:54:31,414 ``` 2022-03-21T03:54:31,415 by default it will load the image `apache/iotdb:latest`, if you want a specific version just pass it like e.g. `IoTDBContainer("apache/iotdb:0.12.0")` to get version `0.12.0` running. 2022-03-21T03:54:31,416 ## Pandas Support 2022-03-21T03:54:31,416 To easily transform a query result to a [Pandas Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) 2022-03-21T03:54:31,417 the SessionDataSet has a method `.todf()` which consumes the dataset and transforms it to a pandas dataframe. 2022-03-21T03:54:31,417 Example: 2022-03-21T03:54:31,418 ```python 2022-03-21T03:54:31,418 from iotdb.Session import Session 2022-03-21T03:54:31,419 ip = "127.0.0.1" 2022-03-21T03:54:31,419 port_ = "6667" 2022-03-21T03:54:31,420 username_ = 'root' 2022-03-21T03:54:31,420 password_ = 'root' 2022-03-21T03:54:31,420 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:31,421 session.open(False) 2022-03-21T03:54:31,421 result = session.execute_query_statement("SELECT * FROM root.*") 2022-03-21T03:54:31,421 # Transform to Pandas Dataset 2022-03-21T03:54:31,422 df = result.todf() 2022-03-21T03:54:31,422 session.close() 2022-03-21T03:54:31,423 # Now you can work with the dataframe 2022-03-21T03:54:31,423 df = ... 2022-03-21T03:54:31,424 ``` 2022-03-21T03:54:31,424 ## Developers 2022-03-21T03:54:31,425 ### Introduction 2022-03-21T03:54:31,425 This is an example of how to connect to IoTDB with python, using the thrift rpc interfaces. Things 2022-03-21T03:54:31,426 are almost the same on Windows or Linux, but pay attention to the difference like path separator. 2022-03-21T03:54:31,426 ### Prerequisites 2022-03-21T03:54:31,427 python3.7 or later is preferred. 2022-03-21T03:54:31,428 You have to install Thrift (0.11.0 or later) to compile our thrift file into python code. Below is the official 2022-03-21T03:54:31,428 tutorial of installation, eventually, you should have a thrift executable. 2022-03-21T03:54:31,429 ``` 2022-03-21T03:54:31,429 http://thrift.apache.org/docs/install/ 2022-03-21T03:54:31,429 ``` 2022-03-21T03:54:31,430 Before starting you need to install `requirements_dev.txt` in your python environment, e.g. by calling 2022-03-21T03:54:31,430 ``` 2022-03-21T03:54:31,430 pip install -r requirements_dev.txt 2022-03-21T03:54:31,431 ``` 2022-03-21T03:54:31,431 ### Compile the thrift library and Debug 2022-03-21T03:54:31,432 In the root of IoTDB's source code folder, run `mvn clean generate-sources -pl client-py -am`. 2022-03-21T03:54:31,433 This will automatically delete and repopulate the folder `iotdb/thrift` with the generated thrift files. 2022-03-21T03:54:31,433 This folder is ignored from git and should **never be pushed to git!** 2022-03-21T03:54:31,433 **Notice** Do not upload `iotdb/thrift` to the git repo. 2022-03-21T03:54:31,434 ### Session Client & Example 2022-03-21T03:54:31,435 We packed up the Thrift interface in `client-py/src/iotdb/Session.py` (similar with its Java counterpart), also provided 2022-03-21T03:54:31,435 an example file `client-py/src/SessionExample.py` of how to use the session module. please read it carefully. 2022-03-21T03:54:31,436 Or, another simple example: 2022-03-21T03:54:31,437 ```python 2022-03-21T03:54:31,437 from iotdb.Session import Session 2022-03-21T03:54:31,438 ip = "127.0.0.1" 2022-03-21T03:54:31,438 port_ = "6667" 2022-03-21T03:54:31,438 username_ = 'root' 2022-03-21T03:54:31,439 password_ = 'root' 2022-03-21T03:54:31,439 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:31,439 session.open(False) 2022-03-21T03:54:31,440 zone = session.get_time_zone() 2022-03-21T03:54:31,440 session.close() 2022-03-21T03:54:31,440 ``` 2022-03-21T03:54:31,441 ### Tests 2022-03-21T03:54:31,441 Please add your custom tests in `tests` folder. 2022-03-21T03:54:31,442 To run all defined tests just type `pytest .` in the root folder. 2022-03-21T03:54:31,442 **Notice** Some tests need docker to be started on your system as a test instance is started in a docker container using [testcontainers](https://testcontainers-python.readthedocs.io/en/latest/index.html). 2022-03-21T03:54:31,443 ### Futher Tools 2022-03-21T03:54:31,443 [black](https://pypi.org/project/black/) and [flake8](https://pypi.org/project/flake8/) are installed for autoformatting and linting. 2022-03-21T03:54:31,444 Both can be run by `black .` or `flake8 .` respectively. 2022-03-21T03:54:31,444 ## Releasing 2022-03-21T03:54:31,445 To do a release just ensure that you have the right set of generated thrift files. 2022-03-21T03:54:31,445 Then run linting and auto-formatting. 2022-03-21T03:54:31,445 Then, ensure that all tests work (via `pytest .`). 2022-03-21T03:54:31,446 Then you are good to go to do a release! 2022-03-21T03:54:31,446 ### Preparing your environment 2022-03-21T03:54:31,447 First, install all necessary dev dependencies via `pip install -r requirements_dev.txt`. 2022-03-21T03:54:31,448 ### Doing the Release 2022-03-21T03:54:31,448 There is a convenient script `release.sh` to do all steps for a release. 2022-03-21T03:54:31,449 Namely, these are 2022-03-21T03:54:31,449 * Remove all transient directories from last release (if exists) 2022-03-21T03:54:31,449 * (Re-)generate all generated sources via mvn 2022-03-21T03:54:31,450 * Run Linting (flake8) 2022-03-21T03:54:31,450 * Run Tests via pytest 2022-03-21T03:54:31,450 * Build 2022-03-21T03:54:31,451 * Release to pypi 2022-03-21T03:54:31,452 running egg_info 2022-03-21T03:54:31,452 writing manifest file 'apache_iotdb.egg-info/SOURCES.txt' 2022-03-21T03:54:31,452 /usr/local/lib/python3.7/dist-packages/setuptools/_distutils/dist.py:275: UserWarning: Unknown distribution option: 'website' 2022-03-21T03:54:31,453 warnings.warn(msg) 2022-03-21T03:54:31,453 /usr/local/lib/python3.7/dist-packages/setuptools/dist.py:493: UserWarning: Normalizing '0.13.0-1' to '0.13.0.post1' 2022-03-21T03:54:31,454 warnings.warn(tmpl.format(**locals())) 2022-03-21T03:54:31,575 Getting requirements to build wheel: finished with status 'done' 2022-03-21T03:54:31,596 Created temporary directory: /tmp/pip-modern-metadata-og97z8gh 2022-03-21T03:54:31,602 Preparing metadata (pyproject.toml): started 2022-03-21T03:54:31,604 Running command Preparing metadata (pyproject.toml) 2022-03-21T03:54:33,335 2022-03-21T03:54:33,343 # Apache IoTDB 2022-03-21T03:54:33,343 [![Main Mac and Linux](https://github.com/apache/iotdb/actions/workflows/main-unix.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-unix.yml) 2022-03-21T03:54:33,344 [![Main Win](https://github.com/apache/iotdb/actions/workflows/main-win.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-win.yml) 2022-03-21T03:54:33,344 [![coveralls](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master)](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master) 2022-03-21T03:54:33,344 [![GitHub release](https://img.shields.io/github/release/apache/iotdb.svg)](https://github.com/apache/iotdb/releases) 2022-03-21T03:54:33,345 [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) 2022-03-21T03:54:33,345 ![](https://github-size-badge.herokuapp.com/apache/iotdb.svg) 2022-03-21T03:54:33,345 ![](https://img.shields.io/github/downloads/apache/iotdb/total.svg) 2022-03-21T03:54:33,346 ![](https://img.shields.io/badge/platform-win10%20%7C%20macox%20%7C%20linux-yellow.svg) 2022-03-21T03:54:33,346 ![](https://img.shields.io/badge/java--language-1.8-blue.svg) 2022-03-21T03:54:33,346 [![IoTDB Website](https://img.shields.io/website-up-down-green-red/https/shields.io.svg?label=iotdb-website)](https://iotdb.apache.org/) 2022-03-21T03:54:33,347 Apache IoTDB (Database for Internet of Things) is an IoT native database with high performance for 2022-03-21T03:54:33,347 data management and analysis, deployable on the edge and the cloud. Due to its light-weight 2022-03-21T03:54:33,348 architecture, high performance and rich feature set together with its deep integration with 2022-03-21T03:54:33,348 Apache Hadoop, Spark and Flink, Apache IoTDB can meet the requirements of massive data storage, 2022-03-21T03:54:33,348 high-speed data ingestion and complex data analysis in the IoT industrial fields. 2022-03-21T03:54:33,349 # Apache IoTDB Python Client API 2022-03-21T03:54:33,350 Using the package, you can write data to IoTDB, read data from IoTDB and maintain the schema of IoTDB. 2022-03-21T03:54:33,351 ## Requirements 2022-03-21T03:54:33,351 You have to install thrift (>=0.13) before using the package. 2022-03-21T03:54:33,352 ## How to use (Example) 2022-03-21T03:54:33,353 First, download the package: `pip3 install apache-iotdb` 2022-03-21T03:54:33,353 You can get an example of using the package to read and write data at here: [Example](https://github.com/apache/iotdb/blob/rel/0.11/client-py/src/SessionExample.py) 2022-03-21T03:54:33,354 (you need to add `import iotdb` in the head of the file) 2022-03-21T03:54:33,355 Or: 2022-03-21T03:54:33,355 ```python 2022-03-21T03:54:33,356 from iotdb.Session import Session 2022-03-21T03:54:33,356 ip = "127.0.0.1" 2022-03-21T03:54:33,357 port_ = "6667" 2022-03-21T03:54:33,357 username_ = 'root' 2022-03-21T03:54:33,357 password_ = 'root' 2022-03-21T03:54:33,358 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:33,358 session.open(False) 2022-03-21T03:54:33,358 zone = session.get_time_zone() 2022-03-21T03:54:33,359 session.close() 2022-03-21T03:54:33,359 ``` 2022-03-21T03:54:33,360 ## IoTDB Testcontainer 2022-03-21T03:54:33,360 The Test Support is based on the lib `testcontainers` (https://testcontainers-python.readthedocs.io/en/latest/index.html) which you need to install in your project if you want to use the feature. 2022-03-21T03:54:33,361 To start (and stop) an IoTDB Database in a Docker container simply do: 2022-03-21T03:54:33,361 ``` 2022-03-21T03:54:33,362 class MyTestCase(unittest.TestCase): 2022-03-21T03:54:33,362 def test_something(self): 2022-03-21T03:54:33,362 with IoTDBContainer() as c: 2022-03-21T03:54:33,363 session = Session('localhost', c.get_exposed_port(6667), 'root', 'root') 2022-03-21T03:54:33,363 session.open(False) 2022-03-21T03:54:33,363 result = session.execute_query_statement("SHOW TIMESERIES") 2022-03-21T03:54:33,364 print(result) 2022-03-21T03:54:33,364 session.close() 2022-03-21T03:54:33,364 ``` 2022-03-21T03:54:33,365 by default it will load the image `apache/iotdb:latest`, if you want a specific version just pass it like e.g. `IoTDBContainer("apache/iotdb:0.12.0")` to get version `0.12.0` running. 2022-03-21T03:54:33,366 ## Pandas Support 2022-03-21T03:54:33,366 To easily transform a query result to a [Pandas Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) 2022-03-21T03:54:33,367 the SessionDataSet has a method `.todf()` which consumes the dataset and transforms it to a pandas dataframe. 2022-03-21T03:54:33,367 Example: 2022-03-21T03:54:33,368 ```python 2022-03-21T03:54:33,369 from iotdb.Session import Session 2022-03-21T03:54:33,369 ip = "127.0.0.1" 2022-03-21T03:54:33,370 port_ = "6667" 2022-03-21T03:54:33,370 username_ = 'root' 2022-03-21T03:54:33,370 password_ = 'root' 2022-03-21T03:54:33,371 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:33,371 session.open(False) 2022-03-21T03:54:33,371 result = session.execute_query_statement("SELECT * FROM root.*") 2022-03-21T03:54:33,372 # Transform to Pandas Dataset 2022-03-21T03:54:33,372 df = result.todf() 2022-03-21T03:54:33,373 session.close() 2022-03-21T03:54:33,373 # Now you can work with the dataframe 2022-03-21T03:54:33,374 df = ... 2022-03-21T03:54:33,374 ``` 2022-03-21T03:54:33,375 ## Developers 2022-03-21T03:54:33,375 ### Introduction 2022-03-21T03:54:33,376 This is an example of how to connect to IoTDB with python, using the thrift rpc interfaces. Things 2022-03-21T03:54:33,376 are almost the same on Windows or Linux, but pay attention to the difference like path separator. 2022-03-21T03:54:33,377 ### Prerequisites 2022-03-21T03:54:33,378 python3.7 or later is preferred. 2022-03-21T03:54:33,378 You have to install Thrift (0.11.0 or later) to compile our thrift file into python code. Below is the official 2022-03-21T03:54:33,379 tutorial of installation, eventually, you should have a thrift executable. 2022-03-21T03:54:33,379 ``` 2022-03-21T03:54:33,380 http://thrift.apache.org/docs/install/ 2022-03-21T03:54:33,380 ``` 2022-03-21T03:54:33,381 Before starting you need to install `requirements_dev.txt` in your python environment, e.g. by calling 2022-03-21T03:54:33,381 ``` 2022-03-21T03:54:33,381 pip install -r requirements_dev.txt 2022-03-21T03:54:33,382 ``` 2022-03-21T03:54:33,382 ### Compile the thrift library and Debug 2022-03-21T03:54:33,383 In the root of IoTDB's source code folder, run `mvn clean generate-sources -pl client-py -am`. 2022-03-21T03:54:33,383 This will automatically delete and repopulate the folder `iotdb/thrift` with the generated thrift files. 2022-03-21T03:54:33,384 This folder is ignored from git and should **never be pushed to git!** 2022-03-21T03:54:33,384 **Notice** Do not upload `iotdb/thrift` to the git repo. 2022-03-21T03:54:33,385 ### Session Client & Example 2022-03-21T03:54:33,386 We packed up the Thrift interface in `client-py/src/iotdb/Session.py` (similar with its Java counterpart), also provided 2022-03-21T03:54:33,386 an example file `client-py/src/SessionExample.py` of how to use the session module. please read it carefully. 2022-03-21T03:54:33,387 Or, another simple example: 2022-03-21T03:54:33,388 ```python 2022-03-21T03:54:33,388 from iotdb.Session import Session 2022-03-21T03:54:33,389 ip = "127.0.0.1" 2022-03-21T03:54:33,389 port_ = "6667" 2022-03-21T03:54:33,389 username_ = 'root' 2022-03-21T03:54:33,390 password_ = 'root' 2022-03-21T03:54:33,390 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:33,390 session.open(False) 2022-03-21T03:54:33,391 zone = session.get_time_zone() 2022-03-21T03:54:33,391 session.close() 2022-03-21T03:54:33,391 ``` 2022-03-21T03:54:33,392 ### Tests 2022-03-21T03:54:33,392 Please add your custom tests in `tests` folder. 2022-03-21T03:54:33,393 To run all defined tests just type `pytest .` in the root folder. 2022-03-21T03:54:33,393 **Notice** Some tests need docker to be started on your system as a test instance is started in a docker container using [testcontainers](https://testcontainers-python.readthedocs.io/en/latest/index.html). 2022-03-21T03:54:33,394 ### Futher Tools 2022-03-21T03:54:33,395 [black](https://pypi.org/project/black/) and [flake8](https://pypi.org/project/flake8/) are installed for autoformatting and linting. 2022-03-21T03:54:33,395 Both can be run by `black .` or `flake8 .` respectively. 2022-03-21T03:54:33,396 ## Releasing 2022-03-21T03:54:33,396 To do a release just ensure that you have the right set of generated thrift files. 2022-03-21T03:54:33,396 Then run linting and auto-formatting. 2022-03-21T03:54:33,397 Then, ensure that all tests work (via `pytest .`). 2022-03-21T03:54:33,397 Then you are good to go to do a release! 2022-03-21T03:54:33,398 ### Preparing your environment 2022-03-21T03:54:33,398 First, install all necessary dev dependencies via `pip install -r requirements_dev.txt`. 2022-03-21T03:54:33,399 ### Doing the Release 2022-03-21T03:54:33,399 There is a convenient script `release.sh` to do all steps for a release. 2022-03-21T03:54:33,400 Namely, these are 2022-03-21T03:54:33,400 * Remove all transient directories from last release (if exists) 2022-03-21T03:54:33,401 * (Re-)generate all generated sources via mvn 2022-03-21T03:54:33,401 * Run Linting (flake8) 2022-03-21T03:54:33,401 * Run Tests via pytest 2022-03-21T03:54:33,402 * Build 2022-03-21T03:54:33,402 * Release to pypi 2022-03-21T03:54:33,402 running dist_info 2022-03-21T03:54:33,403 creating /tmp/pip-modern-metadata-og97z8gh/apache_iotdb.egg-info 2022-03-21T03:54:33,403 writing manifest file '/tmp/pip-modern-metadata-og97z8gh/apache_iotdb.egg-info/SOURCES.txt' 2022-03-21T03:54:33,411 writing manifest file '/tmp/pip-modern-metadata-og97z8gh/apache_iotdb.egg-info/SOURCES.txt' 2022-03-21T03:54:33,983 /usr/local/lib/python3.7/dist-packages/setuptools/_distutils/dist.py:275: UserWarning: Unknown distribution option: 'website' 2022-03-21T03:54:33,984 warnings.warn(msg) 2022-03-21T03:54:33,984 /usr/local/lib/python3.7/dist-packages/setuptools/dist.py:493: UserWarning: Normalizing '0.13.0-1' to '0.13.0.post1' 2022-03-21T03:54:33,985 warnings.warn(tmpl.format(**locals())) 2022-03-21T03:54:34,115 Preparing metadata (pyproject.toml): finished with status 'done' 2022-03-21T03:54:34,131 Source in /tmp/pip-wheel-aubzjpfo/apache-iotdb_ed704d8e9d644213978f453f55e6c9a8 has version 0.13.0.post1, which satisfies requirement apache-iotdb==0.13.0.post1 from https://files.pythonhosted.org/packages/7e/3e/40f0d900e04598036cc65ae437a2ee9f4aa149860d434a6f4b291460582c/apache-iotdb-0.13.0.post1.tar.gz#sha256=1f971f4ef6525a5971794967ba5e9a5ee4858237d17493c0de889cb14f9f76e3 2022-03-21T03:54:34,133 Removed apache-iotdb==0.13.0.post1 from https://files.pythonhosted.org/packages/7e/3e/40f0d900e04598036cc65ae437a2ee9f4aa149860d434a6f4b291460582c/apache-iotdb-0.13.0.post1.tar.gz#sha256=1f971f4ef6525a5971794967ba5e9a5ee4858237d17493c0de889cb14f9f76e3 from build tracker '/tmp/pip-req-tracker-ww1obhwm' 2022-03-21T03:54:34,148 Created temporary directory: /tmp/pip-unpack-5eau31d9 2022-03-21T03:54:34,149 Building wheels for collected packages: apache-iotdb 2022-03-21T03:54:34,159 Created temporary directory: /tmp/pip-wheel-_zsv3va3 2022-03-21T03:54:34,159 Destination directory: /tmp/pip-wheel-_zsv3va3 2022-03-21T03:54:34,164 Building wheel for apache-iotdb (pyproject.toml): started 2022-03-21T03:54:34,166 Running command Building wheel for apache-iotdb (pyproject.toml) 2022-03-21T03:54:35,980 2022-03-21T03:54:35,989 # Apache IoTDB 2022-03-21T03:54:35,990 [![Main Mac and Linux](https://github.com/apache/iotdb/actions/workflows/main-unix.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-unix.yml) 2022-03-21T03:54:35,990 [![Main Win](https://github.com/apache/iotdb/actions/workflows/main-win.yml/badge.svg)](https://github.com/apache/iotdb/actions/workflows/main-win.yml) 2022-03-21T03:54:35,990 [![coveralls](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master)](https://coveralls.io/repos/github/apache/iotdb/badge.svg?branch=master) 2022-03-21T03:54:35,990 [![GitHub release](https://img.shields.io/github/release/apache/iotdb.svg)](https://github.com/apache/iotdb/releases) 2022-03-21T03:54:35,991 [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) 2022-03-21T03:54:35,991 ![](https://github-size-badge.herokuapp.com/apache/iotdb.svg) 2022-03-21T03:54:35,991 ![](https://img.shields.io/github/downloads/apache/iotdb/total.svg) 2022-03-21T03:54:35,992 ![](https://img.shields.io/badge/platform-win10%20%7C%20macox%20%7C%20linux-yellow.svg) 2022-03-21T03:54:35,992 ![](https://img.shields.io/badge/java--language-1.8-blue.svg) 2022-03-21T03:54:35,992 [![IoTDB Website](https://img.shields.io/website-up-down-green-red/https/shields.io.svg?label=iotdb-website)](https://iotdb.apache.org/) 2022-03-21T03:54:35,993 Apache IoTDB (Database for Internet of Things) is an IoT native database with high performance for 2022-03-21T03:54:35,993 data management and analysis, deployable on the edge and the cloud. Due to its light-weight 2022-03-21T03:54:35,994 architecture, high performance and rich feature set together with its deep integration with 2022-03-21T03:54:35,994 Apache Hadoop, Spark and Flink, Apache IoTDB can meet the requirements of massive data storage, 2022-03-21T03:54:35,994 high-speed data ingestion and complex data analysis in the IoT industrial fields. 2022-03-21T03:54:35,995 # Apache IoTDB Python Client API 2022-03-21T03:54:35,996 Using the package, you can write data to IoTDB, read data from IoTDB and maintain the schema of IoTDB. 2022-03-21T03:54:35,997 ## Requirements 2022-03-21T03:54:35,997 You have to install thrift (>=0.13) before using the package. 2022-03-21T03:54:35,998 ## How to use (Example) 2022-03-21T03:54:35,999 First, download the package: `pip3 install apache-iotdb` 2022-03-21T03:54:35,999 You can get an example of using the package to read and write data at here: [Example](https://github.com/apache/iotdb/blob/rel/0.11/client-py/src/SessionExample.py) 2022-03-21T03:54:36,000 (you need to add `import iotdb` in the head of the file) 2022-03-21T03:54:36,001 Or: 2022-03-21T03:54:36,002 ```python 2022-03-21T03:54:36,002 from iotdb.Session import Session 2022-03-21T03:54:36,003 ip = "127.0.0.1" 2022-03-21T03:54:36,003 port_ = "6667" 2022-03-21T03:54:36,004 username_ = 'root' 2022-03-21T03:54:36,004 password_ = 'root' 2022-03-21T03:54:36,004 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:36,005 session.open(False) 2022-03-21T03:54:36,005 zone = session.get_time_zone() 2022-03-21T03:54:36,005 session.close() 2022-03-21T03:54:36,006 ``` 2022-03-21T03:54:36,007 ## IoTDB Testcontainer 2022-03-21T03:54:36,007 The Test Support is based on the lib `testcontainers` (https://testcontainers-python.readthedocs.io/en/latest/index.html) which you need to install in your project if you want to use the feature. 2022-03-21T03:54:36,008 To start (and stop) an IoTDB Database in a Docker container simply do: 2022-03-21T03:54:36,009 ``` 2022-03-21T03:54:36,009 class MyTestCase(unittest.TestCase): 2022-03-21T03:54:36,009 def test_something(self): 2022-03-21T03:54:36,010 with IoTDBContainer() as c: 2022-03-21T03:54:36,010 session = Session('localhost', c.get_exposed_port(6667), 'root', 'root') 2022-03-21T03:54:36,010 session.open(False) 2022-03-21T03:54:36,011 result = session.execute_query_statement("SHOW TIMESERIES") 2022-03-21T03:54:36,011 print(result) 2022-03-21T03:54:36,011 session.close() 2022-03-21T03:54:36,012 ``` 2022-03-21T03:54:36,012 by default it will load the image `apache/iotdb:latest`, if you want a specific version just pass it like e.g. `IoTDBContainer("apache/iotdb:0.12.0")` to get version `0.12.0` running. 2022-03-21T03:54:36,013 ## Pandas Support 2022-03-21T03:54:36,014 To easily transform a query result to a [Pandas Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) 2022-03-21T03:54:36,014 the SessionDataSet has a method `.todf()` which consumes the dataset and transforms it to a pandas dataframe. 2022-03-21T03:54:36,015 Example: 2022-03-21T03:54:36,016 ```python 2022-03-21T03:54:36,017 from iotdb.Session import Session 2022-03-21T03:54:36,017 ip = "127.0.0.1" 2022-03-21T03:54:36,018 port_ = "6667" 2022-03-21T03:54:36,018 username_ = 'root' 2022-03-21T03:54:36,018 password_ = 'root' 2022-03-21T03:54:36,019 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:36,019 session.open(False) 2022-03-21T03:54:36,019 result = session.execute_query_statement("SELECT * FROM root.*") 2022-03-21T03:54:36,020 # Transform to Pandas Dataset 2022-03-21T03:54:36,020 df = result.todf() 2022-03-21T03:54:36,021 session.close() 2022-03-21T03:54:36,021 # Now you can work with the dataframe 2022-03-21T03:54:36,022 df = ... 2022-03-21T03:54:36,022 ``` 2022-03-21T03:54:36,023 ## Developers 2022-03-21T03:54:36,023 ### Introduction 2022-03-21T03:54:36,024 This is an example of how to connect to IoTDB with python, using the thrift rpc interfaces. Things 2022-03-21T03:54:36,024 are almost the same on Windows or Linux, but pay attention to the difference like path separator. 2022-03-21T03:54:36,025 ### Prerequisites 2022-03-21T03:54:36,025 python3.7 or later is preferred. 2022-03-21T03:54:36,026 You have to install Thrift (0.11.0 or later) to compile our thrift file into python code. Below is the official 2022-03-21T03:54:36,026 tutorial of installation, eventually, you should have a thrift executable. 2022-03-21T03:54:36,027 ``` 2022-03-21T03:54:36,027 http://thrift.apache.org/docs/install/ 2022-03-21T03:54:36,027 ``` 2022-03-21T03:54:36,028 Before starting you need to install `requirements_dev.txt` in your python environment, e.g. by calling 2022-03-21T03:54:36,028 ``` 2022-03-21T03:54:36,028 pip install -r requirements_dev.txt 2022-03-21T03:54:36,029 ``` 2022-03-21T03:54:36,029 ### Compile the thrift library and Debug 2022-03-21T03:54:36,030 In the root of IoTDB's source code folder, run `mvn clean generate-sources -pl client-py -am`. 2022-03-21T03:54:36,030 This will automatically delete and repopulate the folder `iotdb/thrift` with the generated thrift files. 2022-03-21T03:54:36,031 This folder is ignored from git and should **never be pushed to git!** 2022-03-21T03:54:36,031 **Notice** Do not upload `iotdb/thrift` to the git repo. 2022-03-21T03:54:36,032 ### Session Client & Example 2022-03-21T03:54:36,033 We packed up the Thrift interface in `client-py/src/iotdb/Session.py` (similar with its Java counterpart), also provided 2022-03-21T03:54:36,033 an example file `client-py/src/SessionExample.py` of how to use the session module. please read it carefully. 2022-03-21T03:54:36,034 Or, another simple example: 2022-03-21T03:54:36,035 ```python 2022-03-21T03:54:36,035 from iotdb.Session import Session 2022-03-21T03:54:36,036 ip = "127.0.0.1" 2022-03-21T03:54:36,036 port_ = "6667" 2022-03-21T03:54:36,037 username_ = 'root' 2022-03-21T03:54:36,038 password_ = 'root' 2022-03-21T03:54:36,038 session = Session(ip, port_, username_, password_) 2022-03-21T03:54:36,038 session.open(False) 2022-03-21T03:54:36,039 zone = session.get_time_zone() 2022-03-21T03:54:36,039 session.close() 2022-03-21T03:54:36,039 ``` 2022-03-21T03:54:36,040 ### Tests 2022-03-21T03:54:36,041 Please add your custom tests in `tests` folder. 2022-03-21T03:54:36,041 To run all defined tests just type `pytest .` in the root folder. 2022-03-21T03:54:36,042 **Notice** Some tests need docker to be started on your system as a test instance is started in a docker container using [testcontainers](https://testcontainers-python.readthedocs.io/en/latest/index.html). 2022-03-21T03:54:36,042 ### Futher Tools 2022-03-21T03:54:36,043 [black](https://pypi.org/project/black/) and [flake8](https://pypi.org/project/flake8/) are installed for autoformatting and linting. 2022-03-21T03:54:36,044 Both can be run by `black .` or `flake8 .` respectively. 2022-03-21T03:54:36,044 ## Releasing 2022-03-21T03:54:36,045 To do a release just ensure that you have the right set of generated thrift files. 2022-03-21T03:54:36,045 Then run linting and auto-formatting. 2022-03-21T03:54:36,046 Then, ensure that all tests work (via `pytest .`). 2022-03-21T03:54:36,046 Then you are good to go to do a release! 2022-03-21T03:54:36,047 ### Preparing your environment 2022-03-21T03:54:36,047 First, install all necessary dev dependencies via `pip install -r requirements_dev.txt`. 2022-03-21T03:54:36,048 ### Doing the Release 2022-03-21T03:54:36,049 There is a convenient script `release.sh` to do all steps for a release. 2022-03-21T03:54:36,049 Namely, these are 2022-03-21T03:54:36,049 * Remove all transient directories from last release (if exists) 2022-03-21T03:54:36,050 * (Re-)generate all generated sources via mvn 2022-03-21T03:54:36,050 * Run Linting (flake8) 2022-03-21T03:54:36,050 * Run Tests via pytest 2022-03-21T03:54:36,051 * Build 2022-03-21T03:54:36,051 * Release to pypi 2022-03-21T03:54:36,051 running bdist_wheel 2022-03-21T03:54:36,408 running build 2022-03-21T03:54:36,408 running build_py 2022-03-21T03:54:36,416 creating build 2022-03-21T03:54:36,417 creating build/lib 2022-03-21T03:54:36,417 creating build/lib/tests 2022-03-21T03:54:36,419 copying tests/tablet_performance_comparison.py -> build/lib/tests 2022-03-21T03:54:36,424 copying tests/__init__.py -> build/lib/tests 2022-03-21T03:54:36,427 copying tests/test_dataframe.py -> build/lib/tests 2022-03-21T03:54:36,430 copying tests/test_todf.py -> build/lib/tests 2022-03-21T03:54:36,435 creating build/lib/iotdb 2022-03-21T03:54:36,436 copying iotdb/__init__.py -> build/lib/iotdb 2022-03-21T03:54:36,440 copying iotdb/Session.py -> build/lib/iotdb 2022-03-21T03:54:36,445 copying iotdb/IoTDBContainer.py -> build/lib/iotdb 2022-03-21T03:54:36,450 creating build/lib/iotdb/thrift 2022-03-21T03:54:36,451 copying iotdb/thrift/__init__.py -> build/lib/iotdb/thrift 2022-03-21T03:54:36,455 creating build/lib/iotdb/utils 2022-03-21T03:54:36,457 copying iotdb/utils/__init__.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,460 copying iotdb/utils/Tablet.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,464 copying iotdb/utils/NumpyTablet.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,467 copying iotdb/utils/SessionDataSet.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,470 copying iotdb/utils/RowRecord.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,473 copying iotdb/utils/Field.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,478 copying iotdb/utils/IoTDBRpcDataSet.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,482 copying iotdb/utils/BitMap.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,485 copying iotdb/utils/IoTDBConstants.py -> build/lib/iotdb/utils 2022-03-21T03:54:36,489 creating build/lib/iotdb/thrift/rpc 2022-03-21T03:54:36,490 copying iotdb/thrift/rpc/__init__.py -> build/lib/iotdb/thrift/rpc 2022-03-21T03:54:36,494 copying iotdb/thrift/rpc/ttypes.py -> build/lib/iotdb/thrift/rpc 2022-03-21T03:54:36,509 copying iotdb/thrift/rpc/TSIService.py -> build/lib/iotdb/thrift/rpc 2022-03-21T03:54:36,530 copying iotdb/thrift/rpc/constants.py -> build/lib/iotdb/thrift/rpc 2022-03-21T03:54:36,552 running install 2022-03-21T03:54:36,613 running install_lib 2022-03-21T03:54:36,620 creating build/bdist.linux-armv7l 2022-03-21T03:54:36,621 creating build/bdist.linux-armv7l/wheel 2022-03-21T03:54:36,624 creating build/bdist.linux-armv7l/wheel/tests 2022-03-21T03:54:36,644 creating build/bdist.linux-armv7l/wheel/iotdb 2022-03-21T03:54:36,657 creating build/bdist.linux-armv7l/wheel/iotdb/thrift 2022-03-21T03:54:36,662 creating build/bdist.linux-armv7l/wheel/iotdb/thrift/rpc 2022-03-21T03:54:36,709 creating build/bdist.linux-armv7l/wheel/iotdb/utils 2022-03-21T03:54:36,959 running install_egg_info 2022-03-21T03:54:36,999 running egg_info 2022-03-21T03:54:37,032 writing manifest file 'apache_iotdb.egg-info/SOURCES.txt' 2022-03-21T03:54:37,035 Copying apache_iotdb.egg-info to build/bdist.linux-armv7l/wheel/apache_iotdb-0.13.0.post1-py3.7.egg-info 2022-03-21T03:54:37,053 running install_scripts 2022-03-21T03:54:37,406 /usr/local/lib/python3.7/dist-packages/setuptools/_distutils/dist.py:275: UserWarning: Unknown distribution option: 'website' 2022-03-21T03:54:37,407 warnings.warn(msg) 2022-03-21T03:54:37,407 /usr/local/lib/python3.7/dist-packages/setuptools/dist.py:493: UserWarning: Normalizing '0.13.0-1' to '0.13.0.post1' 2022-03-21T03:54:37,408 warnings.warn(tmpl.format(**locals())) 2022-03-21T03:54:37,573 Building wheel for apache-iotdb (pyproject.toml): finished with status 'done' 2022-03-21T03:54:37,590 Created wheel for apache-iotdb: filename=apache_iotdb-0.13.0.post1-py3-none-any.whl size=64146 sha256=d53cf02df2cc507d9caf48167c52d69e24abab9800430de3ff8abf8159bff63b 2022-03-21T03:54:37,592 Stored in directory: /tmp/pip-ephem-wheel-cache-v5aycn28/wheels/70/72/4f/6aaf27218831d15e71576cae6fa6468eccc3a5d3744d86eda6 2022-03-21T03:54:37,618 Successfully built apache-iotdb 2022-03-21T03:54:37,634 Removed build tracker: '/tmp/pip-req-tracker-ww1obhwm'