英語の原文: https://argusic.com/subject/pyvesync

pyvesync

pyvesync は Etekcity & Levoit のスマートデバイスを管理するための python ライブラリです。

モックで動作するソース: GitHubPythonMITコミット 58eee3bdbfba

Python、MIT ライセンス. プロジェクト自身の表記: smart home、smarthome.

pyvesync は、依存するサービスを代わりのものに置き換えたうえで動作します。Argusic のエージェントが GPU のないクリーンなマシンで 3 分でインストールし、5 件のエラーに遭遇してすべてを自力で修正し、セッション全体が記録されました。

In the .venv, pyvesync 3.4.2 installs editable and its pytest suite passes 380/3; a real library run against a local schema-correct mock of the VeSync API logs in, retrieves devices, instantiates VeSyncOutlet15A, and turns it on and off.

クリーンなマシンでエージェントが最終的に得た結果 (エージェント自身の言葉)。 計測方法

Argusic が毎回新しいマシンで計測しています。 すべての数値はその証拠にリンクしています。 Argusic スコア 100 点中 92 点 (このプロジェクトの実行スコアの平均)。

概要

判定
モックで動作する
Argusic スコア
92 / 100
検証した実行のコスト
0.18 USD (実測)
記録された実行
1
最終テスト
スター
248
フォーク
145
未解決の Issue
73
ウォッチャー
19
サイズ
10 MB
作成日
最終プッシュ

プロジェクトのデータは GitHub から取得 (このページの冒頭にリンクあり)、更新日 。テストデータは Argusic によるもので (CC BY 4.0)、すべての数値は、完全なログ、録画、それらの sha256 ハッシュを含む実行ページにリンクしています。

計測した内容

この判定を決めた実行から取得しています。 各行は記録された値であり、推定値ではありません。

pyvesync のテスト中に各失敗で失われた時間 (記録された実行から作成)
各バーはエージェントが記録した失敗と、それにかかった時間です。この実行のデータのみから描いています。

うまくいかなかった点 (エージェント自身の言葉)

エージェント自身の言葉を、深刻なものから順に掲載しています。助言に書き換えることはありません。

  • My first API mock compared the plain-text password while the library sends MD5(password) (RequestGetTokenModel.hash_password), so login failed with the library's real VeSyncLoginError - mock-schema mismatch6 分
  • My device-list fixture lacked the required 'type' field, so mashumaro raised MissingField('type') in ResponseDeviceDetailsModel - mock-schema mismatch5 分
  • Mock server process was SIGHUP-killed when launched with '&' in the non-interactive shell (connection refused on 127.0.0.1:8931), an environment/harness artifact, not a repo bug4 分
  • My device-status endpoint path was wrong for the ESW15-USA outlet (library posts to /cloud/v1/deviceManaged/deviceStatus) - mock-schema mismatch4 分
  • My harness script used dev.state.device_status and indexing, but the library exposes state status via dev.state.device_status/is_on and DeviceContainer is a set - harness-script mistakes I fixed via next(iter(...))2 分
インストール時間
3 分
クリーンなマシンから完了まで
8 分
遭遇したエラーと修正したエラー
5 件に遭遇、5 件を人の手を借りずに修正
結果の証明方法
.venv/bin/python -m pytest exited 0 with '380 passed, 3 skipped'; e2e_check3.py against the mock printed login: True, get_devices: True, device 'Living Room Plug ESW15-USA VeSyncOutlet15A is_on=True', turn_on: True, turn_off: True, and the mock's request dump showed POST /cloud/v1/deviceManaged/deviceStatus with status 'on' then 'off'
使用したモデルのトークン
869,712
テストした正確なコミット
58eee3bdbfba
コンテナイメージ
sha256:cdd920bce783

計測していない内容

残りの半分です。この証拠がどこまでを示すのかを正確に確認できます。欠けている部分は欠けているものとして表示し、埋めることはありません。

GPU メモリのピーク
CPU マシンで実行したため、サンプリングする GPU がありませんでした
長時間の実行での振る舞い
各試行はドキュメントにある最小の設定と決まった時間予算を使うため、計測しているのは動作するかどうかであり、負荷のもとでどう持ちこたえるかではありません
実際のサービスに対する振る舞い
この実行は代わりのサービスに対してのみ検証されました

