Skip to main content

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).

Build Status Coverage Status

Overview

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.

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'

Release files for pyneric 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyneric 1.3.0
File Size Uploaded
pyneric-1.3.0.tar.gz 21.4 kB Details

Release files / pyneric-1.3.0.tar.gz

Download URL pyneric-1.3.0.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7422f05cae8e345d63776b22324bb0302d034952773546cd885cb8eca2bfb594
BLAKE2b-256 checksum
How to use checksums
44c5b9d7b4d7ff7c8d6875ed02d2269f3887294183639b219eafacce55fa61a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.3.0 This release

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page