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

Reply via email to