The pyneric package provides generic Python utilities and extensions.
The source, documentation, and issues are hosted on GitHub.
This is an open-source project by and for the community. Contributions, suggestions, and questions are welcome (Twitter: @bravegnuworld).
This library is intended as a place for Python code whose scope is generic, not specific to any particular business domain. The pyneric.future package is intended to include everything needed to easily support Python 2.7 and 3.3+ simultaneously using the Python-Future library.
>>> import pyneric
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 *
>>> pyneric.pascalize('basic_python_identifier') 'BasicPythonIdentifier'
>>> pyneric.underscore('BasicPythonIdentifier') 'basic_python_identifier'
>>> def foo(): ... return pyneric.get_function_name() ... >>> foo() 'foo'
>>> def foo(): ... def bar(): ... return pyneric.get_function_name(1) + pyneric.get_function_name() ... return bar() ... >>> foo() 'foobar'
>>> pyneric.tryf(tuple, []) ()
>>> pyneric.tryf(tuple, object)
>>> pyneric.tryf(tuple, object, _except=TypeError)
>>> pyneric.tryf(tuple, object, _return=()) ()
>>> 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
>>> 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.
>>> class MyException(Exception): pass
>>> pyneric.valid_python_identifier('1nv4l1d', exception=MyException) Traceback (most recent call last): ... MyException: '1nv4l1d' is not a valid Python identifier.
>>> 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'