Easier and more self documenting patterns for loading/saving Persistent
[python_utils.git] / NOTICE
1
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.
8
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:
11
12   https://github.com/daveoncode/python-string-utils/tree/master/string_utils
13
14   David's code was released under the MIT license.
15
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
28       replace_nth.
29     + Added type annotations everywhere,
30     + Wrote doctests everywhere,
31     + Added sphinx style pydocs,
32     + Wrote a supplimental unittest (tests/string_utils_test.py),
33     + Added logging.
34
35   2. As noted in shared_dict.py, that file is a fork of work by
36   LuizaLabs and available here:
37
38   https://github.com/luizalabs/shared-memory-dict/blob/main/shared_memory_dict/dict.py
39
40   The original work was released under the MIT license.
41
42   Scott's modifications include:
43     + Adding a unittest (tests/shared_dict_test.py),
44     + Added type hints,
45     + Changes to locking scope,
46     + Minor cleanup and style tweaks,
47     + Added sphinx style pydocs.
48
49   3. The timeout decortator in decorator_utils.py is based on original
50   work published in ActiveState code recipes and covered by the PSF
51   license.  It is from here:
52
53   https://code.activestate.com/recipes/307871-timing-out-function/
54
55   Scott's modifications include:
56     + Adding docs + comments including a doctest unittest,
57     + Minor cleanup and style tweaks,
58     + Added type hints.
59
60   4. tplink_utils.py is based on original work by Lubomir Stroetmann
61   that was released under the Apache 2.0 License:
62
63   https://github.com/softScheck/tplink-smartplug
64
65   Scott's modifications include:
66     + Added the pause functionality,
67     + Added the on/off off/on functionality,
68     + Ported the code to python3,
69     + Added type hints,
70     + Added timeouts / retries,
71     + Added sphinx style pydocs,
72     + Added logging.
73
74 Thank you to everyone who makes their code available for reuse by
75 others and contributes to the open source ecosystem.  Scott is
76 especially grateful to the authors of the projects above.  Thank you.
77
78 Any code not mentioned in this NOTICE file is work by Scott Gasch, is
79 copyrighted by him, and is released under the Apache 2.0 license
80 described in the LICENSE file.
81
82 If you make modifications to such code, please comply with the Apache
83 2.0 license by retaining the LICENSE and copyright in your work and by
84 adding your own notices about the changes you made.  See
85 https://www.apache.org/licenses/LICENSE-2.0 for details.