-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: Implement msgspec encoding #2541
base: main
Are you sure you want to change the base?
refactor: Implement msgspec encoding #2541
Conversation
CodSpeed Performance ReportMerging #2541 will improve performances by ×12Comparing Summary
Benchmarks breakdown
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2541 +/- ##
==========================================
+ Coverage 91.29% 91.35% +0.06%
==========================================
Files 62 63 +1
Lines 5190 5227 +37
Branches 669 669
==========================================
+ Hits 4738 4775 +37
Misses 319 319
Partials 133 133 ☔ View full report in Codecov by Sentry. |
97de9f7
to
1d9e947
Compare
1d9e947
to
4febeba
Compare
4febeba
to
cbe10bd
Compare
8876b80
to
f691f78
Compare
I found that it helped to add a
|
In the https://jcristharif.com/msgspec/perf-tips.html#line-delimited-json json.py:
SingerWriter:
|
Do you mean in sdk/singer_sdk/_singerlib/encoding/_msgspec.py Lines 73 to 94 in 08b58bf
? |
29dea7a
to
d23a8ab
Compare
Yes, that is exactly what I meant. Could have definitely been stated clearer on my part😅.
|
d23a8ab
to
3169b58
Compare
Naive of me to think I could get this across in 1/2 a day of work 😅. I'll come back to this later, there's plenty of time until the planned release date. |
Like the pun 😊. Great dad joke material. Kind an inside joke now since you dropped (naive) from the title of the PR. |
Might have to punt this if jcrist/msgspec#711 doesn't get merged before we're ready to officially declare Python 3.13 support |
Well, found that making this generic by using
In summary I had to change the tap's overwrite of |
712466f
to
07f348e
Compare
Ok, the tests are passing. Now I want to think of how to make it easy and straightforward for a developer to use msgspec as the SerDe layer, and also keep the door open to the user being the one deciding which serialization layer to use. |
SQLiteTap(MsgSpecWriter, SQLTap)
and notSQLiteTap(SQLTap, MsgSpecWriter)
. A better approach might be to make the IO implementation an attribute of the Singer class.📚 Documentation preview 📚: https://meltano-sdk--2541.org.readthedocs.build/en/2541/