1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
Some code in this library came from other sources. As required by
clause 4 of the Apache 2.0 License and clause 3 of the PSF License,
this NOTICE file describes changes Scott Gasch made to any preexisting
code regardless its original License. All such original code was used
in a manner compliant with its original License. This file also
contains URLs pointing at the source of the forked code.
1. As noted in string_utils.py, that file is a fork of work by
Davide Zanotti. Davide's original work is here:
https://github.com/daveoncode/python-string-utils/tree/master/string_utils
David's code was released under the MIT license.
Scott's modifications include:
+ Added these routines: strip_escape_sequences,
suffix_string_to_number, number_to_suffix_string, extract_ip_v4,
extract_ip_v6, extract_mac_address, extract_ip, to_bool,
to_date, valid_date, to_datetime, valid_datetime, squeeze,
indent, dedent, sprintf, strip_ansi_sequences, SprintfStdout,
capitalize_first_letter, it_they, is_are, pluralize,
make_contractions, thify, ngrams, ngrams_presplit, bigrams,
trigrams, shuffle_columns_into_list, shuffle_columns_into_dict,
interpolate_using_dict, to_ascii, to_base64, is_base64, from_base64,
chunk, to_bitstring, is_bitstring, from_bitstring, ip_v4_sort_key,
path_ancestors_before_descendants_sort_key, replace_all, and
replace_nth.
+ Added type annotations everywhere,
+ Wrote doctests everywhere,
+ Added sphinx style pydocs,
+ Wrote a supplimental unittest (tests/string_utils_test.py),
+ Added logging.
2. As noted in shared_dict.py, that file is a fork of work by
LuizaLabs and available here:
https://github.com/luizalabs/shared-memory-dict/blob/main/shared_memory_dict/dict.py
The original work was released under the MIT license.
Scott's modifications include:
+ Adding a unittest (tests/shared_dict_test.py),
+ Minor cleanup and style tweaks,
+ Added sphinx style pydocs,
+ Added type hints.
3. The timeout decortator in decorator_utils.py is based on original
work published in ActiveState code recipes and covered by the PSF
license. It is from here:
https://code.activestate.com/recipes/307871-timing-out-function/
Scott's modifications include:
+ Adding docs + comments including a doctest unittest,
+ Minor cleanup and style tweaks,
+ Added type hints.
4. tplink_utils.py is based on original work by Lubomir Stroetmann
that was released under the Apache 2.0 License:
https://github.com/softScheck/tplink-smartplug
Scott's modifications include:
+ Added the pause functionality,
+ Added the on/off off/on functionality,
+ Ported the code to python3,
+ Added type hints,
+ Added timeouts / retries,
+ Added sphinx style pydocs,
+ Added logging.
Thank you to everyone who makes their code available for reuse by
others and contributes to the open source ecosystem. Scott is
especially grateful to the authors of the projects above. Thank you.
Any code not mentioned in this NOTICE file is work by Scott Gasch, is
copyrighted by him, and is released under the Apache 2.0 license
described in the LICENSE file.
If you make modifications to such code, please comply with the Apache
2.0 license by retaining the LICENSE and copyright in your work and by
adding your own notices about the changes you made. See
https://www.apache.org/licenses/LICENSE-2.0 for details.
|