jerodg.com utilities module


Keywords
utility, utilities, persistent, dictionary, file, list, listing, module, package, python, python-packages, python-utilities
License
AGPL-3.0
Install
pip install jgutils==0.4.0.0

Documentation

jgutils: A Python Utility Module

This package is currently targeting Python3.7+ but it *should work with Python3.6+.

Installation

pip install jgutils

Flatten (flatten)

Flatten embedded lists/tuples into a single generator.

Get Files (getfiles)

  • todo: add wild-card support
  • todo: tests

File listing utility. Basic matching and sorting.

Get IPs (getips)

Attempts to resolve ipv4/6 IPs for LAN/WAN adapters.

Returns an object with:

obj.lan4, obj.lan6, obj.wan4, obj.wan6

Context manager is implemented if desired.

__repr__ is prety printed dictionary

Natural Sort (naturalsort)

  • todo: test_numeric_intermixed_mode1 sometimes returns different output with different order input

Sorting for Humans; Two Modes

mylist = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13', 'elm']
mode1 =  ['elm', 'elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
mode2 =  ['elm', 'elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

mylist1 = ['e0lm', 'e1lm', 'E2lm', 'e9lm', 'e10lm', 'E12lm', 'e13lm', 'elm', 'e01lm']
mode1 =   ['e0lm', 'e1lm', 'e01lm', 'E2lm', 'e9lm', 'e10lm', 'E12lm', 'e13lm', 'elm']
mode2 =   ['elm', 'e0lm', 'e1lm', 'E2lm', 'e9lm', 'e01lm', 'e10lm', 'E12lm', 'e13lm']

Persistent Dictionary (persistentdict)

  • todo: more tests

In-Memory dictionary with transparent disk-based backing.

Replace (replace)

Based on the built-in replace. Accepts a list of 'old' substrings to be replaced by a single 'new' substring.

USHoliday (usholiday)

todo: more tests(leap year/day)

Tests for the following US federal holidays as well as observed days. Observed: If a holiday falls on a Saturday observance => Friday, Sunday => Monday

  • New years: January 1
  • Martin Luther King Jr.: 3rd Monday in January
  • Washington's Birthday (Presidents): 3rd Monday in February
  • Memorial: Last Monday in May
  • Independance: July 4
  • Labor: First Monday in September
  • Columbus: Second Monday in October
  • Veterans: November 11
  • Thanksgiving: Fourth Thursday in November

Varprint (varprint)

Prints the name of the variable and the value.

<variable_name>: {variable_type} = (<variable_length>) <variable_content>
some_var: String = (5) hello

References