Questions tagged [meta-programming]
Meta-programming is the writing of computer programs with the ability to treat programs as their data. It means that a program could be designed to read, generate, analyze and/or transform other programs, and even modify itself while running.
135 questions
- Bountied 0
- Unanswered
- Frequent
- Score
- Trending
- Week
- Month
- Unanswered (my tags)
1
vote
2
answers
165
views
Python 3.10+ deconstructing an over engineered solution to better understand how metaclasses work with properties, static methods, and classmethods
TL;DR
This question examines an over-engineered example of python metaclasses and dataclasses to create a LiteralEnum (for validating a stringly-typed keyword ...
8
votes
2
answers
1k
views
JVM bytecode instruction struct with serializer & parser
I am writing a java class file parsing & serialization library. As part of that i needed to implement a structure for the JVM bytecode instructions as well as come up with a way to parse & ...
1
vote
3
answers
493
views
Decorator to validate that Python function arguments are positive
I have a list of functions whose parameters in the signature should be validated with the same criteria each time.
...
1
vote
1
answer
67
views
Python colorized debug printer
In Python you can use print(locals()) to print a dictionary of all the local variables, but this has 3 shortcomings:
Double underscore variables will be included ...
1
vote
1
answer
745
views
AutoBind TypeScript decorator
Idea is to have an AutoBind decorator which you could append in front of any method to have it preserve its own this, instead of manually binding it when called.
<...
9
votes
1
answer
830
views
Change arbitrary arguments of function based on their names with a decorator
I ran across an issue that proved to be more complicated than I thought: Changing an arbitrary argument of a function purely based upon its name in Python - possibly via a decorator. I tried to ...
3
votes
1
answer
211
views
Lightweight interface implementation in Python 3 using abstract classes
Here is my take at a lightweight interface implementation, where I focus on discoverability of suitable classes from strings (for simplicity, class name is used as an id). Each interface has it's own &...
2
votes
1
answer
227
views
How can I make this CSV Importer code better of any code smell?
I wrote this method a few years ago in a Ruby on Rails project, which I think I am not proud of. How can I make this code better to show in-depth professionalism in Ruby?
lib/merchant/web_csv_importer....
1
vote
1
answer
74
views
Ruby: Database Authentication Module
I have created a module that validates the credentials against different databases.
...
3
votes
0
answers
134
views
Yet another reflection library
Tried to do my own implementation of reflection(introspection) for using in my next projects.
Is it optimized at compile time? If no, how can I improve it?
This macro is good interface for adapting ...
6
votes
2
answers
521
views
LazyEnum with validation
Motivation
In the standard Python library enum, a subclass of Enum would create all its members upon class creation. This can ...
4
votes
1
answer
155
views
A self contained parser generator implementation
This is a recreational project, I was trying to make a parser generator with a grammar inspired from: https://docs.python.org/3/reference/grammar.html
Unfortunately, understanding that specific ...
3
votes
1
answer
177
views
config files for different development environments (Production, Dev, Testing)
I am following a guide that specifies how to manage different configurations (DB_URI, LOGGER_NAME, etc...) per development environments.
I create a config module ...
2
votes
0
answers
107
views
Compile time logical operations for web framework in C++
I'm working on a web framework in C++ and there's this part that I need to do something like this:
...
3
votes
1
answer
159
views
clean approach to decorator that takes optional keyword arguments [closed]
I write decorators a lot in my work. Sometimes you need to write "decorator that takes arguments", it usually turns out to be something like this:
...