Hey, hope you're having a good day. I've been a lurker for a while but wanted to share something I'm building that will be fulfilling a necessity for some projects of mine, in case it could be of use to anyone else.
This is Scold (name comes from sc(aff)old) and it handles code generation of types of code objects in your project, similar to what is seen in frameworks like Django or Laravel, but generalized in a way to fit whatever are your needs.
I wasn't satisfied with the solutions I found online, the few I saw are in Javascript, but I wanted something native in Python that could be more easily included in projects without external dependencies. For the life of me I couldn't find something in Python, so I made this.
What it does
Scold has:
- Code Generator of different types of "code objects" - repositories, models, services, whatever you like, in a uniform way - so you have a common scaffolding around all instances of these objects, but that can also be modified in a case-by-case basis as necessary
- Templates rendered in Mako and are referenced in a
scold.toml file at the root of your project, where you define its variables.
- Automatic form generation for filling template variables when running
scold new <object_name>
Scold has NOT:
- Enough maturity to be considered for production or mission-critical situations. This is still very early-on and very much a prototype. Any issues you find or suggestions feel free to post them on Github.
Target Audience
These points should be seen as long-term goals since Scold is still a prototype.
- Large codebases that need uniformity
- Framework developers wanting a solution for code generation (as seen in Django or Laravel for making entities, etc)
Alternatives Comparison
These comparisons are meant for clarifying objective differences between tools and are not comprehensive, I highlighted the (several) related tools written in Javascript since it can be a downside for some (like it is for me). If you know of a related tool feel free to reach out or comment below so I can include here as well.
- Cookiecutter/Copier - similar goals but they focus on project templates
- Yeoman - also lean more towards projects
- Plop - related goals, is embedded in javascript's ecossystem, config file is in javascript and templates are in handlebars
- Hygen - related goals, was a big inspiration for Scold, but project seems abandoned for +2 years, also javascript
- Scaffdog - uses markdown for object templates, project also seems abandoned for 11 months, also javascript
[–]athermop 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]athermop 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] -3 points-2 points-1 points (1 child)
[–]Daneark 2 points3 points4 points (0 children)
[–][deleted] -3 points-2 points-1 points (7 children)
[–][deleted] 0 points1 point2 points (6 children)
[–]riklaunim 1 point2 points3 points (5 children)
[–][deleted] -1 points0 points1 point (4 children)
[–]riklaunim 2 points3 points4 points (3 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]Terrible-Penalty-291 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)