All Questions
Tagged with meta-programming python
71 questions
11
votes
2
answers
2k
views
Improving the Flask cache decorator
In my rumblings developing flask applications I found the caching decorator. The decorator is a short and well-written piece of code, but I feel like it misses the few points bellow:
It only caches ...
1
vote
2
answers
121
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 ...
1
vote
3
answers
443
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.
...
11
votes
1
answer
4k
views
Try-except decorator for classmethods
This question is related to the Cactus Text Game Engine.
For easy error handling in Cactus, we've put together this small decorator. Essentially, the decorator wraps any class method in a ...
1
vote
1
answer
48
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 ...
9
votes
1
answer
768
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
145
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 ...
5
votes
2
answers
11k
views
Python decorator for retrying w/exponential backoff
This is my first decorator in Python! I found some of it on the internet but have tweaked it to our needs.
Here is the couple concerns of mine:
Multiple python version compatibility
Is grabbing the ...
3
votes
1
answer
666
views
Function overloading in Python
Motivation
As an exercise, I wanted to try implementing function overloading in Python 3, i.e. to implement a way of defining multiple functions with the same name and then calling the appropriate ...
6
votes
2
answers
478
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
140
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 ...
1
vote
2
answers
559
views
Encryption scripts using the module cryptography
Its meant to password protect python scripts by using encryption
It should use os.urandom(40)'s output in hex as the salt. The kdf (cryptography.io) is using Scrypt ...
16
votes
1
answer
25k
views
Decorator to measure execution time of a function
This decorator adds the elapsed time to a function's attributes when applied.
My concerns:
Is the code pythonic?
Could this code be useful?
Should I just use the ...
3
votes
1
answer
121
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:
...
12
votes
1
answer
550
views
Using decorated methods in a subclass of deque to dump its state to a JSON file
I am sub-classing an object in python and I need to overload a bunch of the methods with very similar logic, essentially a call to super() and then some additional operations. I want to avoid ...
4
votes
0
answers
102
views
Inherit docstrings from specified parent
I was recently working on some python where I was working with multiple inheritance and mixins and stuff like that, and I wanted to inherit docstrings for specific functions, from specific parents (...
1
vote
0
answers
84
views
Using metaclass to decorate derived classes to be `attrs` classes
I am currently developing a framework to facilitate writing controller programs for scientific instruments. I use attrs extensively in the internal parts of the ...
4
votes
1
answer
14k
views
Python decorator to support static properties
Classes in Python do not have native support for static properties. A meta-class can rather easily add this support as shown below. Are there any problems programmers might experience if they use this ...
7
votes
2
answers
155
views
Python class compressor
After watching this presentation, I decided that it would be a good project for me to undergo to practice my python skills. A summary of the presentation:
Jack ...
3
votes
1
answer
1k
views
Python simple type checking decorator
I'd like to know your opinions on this minimal type-checking decorator (with @ annotations) to make type checking of a method while debugging like :
...
1
vote
1
answer
1k
views
Lazy evaluation function decorator
Suppose I have some expensive function expensive_computation which takes a long time to compute but it always returns the same value.
I want to avoid paying the ...
4
votes
0
answers
317
views
Python breakpoints in Vim (Vimscript)
I recently decided that putting strategically placed print statements scattered about my python programs to debug was getting to be a little messy.
I had thought ...
2
votes
1
answer
150
views
A simple decorator written as a class, which counts how many times a function has been called
Can I improve its typing? Is there any other improvement or pythonic change that you would do?
...
11
votes
3
answers
1k
views
Simple generic auto __repr__
Preface
At some point I was tired of writing & supporting __repr__ methods, so I've decided to write it once and reuse everywhere in my classes.
Since I'm ...
3
votes
0
answers
83
views
Metaclass to run a __first__ method for the first instantiation of a class
I had an idea for a __first__ special method for a class. It would be run after __new__ and before ...
3
votes
0
answers
151
views
Cumulative profiler for a function
I have created a cumulative profiler,
meaning it runs a function several times in a row and prints the cumulative profiler results.
it's python >= 3.6 specific, but you can remove ...
4
votes
1
answer
68
views
Decorator to add key parameter support to an existing sort function
Preface
sorted built-in function has key keyword-only parameter. Most of the custom implementations like the following for ...
7
votes
1
answer
295
views
Using Python decorators to do Hoare Logic
I'm relatively new to Python from a strong Java background. I am trying to create a base class to do Hoare Logic. Function decorators seem to be the way to go with this. I've produced the following ...
3
votes
1
answer
595
views
Decorate instance method with (arbitrary) meta data in python
Requirements
What I need: attach meta information to methods, such that
it is 'easy' to retrieve all such methods for a given class instance
methods can still be called 'in a normal way', e.g. ...
12
votes
1
answer
189
views
Generic framework to handle parameterized commands
I asked this question a while ago, and this was one of the comments:
There (mostly) seems to be a one-to-one mapping of a lot of your functions to IRC command verbs. For example, ...
6
votes
2
answers
459
views
Class Decorator for Verifying Method-Level Permissions
After writing far too many if has_permission(user): statements at the head of my methods, I figured I would try my hand at writing a generic enough decorator to do ...
1
vote
1
answer
125
views
Defining many HTTP request methods in a class using partialmethods
I am using an object that expects a keyword argument for every call, but I never intend to change it. In this case a timeout of 10. What is the best way to add a partialmethods for each attributes.
...
7
votes
1
answer
96
views
Basic profiler - Python
I have created a simple profiler in Python, but I feel like there are better ways to do some things.
Terminology:
Section - a block of code to profile
Label - A name for a section to be used as a ...
5
votes
0
answers
891
views
Writing a metaclass to ensure a class is thread-safe
Python allows the creation of classes to be modified via metaclasses. They can perform all sorts of operations that might appear to be magical to languages that do not have the capability. The goal of ...
1
vote
0
answers
1k
views
Marking a class as final or sealing a class
Which of these metaclasses should be preferred, and is there room for improvement?
Some people are not familiar with the philosophies that come with working in Python and have a desire embedded in ...
9
votes
2
answers
2k
views
Python Export Decorator
In Python, we use __all__ to explicitly denote the public API of a module or package. That looks like this:
...
3
votes
1
answer
2k
views
Transforming stored procedures using Python regular expressions
I have to add some extra logic to about 80 similar stored procedures on my DWH server.
I thought that it would take pretty much the same time if I do it with Python and lots of googling (I have no ...
1
vote
1
answer
391
views
Method arguments set object attributes
The code creates a meta class and its implementation to set the values passed in as arguments to methods on a class automatically on the object avoiding a lot of ...
7
votes
1
answer
1k
views
Decorator to return default argument values
I'm using Python 3.6. This code, used as a decorator to a python function, will cause the function to return a dict of POSITION_OR_KEYWORD arguments.
I used this ...
10
votes
2
answers
4k
views
Mutable Named Tuple - or - Slotted Data Structure
A question I answered on Stack Overflow asked for a mutable named tuple.
The naive answer would probably tell them they just want to define a custom object.
However, named tuples take up a lot ...
5
votes
0
answers
715
views
Implement OO interfaces in Python
Edit: Whoops! I just remembered there's already an long-lived package for this, zope.interface. I'd like a review all the same.
This is a proof-of-concept ...
2
votes
1
answer
135
views
Threaded and asyncio API library
In Python I am trying to create an API for a connected device. I want to be available for both threaded (using request) and async applications (using aiohttp).
What I've come up with is wrapping the ...
4
votes
1
answer
4k
views
Class decorator in Python to set variables for the constructor
I personally don't like the boilerplate of most __init__ methods:
self.a = a
self.b = b
...
So I thought this would be a nice ...
2
votes
2
answers
735
views
Memoizing decorator with retries - now with backoff added! (Part 3)
A continuation of Memoizing decorator with retries, part 2, and related to https://codereview.stackexchange.com/a/133493/47529. I liked my decorator before, but especially in my original use case of a ...
2
votes
2
answers
278
views
Decorator that supplies arguments to functions
I have assignment to generate argument based decorator I wrote like this.
...
6
votes
3
answers
583
views
Memoizing decorator with retries, part 2
A while ago I asked this question Memoizing decorator that can retry and then promptly forgot about it. I more recently saw Python decorator for retrying w/exponential backoff and wanted to add ...
3
votes
1
answer
950
views
Lombokython - Automatic __eq__, __hash__, __repr__
I recently decided to code some in Python after coding in Java using lombok for quite some time. However, I got bit real hard when I forgot to implement __eq__, ...
7
votes
1
answer
444
views
Game loop decorator for Pygame
I've built a simple decorator that wraps a function in a general Pygame game loop. It also allows for the programmer to set the tick rate.
...
2
votes
1
answer
56
views
Method to act on parameter or from iterable if not parameters are passed
The scenario is as follows. The API of my program will allow the user to perform some method on a particular element (let's say a tuple from a database). If this parameter is not passed to the ...
2
votes
2
answers
153
views
Decorator to convert a function's result into the desired units
I tried to collect some of my formulas inside classes so that I didn't need to browser the names of the functions anymore but only determine which Quantity I want to calculate and then check which ...