You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While playing around with pydust in my recent PR, I was thinking about whether it would be possible to reduce pydust's dependencies to zero (outside of python and a zig compiler in PATH):
Pydust's current dependencies are as follows (please correct me if I'm wrong here):
ziglang: pip installable zig compiler (redundant if zig compiler is in your system PATH)
setuptools: presumably required for the pyproject.toml build system integration
black: provides stub generation: eg fib.pyi, ..
pydantic: provides type-checking, serialization / deserialization and more (dataclasses on steroids)
If one has an objective of making a zero-dependency pydust variant, one could consider dropping ziglang and setuptools and make stub_generation optionally available only if black is installed. As for the use of pydantic, it's only used in the two config classes: config.ExtModule and config.ToolPydust and could conceivably be dropped for some stdlib-only-dependent code (dataclasses?) .
While it is debatable why one would want a zero-dependency project, could this be considered as an objective by the project owners? Or are the above dependencies strategically important for the project's roadmap?
The text was updated successfully, but these errors were encountered:
Unless there's a clear use-case, I'm not sure I see the benefit of removing the dependencies?
Regarding ziglang in particular, it's desirable to ensure source distributions can compile themselves during install without any external dependencies on the user's machine (i.e. a Zig toolchain). We see this as a huge benefit over shipping native C extensions. This could also be achieved by having Pydust users add zig lang to their build-system.requires instead of pydust taking the dependency, so this one is up for debate (particularly given how heavy it is)
Unless there's a clear use-case, I'm not sure I see the benefit of removing the dependencies?
Fair enough.
Regarding ziglang in particular, it's desirable to ensure source distributions can compile themselves during install without any external dependencies on the user's machine (i.e. a Zig toolchain). We see this as a huge benefit over shipping native C extensions. This could also be achieved by having Pydust users add zig lang to their build-system.requires instead of pydust taking the dependency, so this one is up for debate (particularly given how heavy it is)
Thanks. I understand the logic now, and I agree regarding 'ziglang', as it's currently downloaded and installed even if one wants to use one's system zig.
While playing around with pydust in my recent PR, I was thinking about whether it would be possible to reduce pydust's dependencies to zero (outside of python and a zig compiler in PATH):
Pydust's current dependencies are as follows (please correct me if I'm wrong here):
ziglang
: pip installablezig
compiler (redundant if zig compiler is in your system PATH)setuptools
: presumably required for the pyproject.toml build system integrationblack
: provides stub generation: egfib.pyi
, ..pydantic
: provides type-checking, serialization / deserialization and more (dataclasses
on steroids)If one has an objective of making a zero-dependency
pydust
variant, one could consider droppingziglang
andsetuptools
and make stub_generation optionally available only ifblack
is installed. As for the use ofpydantic
, it's only used in the two config classes:config.ExtModule
andconfig.ToolPydust
and could conceivably be dropped for some stdlib-only-dependent code (dataclasses
?) .While it is debatable why one would want a zero-dependency project, could this be considered as an objective by the project owners? Or are the above dependencies strategically important for the project's roadmap?
The text was updated successfully, but these errors were encountered: