PythonExtensionsCollection 0.2.0__py3-none-any.whl → 0.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. PythonExtensionsCollection/Comparison/CComparison.py +341 -0
  2. PythonExtensionsCollection/Comparison/__init__.py +13 -0
  3. PythonExtensionsCollection/File/CFile.py +326 -106
  4. PythonExtensionsCollection/File/__init__.py +1 -1
  5. PythonExtensionsCollection/Folder/CFolder.py +460 -0
  6. PythonExtensionsCollection/Folder/__init__.py +13 -0
  7. PythonExtensionsCollection/PythonExtensionsCollection.pdf +0 -0
  8. PythonExtensionsCollection/String/CString.py +128 -344
  9. PythonExtensionsCollection/String/__init__.py +1 -1
  10. PythonExtensionsCollection/Utils/CUtils.py +77 -74
  11. PythonExtensionsCollection/Utils/__init__.py +1 -1
  12. PythonExtensionsCollection/__init__.py +1 -1
  13. PythonExtensionsCollection/version.py +23 -0
  14. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/METADATA +57 -44
  15. PythonExtensionsCollection-0.13.0.dist-info/RECORD +18 -0
  16. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/WHEEL +1 -1
  17. PythonExtensionsCollection/doc/.buildinfo +0 -4
  18. PythonExtensionsCollection/doc/File.html +0 -315
  19. PythonExtensionsCollection/doc/String.html +0 -590
  20. PythonExtensionsCollection/doc/Utils.html +0 -209
  21. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/File/CFile.html +0 -960
  22. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/String/CString.html +0 -1221
  23. PythonExtensionsCollection/doc/_modules/PythonExtensionsCollection/Utils/CUtils.html +0 -431
  24. PythonExtensionsCollection/doc/_modules/index.html +0 -106
  25. PythonExtensionsCollection/doc/_sources/File.rst.txt +0 -28
  26. PythonExtensionsCollection/doc/_sources/String.rst.txt +0 -28
  27. PythonExtensionsCollection/doc/_sources/Utils.rst.txt +0 -28
  28. PythonExtensionsCollection/doc/_sources/additional_doc/Introduction.rst.txt +0 -365
  29. PythonExtensionsCollection/doc/_sources/index.rst.txt +0 -27
  30. PythonExtensionsCollection/doc/_static/_sphinx_javascript_frameworks_compat.js +0 -134
  31. PythonExtensionsCollection/doc/_static/alabaster.css +0 -701
  32. PythonExtensionsCollection/doc/_static/basic.css +0 -930
  33. PythonExtensionsCollection/doc/_static/custom.css +0 -1
  34. PythonExtensionsCollection/doc/_static/doctools.js +0 -264
  35. PythonExtensionsCollection/doc/_static/documentation_options.js +0 -14
  36. PythonExtensionsCollection/doc/_static/file.png +0 -0
  37. PythonExtensionsCollection/doc/_static/jquery-3.6.0.js +0 -10881
  38. PythonExtensionsCollection/doc/_static/jquery.js +0 -2
  39. PythonExtensionsCollection/doc/_static/language_data.js +0 -199
  40. PythonExtensionsCollection/doc/_static/minus.png +0 -0
  41. PythonExtensionsCollection/doc/_static/plus.png +0 -0
  42. PythonExtensionsCollection/doc/_static/pygments.css +0 -82
  43. PythonExtensionsCollection/doc/_static/searchtools.js +0 -531
  44. PythonExtensionsCollection/doc/_static/underscore-1.13.1.js +0 -2042
  45. PythonExtensionsCollection/doc/_static/underscore.js +0 -6
  46. PythonExtensionsCollection/doc/additional_doc/Introduction.html +0 -365
  47. PythonExtensionsCollection/doc/genindex.html +0 -292
  48. PythonExtensionsCollection/doc/index.html +0 -123
  49. PythonExtensionsCollection/doc/objects.inv +0 -0
  50. PythonExtensionsCollection/doc/py-modindex.html +0 -138
  51. PythonExtensionsCollection/doc/search.html +0 -127
  52. PythonExtensionsCollection/doc/searchindex.js +0 -1
  53. PythonExtensionsCollection-0.2.0.dist-info/RECORD +0 -48
  54. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/LICENSE +0 -0
  55. {PythonExtensionsCollection-0.2.0.dist-info → PythonExtensionsCollection-0.13.0.dist-info}/top_level.txt +0 -0
