v0.1.5の変更点
ここではv0.1.5になるにあたって変更された点をご紹介します
Warning
v0.1.0-1aはreleasesにも書いてある通り歴史的に残してあるのであり、add_reaction等一部のメソッドが認証情報周りのエラーで動作しません。
大体の変更点は以下の通りです。
v0.1.5
Added
on_follow
イベントを追加しましたutils.py
にadd_auth_i
関数を追加しましたupper_to_lower
関数でネストされたdictのkeyを全て小文字化できるようになりましたNoteAction
クラスにemoji_count
メソッドを追加config.py
を追加、auth_i等は全てここに保存するようにchart.py
を追加しました。Drive
モデルにDriveAction
クラスを継承させるようにDriveAction
クラスのupload
メソッドの引数にis_sensitive
とforce
を追加utils.py
のapi
関数でfiles
を受け取るように
Changed
- 内部変更:
delete
send
等のメソッドを別のクラスに分けました - 内部変更: on_messageへの送信部分の条件式をres使わないように
- 内部変更: auth_iの共有方法を共通化
- 内部変更: auth_iの部分をconfig.iに置き換え
upload
メソッドの引数変更に伴うadd_file
の引数にis_sensitive
とforce
を追加- ほぼすべてのデータ格納用クラスをPydanticに置き換え(
Note
やFile
など) get_i
をUserAction
に移動
Removed
auth_i
削除に伴いapi.py
を削除しましたset_auth_i
add_auth_i
関数を削除しましたAuthI
モデルを削除しましたauth_i
をクラスやメソッドなどの引数から削除しましたMessage
クラスを削除しました。基本的に不要な情報があり、実装の複雑さが上がっているだけだからです。
Fixed
add_reaction
の認証情報周りの不具合が修正されました- ドキュメントでPydanticのモデルが表示できるようになりました
on_deleted
イベントが正常に動作しない既知の不具合を修正しましたapi
関数でデータがunicodeだと正常に動作しない場合があるのを修正
この更新の大きな変更点は内部的に捉えるとauth_i
(Token等の情報)になりますが、実際はクラスからモデルに移行したという点です。
今までの定義方法を見てみましょう。
class Note(object):
def __init__(self, text, cw):
self.text = text
self.cw = cw
def send(self):
pass
Pydantic
を使用した以下のようなモデルに変更されています。
class NoteAction(self):
def send(self):
pass
class Note(BaseModel, NoteAction):
text: str
cw: str
auth_i
と関連しており、
このバージョンからはapi.py
が削除されています。そのため、今までノートを投稿する際使用していたbot.note()
といった
書き方が出来ないようになっています。(BotBaseクラスからapiの継承が消えているため)しかしながら、今後は以下のようにノートを投稿することが可能です。
Note(text='hello mi.py').send()
大雑把な変更点
Warning
bot.note
などを使用していた場合はfrom mi import Note
等を行う必要があります。
bot.note(text='hello mi.py')
が使用不可に今後はNote(text='hello mi.py')
にbot.drive()
が利用不可に今後はDrive()
に
このライブラリに貢献しようとしている方への詳細な変更
Hint
開発者の方はここ見るよりCHANGELOGを見ていただけるとより詳細な変更点が分かると思います。というか、見たうえでここを見てください。
今回の変更点で開発者にとって大きな変更となるのは以下の通りです。
auth_i
周りがすべて消え、config.py
のinit
関数を使うようになった
これにより、ほぼすべての認証情報が今までは関数ごとに渡されていましたが、現在はconfig.py
をインポートして
config.i.token
等で取得ができるようになっています。
その他は微細な変更や機能追加、引数追加なので、それほど大きな変更ではありません。
Last update:
October 2, 2021