webcface package
Submodules
- webcface.canvas2d module
- webcface.canvas2d_base module
- webcface.canvas3d module
- webcface.canvas3d_base module
- webcface.client module
- webcface.client_data module
ClientData
ClientData.auto_reconnect
ClientData.canvas2d_store
ClientData.canvas3d_store
ClientData.clear_msg()
ClientData.connected
ClientData.func_listener_handlers
ClientData.func_result_store
ClientData.func_store
ClientData.get_member_id_from_name()
ClientData.get_member_name_from_id()
ClientData.has_msg()
ClientData.image_store
ClientData.is_self()
ClientData.log_store
ClientData.logger_internal
ClientData.member_ids
ClientData.member_lib_name
ClientData.member_lib_ver
ClientData.member_remote_addr
ClientData.on_canvas2d_change
ClientData.on_canvas2d_entry
ClientData.on_canvas3d_change
ClientData.on_canvas3d_entry
ClientData.on_func_entry
ClientData.on_image_change
ClientData.on_image_entry
ClientData.on_log_change
ClientData.on_log_entry
ClientData.on_member_entry
ClientData.on_ping
ClientData.on_sync
ClientData.on_text_change
ClientData.on_text_entry
ClientData.on_value_change
ClientData.on_value_entry
ClientData.on_view_change
ClientData.on_view_entry
ClientData.ping_status
ClientData.ping_status_req
ClientData.pop_msg()
ClientData.queue_first()
ClientData.queue_msg_always()
ClientData.queue_msg_online()
ClientData.queue_msg_req()
ClientData.recv_cv
ClientData.recv_queue
ClientData.self_member_id
ClientData.self_member_name
ClientData.svr_hostname
ClientData.svr_name
ClientData.svr_version
ClientData.sync_init_end
ClientData.sync_time_store
ClientData.text_store
ClientData.value_store
ClientData.view_store
ClientData.wait_empty()
ClientData.wait_msg()
FuncResultStore
SyncDataStore1
SyncDataStore1.add_req()
SyncDataStore1.clear_entry()
SyncDataStore1.clear_req()
SyncDataStore1.data_recv
SyncDataStore1.entry
SyncDataStore1.get_entry()
SyncDataStore1.get_recv()
SyncDataStore1.is_self()
SyncDataStore1.lock
SyncDataStore1.req
SyncDataStore1.self_member_name
SyncDataStore1.set_entry()
SyncDataStore1.set_recv()
SyncDataStore1.transfer_req()
SyncDataStore2
SyncDataStore2.add_req()
SyncDataStore2.data_recv
SyncDataStore2.data_send
SyncDataStore2.data_send_prev
SyncDataStore2.entry
SyncDataStore2.get_entry()
SyncDataStore2.get_members()
SyncDataStore2.get_recv()
SyncDataStore2.get_req()
SyncDataStore2.get_req_info()
SyncDataStore2.get_send_prev()
SyncDataStore2.init_member()
SyncDataStore2.is_self()
SyncDataStore2.lock
SyncDataStore2.req
SyncDataStore2.req_info
SyncDataStore2.self_member_name
SyncDataStore2.set_entry()
SyncDataStore2.set_recv()
SyncDataStore2.set_send()
SyncDataStore2.should_not_send_twice()
SyncDataStore2.should_send
SyncDataStore2.should_send_always()
SyncDataStore2.should_send_on_change()
SyncDataStore2.transfer_req()
SyncDataStore2.transfer_send()
SyncDataStore2.unset_recv()
- webcface.client_impl module
- webcface.components module
- webcface.field module
- webcface.func module
- webcface.func_info module
- webcface.func_listener module
- webcface.geometries module
- webcface.image module
- webcface.image_frame module
- webcface.log module
- webcface.log_handler module
- webcface.member module
Member
Member.canvas2d()
Member.canvas2d_entries()
Member.canvas3d()
Member.canvas3d_entries()
Member.func()
Member.func_entries()
Member.func_listener()
Member.funcs()
Member.image()
Member.image_entries()
Member.lib_name
Member.lib_version
Member.log()
Member.log_entries()
Member.name
Member.on_canvas2d_entry()
Member.on_canvas3d_entry()
Member.on_func_entry()
Member.on_image_entry()
Member.on_log_entry()
Member.on_ping()
Member.on_sync()
Member.on_text_entry()
Member.on_value_entry()
Member.on_view_entry()
Member.ping_status
Member.remote_addr
Member.request_ping_status()
Member.sync_time
Member.text()
Member.text_entries()
Member.texts()
Member.value()
Member.value_entries()
Member.values()
Member.variant()
Member.view()
Member.view_entries()
Member.views()
- webcface.message module
Call
CallResponse
CallResult
Canvas2D
Canvas2DEntry
Canvas2DReq
Canvas2DRes
Canvas3D
Canvas3DEntry
Canvas3DReq
Canvas3DRes
FuncInfo
Image
ImageEntry
ImageReq
ImageRes
Log
LogEntry
LogReq
LogRes
MessageBase
Ping
PingStatus
PingStatusReq
Sync
SyncInit
SyncInitEnd
Text
TextEntry
TextReq
TextRes
Value
ValueEntry
ValueReq
ValueRes
View
ViewEntry
ViewReq
ViewRes
c2b_to_c2d()
c2d_to_c2b()
c3b_to_c3d()
c3d_to_c3b()
int_to_time()
logline2msg()
msg2logline()
pack()
time_to_int()
unpack()
vb_to_vd()
vd_to_vb()
- webcface.temporal_component module
- webcface.text module
- webcface.transform module
- webcface.transform_impl module
- webcface.typing module
- webcface.value module
- webcface.view module
- webcface.view_base module
Module contents
- class webcface.Arg(name: str = '', type: int | type = ValType.NONE, min: SupportsFloat | None = None, max: SupportsFloat | None = None, init: SupportsFloat | bool | str | None = None, option: List[SupportsFloat | str] = [])[source]
Bases:
object
- property init: float | bool | str | None
- property max: float | None
- property min: float | None
- property name: str
- property option: List[float | str]
- property type: int
- class webcface.CallHandle(data: PromiseData)[source]
Bases:
object
- property args: List[float | bool | str]
- class webcface.Client(name: str = '', host: str = '127.0.0.1', port: int = 7530, auto_reconnect: bool = True, auto_sync: float | None = None)[source]
Bases:
Member
サーバーに接続する
詳細は Clientのドキュメント を参照
- Parameters:
name – 名前
host – サーバーのアドレス
port – サーバーのポート
auto_reconnect – (ver2.0〜) 通信が切断された時に自動で再接続する。(デフォルト: True)
auto_sync – (ver2.1〜) 指定した間隔(秒)ごとに別スレッドで自動的に sync() をする (デフォルト: None (syncしない))
- property connected: bool
サーバーに接続できていればtrue
ver2.0からプロパティ
- property logging_handler: Handler
webcfaceに出力するloggingのHandler
(ver2.1〜: Log名は “default”, log().handler と同じ)
- Returns:
logger.addHandler にセットして使う
- property logging_io: TextIOBase
webcfaceとstderrに出力するio
(ver2.1〜: Log名は “default”, log().io と同じ)
- on_member_entry(func: Callable) Callable [source]
Memberが追加されたときのイベント
コールバックの引数にはMemberオブジェクトが渡される。
ver2.0〜: * 呼び出したいコールバック関数をfuncとして
client.on_member_entry(func)
などとすれば関数を登録できる。 * または@client.on_member_entry
をデコレーターとして使う。
- property server_hostname: str
サーバーのホスト名 (ver2.0〜)
- property server_name: str
サーバーの識別情報
- Returns:
通常は”webcface”が返る
- property server_version: str
サーバーのバージョン
- sync(timeout: float | None = 0, auto_start: bool = True) None [source]
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する
実際に送信をするのは別スレッドであり、この関数はブロックしない。
サーバーに接続していない場合、start()を呼び出す。
ver2.0〜: 受信したデータがあれば各種コールバックをこのスレッドで呼び出し、
それがすべて完了するまでこの関数はブロックされる。 * ver2.0〜: timeoutが正の場合、データを受信してもしなくても timeout 経過するまでは繰り返しsync()を再試行する。 timeout=0 または負の値なら再試行せず即座にreturnする。 (デフォルト、ver1.1までのsync()と同じ) * timeout がNoneの場合、close()するまで無制限に待機する。 * autoReconnectがfalseでサーバーに接続できてない場合はreturnする。 (deadlock回避)
- Parameters:
timeout – (ver2.0〜) sync()を再試行するタイムアウト (秒単位の実数、またはNone)
auto_start – (ver2.1〜)
- class webcface.Func(base: Field | None, field: str = '', return_type: int | type | None = None, args: List[Arg] | None = None, handle: bool = False)[source]
Bases:
Field
- property name: str
field名を返す
- property return_type: int
戻り値の型を返す
ValTypeのEnumを使う
- run(*args) float | bool | str [source]
関数を実行する (同期)
selfの関数の場合、このスレッドで直接実行する
例外が発生した場合そのままraise, 関数が存在しない場合 FuncNotFoundError をraiseする * リモートの場合、関数呼び出しを送信し結果が返ってくるまで待機 例外が発生した場合 RuntimeError, 関数が存在しない場合 FuncNotFoundError をthrowする * (ver2.0〜) Client.sync() を呼ぶのとは別のスレッドで使用することを想定している。 呼び出しが成功したかどうかの情報の受信は Client.sync() で行われるため、 この関数を使用して待機している間に Client.sync() が呼ばれていないとデッドロックしてしまうので注意。
- set(func: Callable, return_type: int | type | None = None, args: List[Arg] | None = None, handle: bool = False) Func [source]
関数からFuncInfoを構築しセットする
関数にアノテーションがついている場合はreturn_typeとargs内のtypeは不要
(ver2.0〜) set()でセットした関数は Client.sync() のスレッドでそのまま呼び出され、
この関数が完了するまで他のデータの受信はブロックされる。
- Parameters:
func – 登録したい関数
return_type – 関数の戻り値 (ValTypeのEnumまたはtypeクラス)
args – 関数の引数の情報
handle – (ver2.2〜) これをTrueにするか引数型のアノテーションでCallHandle型が指定されている場合、
引数に CallHandle が渡されるようになる
- set_async(func: Callable, return_type: int | type | None = None, args: List[Arg] | None = None, handle: bool = False) Func [source]
関数からFuncInfoを構築しセットする (ver2.0〜)
setAsync()でセットした場合、他クライアントから呼び出されたとき新しいスレッドを建てて実行される。
- Parameters:
func – 登録したい関数
return_type – 関数の戻り値 (ValTypeのEnumまたはtypeクラス)
args – 関数の引数の情報
handle – (ver2.2〜) これをTrueにするか引数型のアノテーションでCallHandle型が指定されている場合、
引数に CallHandle が渡されるようになる
- class webcface.FuncListener(base: Field | None, field: str = '')[source]
Bases:
Field
- fetch_call() CallHandle | None [source]
関数が呼び出されていればhandleを返す
- listen(return_type: int | type | None = None, args: List[Arg] | None = None) FuncListener [source]
関数呼び出しの待ち受けを開始する
- property name: str
field名を返す
- class webcface.Geometry(geometry_type: int, properties: Sequence[SupportsFloat])[source]
Bases:
object
- property type: int
- class webcface.GeometryType(value)[source]
Bases:
IntEnum
An enumeration.
- BOX = 3
- CIRCLE = 4
- CYLINDER = 5
- LINE = 1
- NONE = 0
- PLANE = 2
- POLYGON = 7
- RECT = 2
- SPHERE = 6
- class webcface.Image(base: Field, field: str = '')[source]
Bases:
Field
- get() ImageFrame [source]
画像を返す、まだリクエストされてなければ自動でリクエストされる
- property name: str
field名を返す
- on_change(func: Callable) Callable [source]
値が変化したときのイベント
コールバックの引数にはImageオブジェクトが渡される。
まだ値をリクエストされてなければ自動でリクエストされる
- request(width: int | None = None, height: int | None = None, color_mode: int | None = None, compress_mode: int | None = None, quality: int | None = None, frame_rate: int | None = None) None [source]
画像の受信をリクエストする
- Parameters:
width – 画像の幅
height – 画像の高さ width, height のどちらかのみがNoneの場合縦横比を保ってリサイズし、 どちらもNoneの場合は元画像のサイズになる
color_mode – 画像の色フォーマット (Noneの場合元画像のフォーマット)
cmp_mode – 圧縮モード
quality – 圧縮のパラメータ * jpeg → 0〜100 (大きいほうが高品質) * png → 0〜9 (大きいほうが圧縮後のサイズが小さい) * webp → 1〜100 (大きいほうが高品質)
frame_rate – 画像を受信する頻度 (指定しない場合元画像が更新されるたびに受信する)
- set(data: ImageFrame) Image [source]
画像をセットする
- try_get() ImageFrame | None [source]
画像を返す、まだリクエストされてなければ自動でリクエストされる
- class webcface.ImageColorMode(value)[source]
Bases:
IntEnum
An enumeration.
- BGR = 1
- BGRA = 2
- GRAY = 0
- RGB = 3
- RGBA = 4
- class webcface.ImageCompressMode(value)[source]
Bases:
IntEnum
An enumeration.
- JPEG = 1
- PNG = 3
- RAW = 0
- WEBP = 2
- class webcface.ImageFrame(width: int, height: int, data: bytes, color_mode: int, compress_mode: int)[source]
Bases:
object
画像データ (ver2.4〜)
8bitのグレースケール, BGR, BGRAフォーマットのみを扱う
画像受信時にはjpegやpngなどにエンコードされたデータが入ることもある
- property channels: int
1ピクセルあたりのデータサイズ(byte数)
- property color_mode: int
色の並び順
compress_modeがRAWでない場合意味をなさない。
ImageColorMode のenumを参照
- property compress_mode: int
画像の圧縮モード
ImageCompressMode のenumを参照
- property data: bytes
画像データ
compress_modeがRAWの場合、height * width * channels 要素の画像データ。 それ以外の場合、圧縮された画像のデータ
- static from_numpy(img: ndarray, color_mode: int) ImageFrame [source]
numpy配列からImageFrameを作成する
color_mode がGRAYの場合 (height, width) または (height, width, 1), color_mode がBGR,RGBの場合 (height, width, 3), color_mode がBGRA,RGBAの場合 (height, width, 4) のuint8配列のみが使用可能
- property height: int
画像の高さ
- numpy() ndarray [source]
numpy配列に変換する
color_mode がGRAYの場合 (height, width, 1), color_mode がBGR,RGBの場合 (height, width, 3), color_mode がBGRA,RGBAの場合 (height, width, 4) のuint8配列を返す
compress_mode がRAWでない場合はエラー
- property width: int
画像の幅
- class webcface.Log(base: Field, field: str = '')[source]
Bases:
Field
- append(level: int, message: str, time: datetime = datetime.datetime(2024, 12, 16, 10, 44, 22, 248957)) None [source]
ログをwebcfaceに送信する (ver2.0〜)
コンソールなどには出力されない
- exists() bool [source]
このメンバーがログを1行以上出力していればtrue (ver2.0〜)
try_get() などとは違って、実際のデータを受信しない。 リクエストもしない。
- property handler: Handler
webcfaceに出力するloggingのHandler (ver2.1〜)
- Returns:
logger.addHandler にセットして使う
- property io: TextIOBase
webcfaceとstderrに出力するio (ver2.1〜)
- keep_lines: int = 1000
- property name: str
field名を返す(ver2.1〜)
- class webcface.Member(base: Field, member: str = '')[source]
Bases:
Field
- canvas2d(field: str, width: SupportsFloat | None = None, height: SupportsFloat | None = None) Canvas2D [source]
Canvas2Dオブジェクトを生成
- Parameters:
height (width,) – Canvas2Dのサイズを指定して初期化する
- func(arg: str = '', **kwargs) Func [source]
Funcオブジェクトを生成
- member.func(arg: str)
指定した名前のFuncオブジェクトを生成・参照する。
- @member.func(arg: str, [**kwargs])
デコレータとして使い、デコレートした関数を指定した名前でセットする。
デコレート後、関数は元のまま返す。
- @member.func([**kwargs])
3と同じだが、名前はデコレートした関数から自動で取得される。
- member.func(arg: Callable, [**kwargs])
これはver2.0で削除。
2, 3 の場合のkwargsは Func.set() を参照。
- func_listener(field: str) FuncListener [source]
FuncListenerオブジェクトを生成 (ver2.2〜)
- property lib_name: str
このMemberが使っているWebCFaceライブラリの識別情報
c++クライアントライブラリは”cpp”, javascriptクライアントは”js”, pythonクライアントは”python”を返す。
- property lib_version: str
このMemberが使っているWebCFaceのバージョン
- log(field: str = 'default') Log [source]
Logオブジェクトを生成
- Parameters:
field – (ver2.1〜) Logの名前を指定可能(省略すると”default”)
- property name: str
Member名
- on_canvas2d_entry(func: Callable) Callable [source]
Canvas2Dが追加されたときのイベント
コールバックの引数にはCanvas2Dオブジェクトが渡される。
- on_canvas3d_entry(func: Callable) Callable [source]
Canvas3Dが追加されたときのイベント
コールバックの引数にはCanvas3Dオブジェクトが渡される。
- on_log_entry(func: Callable) Callable [source]
Logが追加されたときのイベント(ver2.1〜)
コールバックの引数にはLogオブジェクトが渡される。
- on_ping(func: Callable) Callable [source]
通信速度データが更新されたときのイベント
通信速度データをリクエストしていなければリクエストする
コールバックの引数にはMemberオブジェクトが渡される。
- property ping_status: int | None
通信速度を調べる
通信速度データをリクエストしていなければリクエストし、 sync()後通信速度が得られるようになる :return: データがなければ None, 受信していれば pingの往復時間 (ms)
- property remote_addr: str
このMemberのIPアドレス
- property sync_time: datetime
memberが最後にsyncした時刻を返す
- class webcface.Point(pos: Sequence[SupportsFloat])[source]
Bases:
object
3次元or2次元の座標
手動でコンストラクタを呼んでもいいが、 PointをうけとるAPIは基本的に Sequence[SupportsFloat] を受け付け、 内部でPointに変換される。
- property pos: Tuple[float, float, float]
座標を返す
2次元の場合は pos[0:2] を使う
- class webcface.Promise(data: PromiseData)[source]
Bases:
object
非同期で実行した関数の実行結果を表す。
ver2.0〜 AsyncFuncResultからPromiseに名前変更
- property finished: bool
関数の実行が完了したかどうかを返す (ver2.0〜)
- property found: bool
呼び出した関数がリモートに存在するか(=実行が開始されたか)を返す (ver2.0〜)
- property is_error: bool
関数がエラーになったかどうかを返す (ver2.0〜)
- property name: str
関数のfield名
- on_finish(func: Callable) Promise [source]
関数の実行が完了したときに呼び出すコールバックを設定 (ver2.0〜)
コールバックの引数にはこのPromiseが渡される。
すでにfinishedがtrueの場合はこのスレッドで即座にcallbackが呼ばれる。
- on_reach(func: Callable) Promise [source]
リモートに呼び出しメッセージが到達したときに呼び出すコールバックを設定 (ver2.0〜)
コールバックの引数にはこのPromiseが渡される。
すでにreachedがtrueの場合はこのスレッドで即座にcallbackが呼ばれる。
- property reached: bool
関数呼び出しのメッセージが相手のクライアントに到達したらTrue (ver2.0〜)
- property rejection: str
関数の実行がエラーになった場合そのエラーメッセージを返す (ver2.0〜)
- property response: float | bool | str
関数の実行が完了した場合その戻り値を返す (ver2.0〜)
- property result: float | bool | str
実行結果または例外
結果が返ってくるまで待機する。
Deprecated since version ver2.0.
- property result_ready: bool
resultが取得可能であればTrue
Deprecated since version ver2.0: (finished と同じ)
- property started: bool
関数が開始したらTrue, 存在しなければFalse
Falseの場合自動でresultにもFuncNotFoundErrorが入る
Deprecated since version ver2.0.
- property started_ready: bool
startedが取得可能であればTrue
Deprecated since version ver2.0: (reached と同じ)
- wait_finish(timeout: float | None = None) Promise [source]
関数の実行が完了するまで待機 (ver2.0〜)
finished がtrueになるまで待機する。
on_finished
にコールバックが設定されている場合そのコールバックの完了も待機する。 * Client.sync() を呼ぶのとは別のスレッドで使用することを想定している。 呼び出しが成功したかどうかの情報の受信は Client.sync() で行われるため、 この関数を使用して待機している間に Client.sync() が呼ばれていないとデッドロックしてしまうので注意。
- Parameters:
timeout – 待機するタイムアウト (秒)
- wait_reach(timeout: float | None = None) Promise [source]
リモートに呼び出しメッセージが到達するまで待機 (ver2.0〜)
reached がtrueになるまで待機する。
on_reached
にコールバックが設定されている場合そのコールバックの完了も待機する。 * Client.sync() を呼ぶのとは別のスレッドで使用することを想定している。 呼び出しが成功したかどうかの情報の受信は Client.sync() で行われるため、 この関数を使用して待機している間に Client.sync() が呼ばれていないとデッドロックしてしまうので注意。
- Parameters:
timeout – 待機するタイムアウト (秒)
- class webcface.Text(base: Field, field: str = '')[source]
Bases:
Variant
- class webcface.Transform(arg1: Point | Sequence[SupportsFloat] | Rotation, arg2: Rotation | SupportsFloat | None = None)[source]
Bases:
object
3次元の座標と回転
内部ではx, y, zの座標とz-y-x系のオイラー角で保持している。
手動でコンストラクタを呼んでもいいが、 TransformをうけとるAPIは基本的にPointとRotationのタプルを受け付け、 内部でTransformに変換される。
平行移動のみの場合は translation() を使用する。 回転のみの場合はRotationだけ渡せば直接Transformに変換される
ver3.0〜 Pointを継承せず別のクラスとしての実装に変更
- applied_to_point(other: Point | Sequence[SupportsFloat]) Point [source]
Point を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象
- applied_to_rotation(other: Rotation) Transform [source]
Rotation を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象
- Returns:
返り値はRotationではなくTransform。 applied_to_transformと同じ結果になる
- applied_to_transform(other: Transform) Transform [source]
Transform を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象対象
- property pos: Tuple[float, float, float]
座標を返す
2次元の場合は pos[0:2] を使う
- property rot: Tuple[float, float, float]
回転角を取得
2次元の場合は rot[0] を使う
Deprecated since version ver3.0.
- rot_axis_angle() Tuple[Tuple[float, float, float], float] [source]
回転角を軸と角度((x, y, z), angle)として取得 (ver3.0〜)
- rot_euler(axis=AxisSequence.ZYX) Tuple[float, float, float] [source]
回転角をオイラー角として取得 (ver3.0〜)
- Parameters:
axis – オイラー角の回転順序
- class webcface.ValType(value)[source]
Bases:
IntEnum
An enumeration.
- BOOL = 2
- FLOAT = 4
- INT = 3
- NONE = 0
- STR = 1
- STRING = 1
- class webcface.Value(base: Field, field: str = '')[source]
Bases:
Field
- property name: str
field名を返す
- class webcface.Variant(base: Field, field: str = '')[source]
Bases:
Field
- property name: str
field名を返す
- class webcface.View(base: Field, field: str = '')[source]
Bases:
Field
- add(*args: TemporalComponent | str | bool | SupportsFloat, **kwargs) View [source]
Viewに要素を追加
- Parameters:
args – 追加する要素
複数指定した場合すべて追加される。 :arg kwargs: (ver3.0〜) argsが初期化済みの要素でない場合、要素の初期化時に渡すオプション。 詳細は TemporalComponent のコンストラクタを参照
- get() List[ViewComponent] [source]
Viewをlistで返す、まだリクエストされてなければ自動でリクエストされる
- property name: str
field名を返す
- on_change(func: Callable) Callable [source]
値が変化したときのイベント (ver2.0〜)
コールバックの引数にはViewオブジェクトが渡される。
まだ値をリクエストされてなければ自動でリクエストされる
- set(components: List[TemporalComponent | str | bool | SupportsFloat]) View [source]
Viewのリストをセットする
Deprecated since version ver3.0.
- try_get() List[ViewComponent] | None [source]
ViewをlistまたはNoneで返す、まだリクエストされてなければ自動でリクエストされる