Gerrrr commented on issue #51: URL: https://github.com/apache/otava/issues/51#issuecomment-3033374275
We've got the first PyPi release! https://pypi.org/project/apache-otava/ Tested via: ``` $ pip install apache-otava Collecting apache-otava Downloading apache_otava-0.6.0-py3-none-any.whl.metadata (1.0 kB) Collecting dateparser<2.0.0,>=1.0.0 (from apache-otava) Downloading dateparser-1.2.2-py3-none-any.whl.metadata (29 kB) Collecting expandvars<0.7.0,>=0.6.5 (from apache-otava) Using cached expandvars-0.6.5-py2.py3-none-any.whl.metadata (4.8 kB) Collecting google-cloud-bigquery<4.0.0,>=3.25.0 (from apache-otava) Downloading google_cloud_bigquery-3.34.0-py3-none-any.whl.metadata (8.0 kB) Collecting numpy==1.24 (from apache-otava) Downloading numpy-1.24.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.6 kB) Collecting pg8000<2.0.0,>=1.31.2 (from apache-otava) Downloading pg8000-1.31.2-py3-none-any.whl.metadata (74 kB) Collecting pystache<0.7.0,>=0.6.0 (from apache-otava) Downloading pystache-0.6.8-py3-none-any.whl.metadata (14 kB) Collecting python-dateutil<3.0.0,>=2.8.1 (from apache-otava) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting requests<3.0.0,>=2.25.1 (from apache-otava) Downloading requests-2.32.4-py3-none-any.whl.metadata (4.9 kB) Collecting ruamel.yaml==0.17.21 (from apache-otava) Downloading ruamel.yaml-0.17.21-py3-none-any.whl.metadata (13 kB) Collecting signal-processing-algorithms<2.0.0,>=1.3.2 (from apache-otava) Using cached signal_processing_algorithms-1.3.5-cp310-cp310-macosx_13_0_arm64.whl Collecting slack-sdk<4.0.0,>=3.4.2 (from apache-otava) Downloading slack_sdk-3.35.0-py2.py3-none-any.whl.metadata (15 kB) Collecting tabulate<0.9.0,>=0.8.7 (from apache-otava) Downloading tabulate-0.8.10-py3-none-any.whl.metadata (25 kB) Collecting validators<0.19.0,>=0.18.2 (from apache-otava) Downloading validators-0.18.2-py3-none-any.whl.metadata (1.3 kB) Collecting ruamel.yaml.clib>=0.2.6 (from ruamel.yaml==0.17.21->apache-otava) Downloading ruamel.yaml.clib-0.2.12-cp310-cp310-macosx_13_0_arm64.whl.metadata (1.2 kB) Collecting pytz>=2024.2 (from dateparser<2.0.0,>=1.0.0->apache-otava) Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB) Collecting regex>=2024.9.11 (from dateparser<2.0.0,>=1.0.0->apache-otava) Downloading regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl.metadata (40 kB) Collecting tzlocal>=0.2 (from dateparser<2.0.0,>=1.0.0->apache-otava) Downloading tzlocal-5.3.1-py3-none-any.whl.metadata (7.6 kB) Collecting google-api-core<3.0.0,>=2.11.1 (from google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading google_api_core-2.25.1-py3-none-any.whl.metadata (3.0 kB) Collecting google-auth<3.0.0,>=2.14.1 (from google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading google_auth-2.40.3-py2.py3-none-any.whl.metadata (6.2 kB) Collecting google-cloud-core<3.0.0,>=2.4.1 (from google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading google_cloud_core-2.4.3-py2.py3-none-any.whl.metadata (2.7 kB) Collecting google-resumable-media<3.0.0,>=2.0.0 (from google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading google_resumable_media-2.7.2-py2.py3-none-any.whl.metadata (2.2 kB) Collecting packaging>=24.2.0 (from google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB) Collecting googleapis-common-protos<2.0.0,>=1.56.2 (from google-api-core<3.0.0,>=2.11.1->google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading googleapis_common_protos-1.70.0-py3-none-any.whl.metadata (9.3 kB) Collecting protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.19.5 (from google-api-core<3.0.0,>=2.11.1->google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl.metadata (593 bytes) Collecting proto-plus<2.0.0,>=1.22.3 (from google-api-core<3.0.0,>=2.11.1->google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading proto_plus-1.26.1-py3-none-any.whl.metadata (2.2 kB) Collecting grpcio<2.0.0,>=1.33.2 (from google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading grpcio-1.73.1-cp310-cp310-macosx_11_0_universal2.whl.metadata (3.8 kB) Collecting grpcio-status<2.0.0,>=1.33.2 (from google-api-core[grpc]<3.0.0,>=2.11.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading grpcio_status-1.73.1-py3-none-any.whl.metadata (1.1 kB) Collecting cachetools<6.0,>=2.0.0 (from google-auth<3.0.0,>=2.14.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading cachetools-5.5.2-py3-none-any.whl.metadata (5.4 kB) Collecting pyasn1-modules>=0.2.1 (from google-auth<3.0.0,>=2.14.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading pyasn1_modules-0.4.2-py3-none-any.whl.metadata (3.5 kB) Collecting rsa<5,>=3.1.4 (from google-auth<3.0.0,>=2.14.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading rsa-4.9.1-py3-none-any.whl.metadata (5.6 kB) Collecting google-crc32c<2.0dev,>=1.0 (from google-resumable-media<3.0.0,>=2.0.0->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading google_crc32c-1.7.1-cp310-cp310-macosx_12_0_arm64.whl.metadata (2.3 kB) Collecting scramp>=1.4.5 (from pg8000<2.0.0,>=1.31.2->apache-otava) Downloading scramp-1.4.5-py3-none-any.whl.metadata (19 kB) Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.8.1->apache-otava) Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting charset_normalizer<4,>=2 (from requests<3.0.0,>=2.25.1->apache-otava) Downloading charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl.metadata (35 kB) Collecting idna<4,>=2.5 (from requests<3.0.0,>=2.25.1->apache-otava) Using cached idna-3.10-py3-none-any.whl.metadata (10 kB) Collecting urllib3<3,>=1.21.1 (from requests<3.0.0,>=2.25.1->apache-otava) Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB) Collecting certifi>=2017.4.17 (from requests<3.0.0,>=2.25.1->apache-otava) Downloading certifi-2025.6.15-py3-none-any.whl.metadata (2.4 kB) Collecting pyasn1>=0.1.3 (from rsa<5,>=3.1.4->google-auth<3.0.0,>=2.14.1->google-cloud-bigquery<4.0.0,>=3.25.0->apache-otava) Downloading pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB) Collecting more-itertools<9.0.0,>=8.2.0 (from signal-processing-algorithms<2.0.0,>=1.3.2->apache-otava) Downloading more_itertools-8.14.0-py3-none-any.whl.metadata (30 kB) Collecting scipy<2.0,>=1.3 (from signal-processing-algorithms<2.0.0,>=1.3.2->apache-otava) Downloading scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl.metadata (61 kB) Collecting structlog<20.0,>=19.1 (from signal-processing-algorithms<2.0.0,>=1.3.2->apache-otava) Downloading structlog-19.2.0-py2.py3-none-any.whl.metadata (12 kB) Collecting typing-extensions<4.0.0,>=3.7.4 (from signal-processing-algorithms<2.0.0,>=1.3.2->apache-otava) Downloading typing_extensions-3.10.0.2-py3-none-any.whl.metadata (2.1 kB) Collecting decorator>=3.4.0 (from validators<0.19.0,>=0.18.2->apache-otava) Downloading decorator-5.2.1-py3-none-any.whl.metadata (3.9 kB) Collecting asn1crypto>=1.5.1 (from scramp>=1.4.5->pg8000<2.0.0,>=1.31.2->apache-otava) Downloading asn1crypto-1.5.1-py2.py3-none-any.whl.metadata (13 kB) Downloading apache_otava-0.6.0-py3-none-any.whl (52 kB) Downloading numpy-1.24.0-cp310-cp310-macosx_11_0_arm64.whl (13.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 61.7 MB/s eta 0:00:00 Downloading ruamel.yaml-0.17.21-py3-none-any.whl (109 kB) Downloading dateparser-1.2.2-py3-none-any.whl (315 kB) Downloading expandvars-0.6.5-py2.py3-none-any.whl (6.5 kB) Downloading google_cloud_bigquery-3.34.0-py3-none-any.whl (253 kB) Downloading google_api_core-2.25.1-py3-none-any.whl (160 kB) Downloading google_auth-2.40.3-py2.py3-none-any.whl (216 kB) Downloading cachetools-5.5.2-py3-none-any.whl (10 kB) Downloading google_cloud_core-2.4.3-py2.py3-none-any.whl (29 kB) Downloading google_resumable_media-2.7.2-py2.py3-none-any.whl (81 kB) Downloading google_crc32c-1.7.1-cp310-cp310-macosx_12_0_arm64.whl (30 kB) Downloading googleapis_common_protos-1.70.0-py3-none-any.whl (294 kB) Downloading grpcio-1.73.1-cp310-cp310-macosx_11_0_universal2.whl (10.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.6/10.6 MB 67.7 MB/s eta 0:00:00 Downloading grpcio_status-1.73.1-py3-none-any.whl (14 kB) Downloading pg8000-1.31.2-py3-none-any.whl (54 kB) Downloading proto_plus-1.26.1-py3-none-any.whl (50 kB) Downloading protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl (425 kB) Downloading pystache-0.6.8-py3-none-any.whl (82 kB) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Downloading requests-2.32.4-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl (201 kB) Using cached idna-3.10-py3-none-any.whl (70 kB) Downloading rsa-4.9.1-py3-none-any.whl (34 kB) Downloading more_itertools-8.14.0-py3-none-any.whl (52 kB) Downloading scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl (30.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 30.1/30.1 MB 72.0 MB/s eta 0:00:00 Downloading slack_sdk-3.35.0-py2.py3-none-any.whl (293 kB) Downloading structlog-19.2.0-py2.py3-none-any.whl (39 kB) Downloading tabulate-0.8.10-py3-none-any.whl (29 kB) Downloading typing_extensions-3.10.0.2-py3-none-any.whl (26 kB) Downloading urllib3-2.5.0-py3-none-any.whl (129 kB) Downloading validators-0.18.2-py3-none-any.whl (19 kB) Downloading certifi-2025.6.15-py3-none-any.whl (157 kB) Downloading decorator-5.2.1-py3-none-any.whl (9.2 kB) Using cached packaging-25.0-py3-none-any.whl (66 kB) Downloading pyasn1-0.6.1-py3-none-any.whl (83 kB) Downloading pyasn1_modules-0.4.2-py3-none-any.whl (181 kB) Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB) Downloading regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl (284 kB) Downloading ruamel.yaml.clib-0.2.12-cp310-cp310-macosx_13_0_arm64.whl (131 kB) Downloading scramp-1.4.5-py3-none-any.whl (12 kB) Downloading asn1crypto-1.5.1-py2.py3-none-any.whl (105 kB) Using cached six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading tzlocal-5.3.1-py3-none-any.whl (18 kB) Installing collected packages: typing-extensions, pytz, expandvars, asn1crypto, urllib3, tzlocal, tabulate, slack-sdk, six, scramp, ruamel.yaml.clib, regex, pystache, pyasn1, protobuf, packaging, numpy, more-itertools, idna, grpcio, google-crc32c, decorator, charset_normalizer, certifi, cachetools, validators, structlog, scipy, ruamel.yaml, rsa, requests, python-dateutil, pyasn1-modules, proto-plus, googleapis-common-protos, google-resumable-media, signal-processing-algorithms, pg8000, grpcio-status, google-auth, dateparser, google-api-core, google-cloud-core, google-cloud-bigquery, apache-otava Successfully installed apache-otava-0.6.0 asn1crypto-1.5.1 cachetools-5.5.2 certifi-2025.6.15 charset_normalizer-3.4.2 dateparser-1.2.2 decorator-5.2.1 expandvars-0.6.5 google-api-core-2.25.1 google-auth-2.40.3 google-cloud-bigquery-3.34.0 google-cloud-core-2.4.3 google-crc32c-1.7.1 google-resumable-media-2.7.2 googleapis-common-protos-1.70.0 grpcio-1.73.1 grpcio-status-1.73.1 idna-3.10 more-itertools-8.14.0 numpy-1.24.0 packaging-25.0 pg8000-1.31.2 proto-plus-1.26.1 protobuf-6.31.1 pyasn1-0.6.1 pyasn1-modules-0.4.2 pystache-0.6.8 python-dateutil-2.9.0.post0 pytz-2025.2 regex-2024.11.6 requests-2.32.4 rsa-4.9.1 ruamel.yaml-0.17.21 ruamel.yaml.clib-0.2.12 scipy-1.15.3 scramp-1.4.5 signal-processing-algorithms-1.3.5 six-1.17.0 slack-sdk-3.35.0 structlog-19.2.0 tabulate-0.8.10 typing-extensions-3.10.0.2 tzlocal-5.3.1 urllib3-2.5.0 validators-0.18.2 $ OTAVA_CONFIG=otava.yaml otava analyze local.sample Computing change points for test local.sample... time commit metric1 metric2 ------------------------- -------- --------- --------- 2025-01-01 02:00:00 +0000 aaa0 154023 10.43 2025-01-02 02:00:00 +0000 aaa1 138455 10.23 2025-01-03 02:00:00 +0000 aaa2 143112 10.29 2025-01-04 02:00:00 +0000 aaa3 149190 10.91 2025-01-05 02:00:00 +0000 aaa4 132098 10.34 2025-01-06 02:00:00 +0000 aaa5 151344 10.69 ········· -12.9% ········· 2025-01-07 02:00:00 +0000 aaa6 155145 9.23 2025-01-08 02:00:00 +0000 aaa7 148889 9.11 2025-01-09 02:00:00 +0000 aaa8 149466 9.13 2025-01-10 02:00:00 +0000 aaa9 148209 9.03 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@otava.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org