#3615: Two new functions for grass.script python lib
-------------------------+-------------------------
Reporter: sbl | Owner: grass-dev@…
Type: enhancement | Status: new
Priority: normal | Milestone: 7.6.0
Component: Python | Version: svn-trunk
Keywords: | CPU: All
Platform: All |
-------------------------+-------------------------
If you agree, I would like to add two new functions to grass.script python
library, that I could not find in existing lib and that I would like to
use in other module(s):
Docstrings would have to be improved, probably, and I am of course open to
changing names or any other suggestions...
If someone can point me to existing functions that do this which I
overlooked, I am happy to use those instead...
My function below would require additional imports though, hope that would
be OK...
Generated names are SQL and GRASS mp name compliant.
{{{
import string
import random
def tempname(length, lowercase=False):
"""Generate a random name of length "length" starting with a letter
:param int length: length of the random name to generate
:param bool lowercase: use only lowercase characters to generate name
:returns: String with a random name of length "length" starting with a
letter
:rtype: str
:Example:
>>> tempname(12)
'MxMa1kAS13s9'
"""
if lowercase:
chars = string.ascii_lowercase + string.digits
else:
chars = string.ascii_uppercase + string.ascii_lowercase +
string.digits
randomname = '1'
while randomname[0].isdigit():
randomname = ''.join(random.choice(chars) for _ in range(length))
#3615: Two new functions for grass.script python lib
--------------------------+-------------------------
Reporter: sbl | Owner: grass-dev@…
Type: enhancement | Status: new
Priority: normal | Milestone: 7.6.0
Component: Python | Version: svn-trunk
Resolution: | Keywords:
CPU: All | Platform: All
--------------------------+-------------------------
Comment (by sbl):
Since I did not hear any objections, I will commit this function to trunk
preferably before 7.6 branch is cut. So I can use it in some addons that I
have in progress...