- Remove .flake8; add [tool.ruff] and [tool.ruff.format] config in pyproject.toml (line-length 120, excludes, ignore list, per-file-ignores, mccabe complexity) - Update GitHub workflow lint job to run `ruff check .` and `ruff format --check .` - Swap black and flake8 for ruff in requirements.txt and Pipfile - Change capnp/__init__.py to ruff-style noqa comment - Move max-complexity into [tool.ruff.lint.mccabe], lint options into [tool.ruff.lint] - Add per-file-ignores for capnp/__init__.py (F401, F403, F405), remove inline noqa - Run ruff format across codebase (24 files) for consistent style
29 lines
646 B
Python
Executable File
29 lines
646 B
Python
Executable File
#!/usr/bin/env python
|
|
import os
|
|
import sys
|
|
|
|
import capnp
|
|
|
|
capnp.add_import_hook([os.getcwd(), "/usr/local/include/"]) # change this to be auto-detected?
|
|
|
|
import test_capnp # noqa: E402
|
|
|
|
|
|
def decode(name):
|
|
class_name = name[0].upper() + name[1:]
|
|
with getattr(test_capnp, class_name).from_bytes(sys.stdin.read()) as msg:
|
|
print(msg._short_str())
|
|
|
|
|
|
def encode(name):
|
|
val = getattr(test_capnp, name)
|
|
class_name = name[0].upper() + name[1:]
|
|
message = getattr(test_capnp, class_name).from_dict(val.to_dict())
|
|
print(message.to_bytes())
|
|
|
|
|
|
if sys.argv[1] == "decode":
|
|
decode(sys.argv[2])
|
|
else:
|
|
encode(sys.argv[2])
|