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