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'