ScopeFormatter allows Python’s string formatting to be used with names drawn from the current scope, similar to the variable interpolation found in languages such as Ruby and Perl.
Examples
>>> from scopeformatter import F
>>> greeting = 'Hello'
>>> def greet(name):
... return F('{greeting}, {name}!')
>>> greet('world')
'Hello, world!'
Positional and keyword arguments are accepted:
>>> F('{greeting} {0} times, {name}!', len(greeting), name='world')
'Hello 5 times, world!'
Requirements
The stack inspection requires a Python VM that provides sys._getframe(), such as CPython.
Limitations
Non-global names from enclosing scopes will not be found unless they are referenced in the local scope.
>>> def outer():
... non_local = 'non-local'
... def inner():
... return F('{non_local} is not referenced locally')
... return inner()
>>> outer()
Traceback (most recent call last):
...
KeyError: 'non_local'
>>> def outer():
... non_local = 'non-local'
... def inner():
... non_local
... return F('{non_local} is referenced locally')
... return inner()
>>> outer()
'non-local is referenced locally'
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ScopeFormatter-1.0.tar.gz
(2.7 kB
view details)
File details
Details for the file ScopeFormatter-1.0.tar.gz.
File metadata
- Download URL: ScopeFormatter-1.0.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a28088a9cd79718f47a19e22900006dec1ab7e450ea080a9ec50478c925d115
|
|
| MD5 |
c5495edb54272f6a59c841acfb59e677
|
|
| BLAKE2b-256 |
e88c8dfed20a1709c34694376317bb76b28f3ea1bde71cff763f5156fa86eb1e
|