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