Skip to content

Conversation

@daog1
Copy link
Contributor

@daog1 daog1 commented Jun 17, 2025

This package provides Python client renderers for Codama IDLs.
It is fully operational and compatible with the majority of Codama node types. Test cases align with those in renderers-js.
Sample demonstrations of generated effects are available at https://github.com/daog1/PyGenIDL001.

@changeset-bot
Copy link

changeset-bot bot commented Jun 17, 2025

⚠️ No Changeset found

Latest commit: 1349ca4

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

@sonicfromnewyoke sonicfromnewyoke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall LGTM 🔥

want a couple of things to change/discuss:

  • modifications in the other packages and not only in the renderers-py
  • e2e tests contain Cargo.toml + Cargo.lock which shouldn't be here at all
  • e2e tests should generate (render) client +somehow validate that this code is working. Maybe we can use some kind of lining (like it was done with cargo check command)

@lorisleiva
Copy link
Member

I'll get to your PR as soon as I can but it's a heavy one to review and I've got lots of other things to prioritise at the moment so it might take a little while. Sorry in advance. 🙏

Copy link
Member

@lorisleiva lorisleiva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the late review. This is looking promising. I've made a few high-level comments. I've not done any python for a while and never used the python SDKs for Solana, so I'd love for someone experiences with that world to give a deep review (@sonicfromnewyoke perhaps that's you?).

My overall feeling right now is that this is probably good enough but does not support the full type system that Codama describe. I can see this with the extension file that tries to patch specific use-cases. If that's the case, it's probably still okay to ship. The Rust renderer itself doesn't fully support the Codama type system because of the lack of a codec-like library (as Kit offers).

My most important question for whoever ends up shipping this Python render is: are you able to stick around once it's shipped to continue maintaining it?

@daog1
Copy link
Contributor Author

daog1 commented Aug 7, 2025

Sorry for the late review. This is looking promising. I've made a few high-level comments. I've not done any python for a while and never used the python SDKs for Solana, so I'd love for someone experiences with that world to give a deep review (@sonicfromnewyoke perhaps that's you?).很抱歉评论晚了。这看起来很有希望。我已经发表了一些高层次的评论。我已经有一段时间没有做过任何 python,也从未使用 Solana 的 python SDK,所以我希望有人对那个世界有经验的人进行深入的评论(也许就是你?

My overall feeling right now is that this is probably good enough but does not support the full type system that Codama describe. I can see this with the extension file that tries to patch specific use-cases. If that's the case, it's probably still okay to ship. The Rust renderer itself doesn't fully support the Codama type system because of the lack of a codec-like library (as Kit offers).我现在的总体感觉是,这可能已经足够好了,但不支持 Codama 描述的完整类型系统。我可以通过尝试修补特定用例的扩展文件看到这一点。如果是这样的话,可能还是可以发货的。Rust 渲染器本身并不完全支持 Codama 类型系统,因为缺少类似编解码器的库(如 Kit 提供的那样)。

My most important question for whoever ends up shipping this Python render is: are you able to stick around once it's shipped to continue maintaining it?对于最终发布此 Python 渲染的人,我最重要的问题是:一旦发布,您能否留下来继续维护它?

No problem, it will be maintained continuously.

@lorisleiva
Copy link
Member

Just to keep a record on GitHub about what has been discussed, the plan is now to have renderers has part of their own repositories, ideally owned by the team that maintains them. I have written a more detailed explanation here.

Regarding the python renderer, I can see it has already been moved to its own repo available here meaning this PR can now be closed. Thank you so much for your work and I'll be sure to link this repository in the main README of the Codama repo.

@lorisleiva lorisleiva closed this Sep 9, 2025
@lorisleiva lorisleiva mentioned this pull request Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants