Yep that was it. Casting via str() did the trick. On Tue, Jun 1, 2021 at 10:41 AM Kenton Varda <[email protected]> wrote:
> Hi Kyle, > > I think you need to convert `capnp_path` back into a string before passing > it to `capnp.load()`. Currently it appears you are passing a `Path` object > that you constructed using pathlib, but `capnp.load` doesn't know how to > deal with those, it wants a plain string. > > -Kenton > > > > On Tue, Jun 1, 2021 at 9:35 AM Kyle Downey <[email protected]> wrote: > >> I have the following simple schema: >> >> @0x8fe87a03768154e9; >> >> enum Side { >> buy @0; >> sell @1; >> } >> >> struct TradeMessage { >> time @0 : Float64; >> tradeId @1 : Int64; >> side @2 : Side; >> size @3 : Float64; >> price @4 : Float64; >> } >> >> struct Level1BookUpdateMessage { >> time @0 : Float64; >> best_bid_qty @1 : Float64; >> best_bid_px @2 : Float64; >> best_ask_qty @3 : Float64; >> best_ask_px @4 : Float64; >> } >> >> which I am loading as follows using pycapnp 1.0.0 on MacOS 11.4 running >> Python 3.8: >> >> import capnp >> >> from pathlib import Path >> >> capnp_path = Path(__file__).parent / '../../../../capnp/serenity-fh.capnp' >> capnp_def = capnp.load(capnp_path) >> >> It fails on load with the following error. Any ideas on what I might be >> doing wrong? >> >> Connected to pydev debugger (build 202.6397.98) >> Traceback (most recent call last): >> File "<frozen importlib._bootstrap>", line 991, in _find_and_load >> File "<frozen importlib._bootstrap>", line 975, in >> _find_and_load_unlocked >> File "<frozen importlib._bootstrap>", line 671, in _load_unlocked >> File "<frozen importlib._bootstrap_external>", line 783, in exec_module >> File "<frozen importlib._bootstrap>", line 219, in >> _call_with_frames_removed >> File >> "/Users/kdowney/dev/shadows/serenity/src/serenity/marketdata/fh/txlog.py", >> line 6, in <module> >> capnp_def = capnp.load(capnp_path) >> File "capnp/lib/capnp.pyx", line 4030, in capnp.lib.capnp.load >> File "capnp/lib/capnp.pyx", line 3276, in >> capnp.lib.capnp.SchemaParser.load >> AttributeError: 'PosixPath' object has no attribute 'endswith' >> >> -- >> > You received this message because you are subscribed to the Google Groups >> "Cap'n Proto" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. > > >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/capnproto/26dda48a-5ca0-4b0c-a42f-930d96b388a4n%40googlegroups.com >> <https://groups.google.com/d/msgid/capnproto/26dda48a-5ca0-4b0c-a42f-930d96b388a4n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/CAB7N6pbzLyRd97P_HWfCaKJziJN7oBjPNSL6VGFkto385e42ig%40mail.gmail.com.