@@ -1 +0,0 @@
1
- /* This file intentionally left blank. */
@@ -1,264 +0,0 @@
1
- /*
2
- * doctools.js
3
- * ~~~~~~~~~~~
4
- *
5
- * Base JavaScript utilities for all Sphinx HTML documentation.
6
- *
7
- * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
8
- * :license: BSD, see LICENSE for details.
9
- *
10
- */
11
- "use strict";
12
-
13
- const _ready = (callback) => {
14
- if (document.readyState !== "loading") {
15
- callback();
16
- } else {
17
- document.addEventListener("DOMContentLoaded", callback);
18
- }
19
- };
20
-
21
- /**
22
- * highlight a given string on a node by wrapping it in
23
- * span elements with the given class name.
24
- */
25
- const _highlight = (node, addItems, text, className) => {
26
- if (node.nodeType === Node.TEXT_NODE) {
27
- const val = node.nodeValue;
28
- const parent = node.parentNode;
29
- const pos = val.toLowerCase().indexOf(text);
30
- if (
31
- pos >= 0 &&
32
- !parent.classList.contains(className) &&
33
- !parent.classList.contains("nohighlight")
34
- ) {
35
- let span;
36
-
37
- const closestNode = parent.closest("body, svg, foreignObject");
38
- const isInSVG = closestNode && closestNode.matches("svg");
39
- if (isInSVG) {
40
- span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
41
- } else {
42
- span = document.createElement("span");
43
- span.classList.add(className);
44
- }
45
-
46
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
47
- parent.insertBefore(
48
- span,
49
- parent.insertBefore(
50
- document.createTextNode(val.substr(pos + text.length)),
51
- node.nextSibling
52
- )
53
- );
54
- node.nodeValue = val.substr(0, pos);
55
-
56
- if (isInSVG) {
57
- const rect = document.createElementNS(
58
- "http://www.w3.org/2000/svg",
59
- "rect"
60
- );
61
- const bbox = parent.getBBox();
62
- rect.x.baseVal.value = bbox.x;
63
- rect.y.baseVal.value = bbox.y;
64
- rect.width.baseVal.value = bbox.width;
65
- rect.height.baseVal.value = bbox.height;
66
- rect.setAttribute("class", className);
67
- addItems.push({ parent: parent, target: rect });
68
- }
69
- }
70
- } else if (node.matches && !node.matches("button, select, textarea")) {
71
- node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
72
- }
73
- };
74
- const _highlightText = (thisNode, text, className) => {
75
- let addItems = [];
76
- _highlight(thisNode, addItems, text, className);
77
- addItems.forEach((obj) =>
78
- obj.parent.insertAdjacentElement("beforebegin", obj.target)
79
- );
80
- };
81
-
82
- /**
83
- * Small JavaScript module for the documentation.
84
- */
85
- const Documentation = {
86
- init: () => {
87
- Documentation.highlightSearchWords();
88
- Documentation.initDomainIndexTable();
89
- Documentation.initOnKeyListeners();
90
- },
91
-
92
- /**
93
- * i18n support
94
- */
95
- TRANSLATIONS: {},
96
- PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
97
- LOCALE: "unknown",
98
-
99
- // gettext and ngettext don't access this so that the functions
100
- // can safely bound to a different name (_ = Documentation.gettext)
101
- gettext: (string) => {
102
- const translated = Documentation.TRANSLATIONS[string];
103
- switch (typeof translated) {
104
- case "undefined":
105
- return string; // no translation
106
- case "string":
107
- return translated; // translation exists
108
- default:
109
- return translated[0]; // (singular, plural) translation tuple exists
110
- }
111
- },
112
-
113
- ngettext: (singular, plural, n) => {
114
- const translated = Documentation.TRANSLATIONS[singular];
115
- if (typeof translated !== "undefined")
116
- return translated[Documentation.PLURAL_EXPR(n)];
117
- return n === 1 ? singular : plural;
118
- },
119
-
120
- addTranslations: (catalog) => {
121
- Object.assign(Documentation.TRANSLATIONS, catalog.messages);
122
- Documentation.PLURAL_EXPR = new Function(
123
- "n",
124
- `return (${catalog.plural_expr})`
125
- );
126
- Documentation.LOCALE = catalog.locale;
127
- },
128
-
129
- /**
130
- * highlight the search words provided in the url in the text
131
- */
132
- highlightSearchWords: () => {
133
- const highlight =
134
- new URLSearchParams(window.location.search).get("highlight") || "";
135
- const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
136
- if (terms.length === 0) return; // nothing to do
137
-
138
- // There should never be more than one element matching "div.body"
139
- const divBody = document.querySelectorAll("div.body");
140
- const body = divBody.length ? divBody[0] : document.querySelector("body");
141
- window.setTimeout(() => {
142
- terms.forEach((term) => _highlightText(body, term, "highlighted"));
143
- }, 10);
144
-
145
- const searchBox = document.getElementById("searchbox");
146
- if (searchBox === null) return;
147
- searchBox.appendChild(
148
- document
149
- .createRange()
150
- .createContextualFragment(
151
- '<p class="highlight-link">' +
152
- '<a href="javascript:Documentation.hideSearchWords()">' +
153
- Documentation.gettext("Hide Search Matches") +
154
- "</a></p>"
155
- )
156
- );
157
- },
158
-
159
- /**
160
- * helper function to hide the search marks again
161
- */
162
- hideSearchWords: () => {
163
- document
164
- .querySelectorAll("#searchbox .highlight-link")
165
- .forEach((el) => el.remove());
166
- document
167
- .querySelectorAll("span.highlighted")
168
- .forEach((el) => el.classList.remove("highlighted"));
169
- const url = new URL(window.location);
170
- url.searchParams.delete("highlight");
171
- window.history.replaceState({}, "", url);
172
- },
173
-
174
- /**
175
- * helper function to focus on search bar
176
- */
177
- focusSearchBar: () => {
178
- document.querySelectorAll("input[name=q]")[0]?.focus();
179
- },
180
-
181
- /**
182
- * Initialise the domain index toggle buttons
183
- */
184
- initDomainIndexTable: () => {
185
- const toggler = (el) => {
186
- const idNumber = el.id.substr(7);
187
- const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
188
- if (el.src.substr(-9) === "minus.png") {
189
- el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
190
- toggledRows.forEach((el) => (el.style.display = "none"));
191
- } else {
192
- el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
193
- toggledRows.forEach((el) => (el.style.display = ""));
194
- }
195
- };
196
-
197
- const togglerElements = document.querySelectorAll("img.toggler");
198
- togglerElements.forEach((el) =>
199
- el.addEventListener("click", (event) => toggler(event.currentTarget))
200
- );
201
- togglerElements.forEach((el) => (el.style.display = ""));
202
- if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
203
- },
204
-
205
- initOnKeyListeners: () => {
206
- // only install a listener if it is really needed
207
- if (
208
- !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
209
- !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
210
- )
211
- return;
212
-
213
- const blacklistedElements = new Set([
214
- "TEXTAREA",
215
- "INPUT",
216
- "SELECT",
217
- "BUTTON",
218
- ]);
219
- document.addEventListener("keydown", (event) => {
220
- if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements
221
- if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys
222
-
223
- if (!event.shiftKey) {
224
- switch (event.key) {
225
- case "ArrowLeft":
226
- if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
227
-
228
- const prevLink = document.querySelector('link[rel="prev"]');
229
- if (prevLink && prevLink.href) {
230
- window.location.href = prevLink.href;
231
- event.preventDefault();
232
- }
233
- break;
234
- case "ArrowRight":
235
- if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
236
-
237
- const nextLink = document.querySelector('link[rel="next"]');
238
- if (nextLink && nextLink.href) {
239
- window.location.href = nextLink.href;
240
- event.preventDefault();
241
- }
242
- break;
243
- case "Escape":
244
- if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
245
- Documentation.hideSearchWords();
246
- event.preventDefault();
247
- }
248
- }
249
-
250
- // some keyboard layouts may need Shift to get /
251
- switch (event.key) {
252
- case "/":
253
- if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
254
- Documentation.focusSearchBar();
255
- event.preventDefault();
256
- }
257
- });
258
- },
259
- };
260
-
261
- // quick alias for translations
262
- const _ = Documentation.gettext;
263
-
264
- _ready(Documentation.init);
@@ -1,14 +0,0 @@
1
- var DOCUMENTATION_OPTIONS = {
2
- URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3
- VERSION: '',
4
- LANGUAGE: 'en',
5
- COLLAPSE_INDEX: false,
6
- BUILDER: 'html',
7
- FILE_SUFFIX: '.html',
8
- LINK_SUFFIX: '.html',
9
- HAS_SOURCE: true,
10
- SOURCELINK_SUFFIX: '.txt',
11
- NAVIGATION_WITH_KEYS: false,
12
- SHOW_SEARCH_SUMMARY: true,
13
- ENABLE_SEARCH_SHORTCUTS: false,
14
- };