セッションを見る

クリーンなマシンから始まる実行の全体を、実際の速度で再生します。カットも早送りもしていません。

試行 1 の録画、実行日 。上の判定を決めた試行です。 この動画の元になったターミナル録画が証拠であり、sha256 フィンガープリントとともに保存されています。動画はそこからレンダリングしたものです。 再生ボタンを押すまで、動画ホストからは何も読み込まれません。

録画の最後

この判定を決めたターミナルセッションの最後の行を、記録されたとおりに表示しています。

======================== 380 passed, 3 skipped in 6.61s ========================
Everything verified. Final state: `.venv` with `pyvesync` 3.4.2 installed editable, 380/3 test pass…
 exited 1 in 31525ms:
======== Running on http://127.0.0.1:8931 ========
(Press CTRL+C to quit)
exec
/bin/sh -lc 'pkill -f vesync_mock.py; sleep 1; ps aux | grep vesync_mock.py | grep -v grep; echo "m…
 exited 143 in 0ms:
All work complete and verified. Final report:
tokens used
869,712
All work complete and verified. Final report:

セッション全体を再生 (クリーンなマシンからこの時点までのすべてのコマンド)。

テスト方法

1 つのエージェント、1 つのコンテナで、人の手は借りません。エージェントはプロジェクト自身のドキュメントに書かれた方法でインストールし、実行し、壊れた部分を修正します。以下はすべて、実際に起きたとおりに記録されています: ターミナルセッション、ログ、そして正確なコミットです。 評価方法の全文.

強みと限界

意見ではなく、計測された事実です。コンテンツの作成方法.

うまくいった点

  • 3 分でインストールできました。
  • 5 件のエラーすべてから、人の介入なしに回復しました。失敗が解決できる程度にはドキュメント化されていることを示しています。
  • ホストの報告によると、ライセンスは MIT です。

うまくいかなかった点、または不明な点

  • 代わりのサービスに対してのみ実行状態に達したため、実際のサービスで動作することはここでは証明されていません。
  • これまでの計測は 1 回です。1 回の試行は動作し得ることを示すだけで、安定して動作することは示しません。

同じ分野でテストしたプロジェクト

ここに挙げたものはすべて、Argusic がクリーンなマシンにインストールして実行しました。テストしていないものは表示されません。

実行履歴

テスト担当試行結果スコアコスト (USD)日時
Argusic Runner1/3モックで動作した92.000.18

トピック (出典: GitHub)

smart-homesmarthome

バッジを埋め込む

プロジェクトの README に貼る Markdown です。バッジはこのページにリンクします。利用条件: 利用規約ページ.

[![Tested by Argusic](https://argusic.com/badge/pyvesync.svg)](https://argusic.com/subject/pyvesync)

質問

pyvesync は動作しますか?
pyvesync は、外部サービスの代わりにモックを使って動作します. Argusic はクリーンなマシンで 3 分でインストールして起動し、途中で 5 件のエラーに遭遇し、セッションを記録しました。
Argusic は pyvesync をどのようにテストしましたか?
新しい使い捨てのマシンで、すべてのコマンドを記録しながらテストしました (リポジトリはコミット 58eee3bdbfba に固定)。記録された試行は 1 回で、手順の全体は評価方法のページに掲載しています。
pyvesync のテストにはいくらかかりましたか?
この判定を出した実行のコストは 0.18 USD です: 100 万トークンあたりの定価ではなく、実際の計算資源とモデルのコストです。その実行のページに記録されています。
pyvesync のインストールにはどのくらい時間がかかりますか?
この判定を決めた実行では、クリーンなマシンから実行状態まで 3 分でした。これは 1 回の計測された試行であり、平均ではありません。
pyvesync には GPU が必要ですか?
起動には必要ありません。Argusic は GPU のないマシンで実行状態に達しました。
pyvesync のインストールでは何がうまくいきませんか?
記録された実行では 5 件の問題が発生しました。そのうち 5 件は人の手を借りずに修正されました。それぞれの問題と、かかった時間をこのページに掲載しています。
pyvesync の証拠はどこにありますか?
記録された実行をこのページに掲載しており、それぞれが完全なログとターミナル録画にリンクしています。録画は sha256 フィンガープリントとともに保存されているため、こっそり改変することはできません。

Discussion