Examples¶
Importing¶
>>> import pyneric
Supporting recent versions Python 2 and 3 simultaneously¶
The future
package does a great job of allowing one to support Python 2.6,
2.7, and 3.3+ with the same code base; however, some modifications that exist
in the pyneric.future
package can help ease or fix a few shortcomings. One
can use the following to import common 2/3 compatibility features:
from __future__ import absolute_import, division, print_function, unicode_literals
from pyneric.future import *
Python identifier transformation¶
lower/underscore to titled-terms (pascalize function)¶
>>> pyneric.pascalize('basic_python_identifier')
'BasicPythonIdentifier'
titled-terms to lower/underscore (underscore function)¶
>>> pyneric.underscore('BasicPythonIdentifier')
'basic_python_identifier'
Get a function name from the stack¶
the current function name¶
>>> def foo():
... return pyneric.get_function_name()
...
>>> foo()
'foo'
also further back in the stack¶
>>> def foo():
... def bar():
... return pyneric.get_function_name(1) + pyneric.get_function_name()
... return bar()
...
>>> foo()
'foobar'
Return upon exception (tryf function)¶
no exception¶
>>> pyneric.tryf(tuple, [])
()
catch any non-system-exiting exception by default¶
>>> pyneric.tryf(tuple, object)
catch more specific exceptions¶
>>> pyneric.tryf(tuple, object, _except=TypeError)
return a different value upon exception¶
>>> pyneric.tryf(tuple, object, _return=())
()
Test Python identifier validity¶
return boolean¶
>>> pyneric.valid_python_identifier('not_a_keyword')
True
>>> pyneric.valid_python_identifier('class')
False
>>> pyneric.valid_python_identifier('xyz.abc', dotted=True)
True
>>> pyneric.valid_python_identifier('class.keyword', dotted=True)
False
raise exception¶
>>> pyneric.valid_python_identifier('not_a_keyword', exception=True)
True
>>> pyneric.valid_python_identifier('class', exception=True)
Traceback (most recent call last):
...
ValueError: 'class' is a Python keyword.
raise a specific exception¶
>>> class MyException(Exception): pass
>>> pyneric.valid_python_identifier('1nv4l1d', exception=MyException)
Traceback (most recent call last):
...
MyException: '1nv4l1d' is not a valid Python identifier.
Make a request to a REST resource¶
>>> class UserAgent(pyneric.rest_requests.RestResource): url_path = 'user-agent'
>>> headers = {'User-Agent': 'Mozilla, but not really', 'Accept': 'application/json'}
>>> str(UserAgent('http://httpbin.org').get(headers=headers).json()['user-agent'])
'Mozilla, but not really'