dar-backup 0.7.2__tar.gz → 0.8.0__tar.gz

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 (103) hide show
  1. {dar_backup-0.7.2/src/dar_backup → dar_backup-0.8.0}/Changelog.md +10 -1
  2. {dar_backup-0.7.2 → dar_backup-0.8.0}/PKG-INFO +3 -1
  3. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/badges/badge_clones.json +1 -1
  4. dar_backup-0.8.0/doc/badges/milestone_1000.txt +1 -0
  5. dar_backup-0.8.0/doc/badges/milestone_badge.json +6 -0
  6. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/clones.json +45 -15
  7. dar_backup-0.8.0/doc/weekly_clones.png +0 -0
  8. {dar_backup-0.7.2 → dar_backup-0.8.0}/pyproject.toml +2 -0
  9. {dar_backup-0.7.2 → dar_backup-0.8.0/src/dar_backup}/Changelog.md +10 -1
  10. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/__about__.py +1 -1
  11. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/clean_log.py +12 -0
  12. dar_backup-0.8.0/venv/lib/python3.12/site-packages/contourpy-1.3.2.dist-info/LICENSE +29 -0
  13. dar_backup-0.8.0/venv/lib/python3.12/site-packages/cycler-0.12.1.dist-info/LICENSE +27 -0
  14. dar_backup-0.8.0/venv/lib/python3.12/site-packages/fonttools-4.58.2.dist-info/licenses/LICENSE +21 -0
  15. dar_backup-0.8.0/venv/lib/python3.12/site-packages/kiwisolver-1.4.8.dist-info/LICENSE +71 -0
  16. dar_backup-0.8.0/venv/lib/python3.12/site-packages/matplotlib-3.10.3.dist-info/LICENSE +99 -0
  17. dar_backup-0.8.0/venv/lib/python3.12/site-packages/numpy/ma/LICENSE +24 -0
  18. dar_backup-0.8.0/venv/lib/python3.12/site-packages/pandas-2.3.0.dist-info/LICENSE +1250 -0
  19. dar_backup-0.8.0/venv/lib/python3.12/site-packages/pillow-11.2.1.dist-info/licenses/LICENSE +998 -0
  20. dar_backup-0.8.0/venv/lib/python3.12/site-packages/pyparsing-3.2.3.dist-info/LICENSE +18 -0
  21. dar_backup-0.8.0/venv/lib/python3.12/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE +54 -0
  22. dar_backup-0.8.0/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/LICENSE +18 -0
  23. dar_backup-0.8.0/venv/lib/python3.12/site-packages/tzdata-2025.2.dist-info/licenses/LICENSE +15 -0
  24. dar_backup-0.7.2/doc/badges/milestone_badge.json +0 -6
  25. dar_backup-0.7.2/doc/weekly_clones.png +0 -0
  26. {dar_backup-0.7.2 → dar_backup-0.8.0}/.gitignore +0 -0
  27. {dar_backup-0.7.2 → dar_backup-0.8.0}/LICENSE +0 -0
  28. {dar_backup-0.7.2 → dar_backup-0.8.0}/README.md +0 -0
  29. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/badges/README.md +0 -0
  30. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/badges/milestone_500.txt +0 -0
  31. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/dev.md +0 -0
  32. {dar_backup-0.7.2 → dar_backup-0.8.0}/doc/doc.md +0 -0
  33. {dar_backup-0.7.2 → dar_backup-0.8.0}/packages/deb/README.md +0 -0
  34. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/.darrc +0 -0
  35. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/README.md +0 -0
  36. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/__init__.py +0 -0
  37. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/cleanup.py +0 -0
  38. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/command_runner.py +0 -0
  39. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/config_settings.py +0 -0
  40. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/dar-backup.conf +0 -0
  41. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/dar-backup.conf.j2 +0 -0
  42. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/dar_backup.py +0 -0
  43. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/dar_backup_systemd.py +0 -0
  44. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/demo.py +0 -0
  45. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/demo_backup_def.j2 +0 -0
  46. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/exceptions.py +0 -0
  47. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/installer.py +0 -0
  48. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/manager.py +0 -0
  49. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/rich_progress.py +0 -0
  50. {dar_backup-0.7.2 → dar_backup-0.8.0}/src/dar_backup/util.py +0 -0
  51. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/SecretStorage-3.3.3.dist-info/LICENSE +0 -0
  52. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/anyio-4.9.0.dist-info/LICENSE +0 -0
  53. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/black-25.1.0.dist-info/licenses/LICENSE +0 -0
  54. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/blib2to3/LICENSE +0 -0
  55. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/build-1.2.2.post1.dist-info/LICENSE +0 -0
  56. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/certifi-2025.4.26.dist-info/licenses/LICENSE +0 -0
  57. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/cffi-1.17.1.dist-info/LICENSE +0 -0
  58. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/charset_normalizer-3.4.2.dist-info/licenses/LICENSE +0 -0
  59. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/cryptography-45.0.3.dist-info/licenses/LICENSE +0 -0
  60. {dar_backup-0.7.2/venv/lib/python3.12/site-packages/dar_backup-0.7.2.dist-info → dar_backup-0.8.0/venv/lib/python3.12/site-packages/dar_backup-0.8.0.dist-info}/licenses/LICENSE +0 -0
  61. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/filelock-3.18.0.dist-info/licenses/LICENSE +0 -0
  62. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/hyperlink-21.0.0.dist-info/LICENSE +0 -0
  63. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/id-1.5.0.dist-info/LICENSE +0 -0
  64. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/iniconfig-2.1.0.dist-info/licenses/LICENSE +0 -0
  65. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/jaraco.classes-3.4.0.dist-info/LICENSE +0 -0
  66. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/jaraco.context-6.0.1.dist-info/LICENSE +0 -0
  67. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/jaraco.functools-4.1.0.dist-info/LICENSE +0 -0
  68. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/jeepney-0.9.0.dist-info/licenses/LICENSE +0 -0
  69. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/keyring-25.6.0.dist-info/LICENSE +0 -0
  70. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/markdown_it_py-3.0.0.dist-info/LICENSE +0 -0
  71. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/mdurl-0.1.2.dist-info/LICENSE +0 -0
  72. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/more_itertools-10.7.0.dist-info/LICENSE +0 -0
  73. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/mypy_extensions-1.1.0.dist-info/licenses/LICENSE +0 -0
  74. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/nh3-0.2.21.dist-info/licenses/LICENSE +0 -0
  75. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/packaging-25.0.dist-info/licenses/LICENSE +0 -0
  76. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pathspec-0.12.1.dist-info/LICENSE +0 -0
  77. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pexpect-4.9.0.dist-info/LICENSE +0 -0
  78. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/platformdirs-4.3.8.dist-info/licenses/LICENSE +0 -0
  79. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE +0 -0
  80. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/psutil-7.0.0.dist-info/LICENSE +0 -0
  81. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/ptyprocess-0.7.0.dist-info/LICENSE +0 -0
  82. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pycparser-2.22.dist-info/LICENSE +0 -0
  83. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pygments-2.19.1.dist-info/licenses/LICENSE +0 -0
  84. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pyproject_hooks-1.2.0.dist-info/LICENSE +0 -0
  85. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pytest-8.4.0.dist-info/licenses/LICENSE +0 -0
  86. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pytest_cov-6.1.1.dist-info/licenses/LICENSE +0 -0
  87. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/pytest_timeout-2.4.0.dist-info/licenses/LICENSE +0 -0
  88. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/readme_renderer-44.0.dist-info/LICENSE +0 -0
  89. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE +0 -0
  90. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/requests_toolbelt-1.0.0.dist-info/LICENSE +0 -0
  91. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/rfc3986-2.0.0.dist-info/LICENSE +0 -0
  92. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/rich-14.0.0.dist-info/LICENSE +0 -0
  93. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/shellingham-1.5.4.dist-info/LICENSE +0 -0
  94. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE +0 -0
  95. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/tomli_w-1.2.0.dist-info/LICENSE +0 -0
  96. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/tomlkit-0.13.2.dist-info/LICENSE +0 -0
  97. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/trove_classifiers-2025.5.9.12.dist-info/licenses/LICENSE +0 -0
  98. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/twine-6.1.0.dist-info/LICENSE +0 -0
  99. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/typing_extensions-4.14.0.dist-info/licenses/LICENSE +0 -0
  100. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/virtualenv-20.31.2.dist-info/licenses/LICENSE +0 -0
  101. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/wheel/vendored/packaging/LICENSE +0 -0
  102. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/zipp-3.22.0.dist-info/licenses/LICENSE +0 -0
  103. {dar_backup-0.7.2 → dar_backup-0.8.0}/venv/lib/python3.12/site-packages/zstandard-0.23.0.dist-info/LICENSE +0 -0
@@ -1,6 +1,15 @@
1
1
  <!-- markdownlint-disable MD024 -->
2
2
  # dar-backup Changelog
3
3
 
4
+ ## v2-beta-0.8.0 - 2025-06-13
5
+
6
+ Github link: [v2-beta-0.8.0](https://github.com/per2jensen/dar-backup/tree/v2-beta-0.8.0/v2)
7
+
8
+ ### Added
9
+
10
+ - Modified clone dashboard generator to produce easier to read dashboard and be more robust.
11
+ - Dir_traversal sanitation: clean_log.py now only accepts files in configured log directory to `--file` option.
12
+
4
13
  ## v2-beta-0.7.2 - 2025-06-07
5
14
 
6
15
  Github link: [v2-beta-0.7.2](https://github.com/per2jensen/dar-backup/tree/v2-beta-0.7.2/v2)
@@ -16,7 +25,7 @@ Github link: [v2-beta-0.7.2](https://github.com/per2jensen/dar-backup/tree/v2-be
16
25
  - Enrolling into [Snyk code checker](https://snyk.io/code-checker/) and learning how to work with it.
17
26
 
18
27
  - Snyk helped pointing out vulnerable versions of some packages used.
19
- - Input sanitization started, there is room for improvement.
28
+ - Input sanitation started, there is room for improvement.
20
29
 
21
30
  ## v2-beta-0.7.1 - 2025-05-22
22
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dar-backup
3
- Version: 0.7.2
3
+ Version: 0.8.0
4
4
  Summary: A script to do full, differential and incremental backups using dar. Some files are restored from the backups during verification, after which par2 redundancy files are created. The script also has a cleanup feature to remove old backups and par2 files.
5
5
  Project-URL: GPG Public Key, https://keys.openpgp.org/search?q=dar-backup@pm.me
6
6
  Project-URL: Homepage, https://github.com/per2jensen/dar-backup/tree/main/v2
@@ -699,6 +699,8 @@ Requires-Dist: black>=25.1.0; extra == 'dev'
699
699
  Requires-Dist: coverage>=7.8.2; extra == 'dev'
700
700
  Requires-Dist: h11>=0.16.0; extra == 'dev'
701
701
  Requires-Dist: httpcore>=0.17.3; extra == 'dev'
702
+ Requires-Dist: matplotlib>=3.10.3; extra == 'dev'
703
+ Requires-Dist: pandas>=2.3.0; extra == 'dev'
702
704
  Requires-Dist: psutil>=7.0.0; extra == 'dev'
703
705
  Requires-Dist: pytest; extra == 'dev'
704
706
  Requires-Dist: pytest-cov>=6.1.1; extra == 'dev'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "# clones",
4
- "message": "845",
4
+ "message": "1012",
5
5
  "color": "deeppink"
6
6
  }
@@ -0,0 +1 @@
1
+ Reached 1000 clones on 2025-06-13T02:51:59.728578+00:00Z
@@ -0,0 +1,6 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "label": "Milestone",
4
+ "message": "1000 clones \ud83c\udf89\ud83c\udf89",
5
+ "color": "orange"
6
+ }
@@ -10,11 +10,11 @@
10
10
  },
11
11
  {
12
12
  "date": "2025-05-20",
13
- "label": "\ud83d\udd25 New max: 124 clones"
13
+ "label": "Daily max: 124"
14
14
  }
15
15
  ],
16
- "total_clones": 845,
17
- "unique_clones": 418,
16
+ "total_clones": 1012,
17
+ "unique_clones": 513,
18
18
  "daily": [
19
19
  {
20
20
  "timestamp": "2025-05-04T00:00:00Z",
@@ -123,33 +123,33 @@
123
123
  },
124
124
  {
125
125
  "timestamp": "2025-05-25T00:00:00Z",
126
- "count": 70,
127
- "uniques": 26
126
+ "count": 63,
127
+ "uniques": 23
128
128
  },
129
129
  {
130
130
  "timestamp": "2025-05-26T00:00:00Z",
131
- "count": 21,
132
- "uniques": 11
131
+ "count": 13,
132
+ "uniques": 7
133
133
  },
134
134
  {
135
135
  "timestamp": "2025-05-27T00:00:00Z",
136
- "count": 15,
137
- "uniques": 10
136
+ "count": 9,
137
+ "uniques": 7
138
138
  },
139
139
  {
140
140
  "timestamp": "2025-05-28T00:00:00Z",
141
- "count": 10,
142
- "uniques": 5
141
+ "count": 5,
142
+ "uniques": 3
143
143
  },
144
144
  {
145
145
  "timestamp": "2025-05-29T00:00:00Z",
146
- "count": 18,
147
- "uniques": 8
146
+ "count": 13,
147
+ "uniques": 6
148
148
  },
149
149
  {
150
150
  "timestamp": "2025-05-30T00:00:00Z",
151
- "count": 12,
152
- "uniques": 5
151
+ "count": 7,
152
+ "uniques": 3
153
153
  },
154
154
  {
155
155
  "timestamp": "2025-05-31T00:00:00Z",
@@ -185,6 +185,36 @@
185
185
  "timestamp": "2025-06-06T00:00:00Z",
186
186
  "count": 45,
187
187
  "uniques": 23
188
+ },
189
+ {
190
+ "timestamp": "2025-06-07T00:00:00Z",
191
+ "count": 60,
192
+ "uniques": 25
193
+ },
194
+ {
195
+ "timestamp": "2025-06-08T00:00:00Z",
196
+ "count": 43,
197
+ "uniques": 23
198
+ },
199
+ {
200
+ "timestamp": "2025-06-09T00:00:00Z",
201
+ "count": 28,
202
+ "uniques": 17
203
+ },
204
+ {
205
+ "timestamp": "2025-06-10T00:00:00Z",
206
+ "count": 34,
207
+ "uniques": 21
208
+ },
209
+ {
210
+ "timestamp": "2025-06-11T00:00:00Z",
211
+ "count": 20,
212
+ "uniques": 13
213
+ },
214
+ {
215
+ "timestamp": "2025-06-12T00:00:00Z",
216
+ "count": 18,
217
+ "uniques": 12
188
218
  }
189
219
  ]
190
220
  }
Binary file
@@ -99,6 +99,8 @@ dev = [
99
99
  "zipp>=3.19.1",
100
100
  "anyio>=4.4.0",
101
101
  "black>=25.1.0",
102
+ "pandas>=2.3.0",
103
+ "matplotlib>=3.10.3",
102
104
  ]
103
105
 
104
106
  packaging = [
@@ -1,6 +1,15 @@
1
1
  <!-- markdownlint-disable MD024 -->
2
2
  # dar-backup Changelog
3
3
 
4
+ ## v2-beta-0.8.0 - 2025-06-13
5
+
6
+ Github link: [v2-beta-0.8.0](https://github.com/per2jensen/dar-backup/tree/v2-beta-0.8.0/v2)
7
+
8
+ ### Added
9
+
10
+ - Modified clone dashboard generator to produce easier to read dashboard and be more robust.
11
+ - Dir_traversal sanitation: clean_log.py now only accepts files in configured log directory to `--file` option.
12
+
4
13
  ## v2-beta-0.7.2 - 2025-06-07
5
14
 
6
15
  Github link: [v2-beta-0.7.2](https://github.com/per2jensen/dar-backup/tree/v2-beta-0.7.2/v2)
@@ -16,7 +25,7 @@ Github link: [v2-beta-0.7.2](https://github.com/per2jensen/dar-backup/tree/v2-be
16
25
  - Enrolling into [Snyk code checker](https://snyk.io/code-checker/) and learning how to work with it.
17
26
 
18
27
  - Snyk helped pointing out vulnerable versions of some packages used.
19
- - Input sanitization started, there is room for improvement.
28
+ - Input sanitation started, there is room for improvement.
20
29
 
21
30
  ## v2-beta-0.7.1 - 2025-05-22
22
31
 
@@ -1,4 +1,4 @@
1
- __version__ = "0.7.2"
1
+ __version__ = "0.8.0"
2
2
 
3
3
  __license__ = '''Licensed under GNU GENERAL PUBLIC LICENSE v3, see the supplied file "LICENSE" for details.
4
4
  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW, not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -138,6 +138,18 @@ def main():
138
138
 
139
139
  for file_path in args.file:
140
140
 
141
+ if ".." in os.path.normpath(file_path).split(os.sep):
142
+ print(f"Error: Path traversal is not allowed: '{file_path}'")
143
+ sys.exit(1)
144
+
145
+ logfile_dir = os.path.dirname(os.path.realpath(config_settings.logfile_location))
146
+ resolved_path = os.path.realpath(file_path)
147
+
148
+ if not resolved_path.startswith(logfile_dir + os.sep):
149
+ print(f"Error: File is outside allowed directory: '{file_path}'")
150
+ sys.exit(1)
151
+
152
+ # Validate the file path type and existence
141
153
  if not isinstance(file_path, (str, bytes, os.PathLike)):
142
154
  print(f"Error: Invalid file path type: {file_path}")
143
155
  sys.exit(1)
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2021-2025, ContourPy Developers.
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2015, matplotlib project
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ * Neither the name of the matplotlib project nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Just van Rossum
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,71 @@
1
+ =========================
2
+ The Kiwi licensing terms
3
+ =========================
4
+ Kiwi is licensed under the terms of the Modified BSD License (also known as
5
+ New or Revised BSD), as follows:
6
+
7
+ Copyright (c) 2013-2024, Nucleic Development Team
8
+
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ Redistributions of source code must retain the above copyright notice, this
15
+ list of conditions and the following disclaimer.
16
+
17
+ Redistributions in binary form must reproduce the above copyright notice, this
18
+ list of conditions and the following disclaimer in the documentation and/or
19
+ other materials provided with the distribution.
20
+
21
+ Neither the name of the Nucleic Development Team nor the names of its
22
+ contributors may be used to endorse or promote products derived from this
23
+ software without specific prior written permission.
24
+
25
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
26
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
29
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
+
36
+ About Kiwi
37
+ ----------
38
+ Chris Colbert began the Kiwi project in December 2013 in an effort to
39
+ create a blisteringly fast UI constraint solver. Chris is still the
40
+ project lead.
41
+
42
+ The Nucleic Development Team is the set of all contributors to the Nucleic
43
+ project and its subprojects.
44
+
45
+ The core team that coordinates development on GitHub can be found here:
46
+ http://github.com/nucleic. The current team consists of:
47
+
48
+ * Chris Colbert
49
+
50
+ Our Copyright Policy
51
+ --------------------
52
+ Nucleic uses a shared copyright model. Each contributor maintains copyright
53
+ over their contributions to Nucleic. But, it is important to note that these
54
+ contributions are typically only changes to the repositories. Thus, the Nucleic
55
+ source code, in its entirety is not the copyright of any single person or
56
+ institution. Instead, it is the collective copyright of the entire Nucleic
57
+ Development Team. If individual contributors want to maintain a record of what
58
+ changes/contributions they have specific copyright on, they should indicate
59
+ their copyright in the commit message of the change, when they commit the
60
+ change to one of the Nucleic repositories.
61
+
62
+ With this in mind, the following banner should be used in any source code file
63
+ to indicate the copyright and license terms:
64
+
65
+ #------------------------------------------------------------------------------
66
+ # Copyright (c) 2013-2024, Nucleic Development Team.
67
+ #
68
+ # Distributed under the terms of the Modified BSD License.
69
+ #
70
+ # The full license is in the file LICENSE, distributed with this software.
71
+ #------------------------------------------------------------------------------
@@ -0,0 +1,99 @@
1
+ License agreement for matplotlib versions 1.3.0 and later
2
+ =========================================================
3
+
4
+ 1. This LICENSE AGREEMENT is between the Matplotlib Development Team
5
+ ("MDT"), and the Individual or Organization ("Licensee") accessing and
6
+ otherwise using matplotlib software in source or binary form and its
7
+ associated documentation.
8
+
9
+ 2. Subject to the terms and conditions of this License Agreement, MDT
10
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide license
11
+ to reproduce, analyze, test, perform and/or display publicly, prepare
12
+ derivative works, distribute, and otherwise use matplotlib
13
+ alone or in any derivative version, provided, however, that MDT's
14
+ License Agreement and MDT's notice of copyright, i.e., "Copyright (c)
15
+ 2012- Matplotlib Development Team; All Rights Reserved" are retained in
16
+ matplotlib alone or in any derivative version prepared by
17
+ Licensee.
18
+
19
+ 3. In the event Licensee prepares a derivative work that is based on or
20
+ incorporates matplotlib or any part thereof, and wants to
21
+ make the derivative work available to others as provided herein, then
22
+ Licensee hereby agrees to include in any such work a brief summary of
23
+ the changes made to matplotlib .
24
+
25
+ 4. MDT is making matplotlib available to Licensee on an "AS
26
+ IS" basis. MDT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
27
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, MDT MAKES NO AND
28
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
29
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB
30
+ WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
31
+
32
+ 5. MDT SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
33
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
34
+ LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
35
+ MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
36
+ THE POSSIBILITY THEREOF.
37
+
38
+ 6. This License Agreement will automatically terminate upon a material
39
+ breach of its terms and conditions.
40
+
41
+ 7. Nothing in this License Agreement shall be deemed to create any
42
+ relationship of agency, partnership, or joint venture between MDT and
43
+ Licensee. This License Agreement does not grant permission to use MDT
44
+ trademarks or trade name in a trademark sense to endorse or promote
45
+ products or services of Licensee, or any third party.
46
+
47
+ 8. By copying, installing or otherwise using matplotlib ,
48
+ Licensee agrees to be bound by the terms and conditions of this License
49
+ Agreement.
50
+
51
+ License agreement for matplotlib versions prior to 1.3.0
52
+ ========================================================
53
+
54
+ 1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the
55
+ Individual or Organization ("Licensee") accessing and otherwise using
56
+ matplotlib software in source or binary form and its associated
57
+ documentation.
58
+
59
+ 2. Subject to the terms and conditions of this License Agreement, JDH
60
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide license
61
+ to reproduce, analyze, test, perform and/or display publicly, prepare
62
+ derivative works, distribute, and otherwise use matplotlib
63
+ alone or in any derivative version, provided, however, that JDH's
64
+ License Agreement and JDH's notice of copyright, i.e., "Copyright (c)
65
+ 2002-2011 John D. Hunter; All Rights Reserved" are retained in
66
+ matplotlib alone or in any derivative version prepared by
67
+ Licensee.
68
+
69
+ 3. In the event Licensee prepares a derivative work that is based on or
70
+ incorporates matplotlib or any part thereof, and wants to
71
+ make the derivative work available to others as provided herein, then
72
+ Licensee hereby agrees to include in any such work a brief summary of
73
+ the changes made to matplotlib.
74
+
75
+ 4. JDH is making matplotlib available to Licensee on an "AS
76
+ IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
77
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND
78
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
79
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB
80
+ WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
81
+
82
+ 5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
83
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
84
+ LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
85
+ MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
86
+ THE POSSIBILITY THEREOF.
87
+
88
+ 6. This License Agreement will automatically terminate upon a material
89
+ breach of its terms and conditions.
90
+
91
+ 7. Nothing in this License Agreement shall be deemed to create any
92
+ relationship of agency, partnership, or joint venture between JDH and
93
+ Licensee. This License Agreement does not grant permission to use JDH
94
+ trademarks or trade name in a trademark sense to endorse or promote
95
+ products or services of Licensee, or any third party.
96
+
97
+ 8. By copying, installing or otherwise using matplotlib,
98
+ Licensee agrees to be bound by the terms and conditions of this License
99
+ Agreement.
@@ -0,0 +1,24 @@
1
+ * Copyright (c) 2006, University of Georgia and Pierre G.F. Gerard-Marchant
2
+ * All rights reserved.
3
+ * Redistribution and use in source and binary forms, with or without
4
+ * modification, are permitted provided that the following conditions are met:
5
+ *
6
+ * * Redistributions of source code must retain the above copyright
7
+ * notice, this list of conditions and the following disclaimer.
8
+ * * Redistributions in binary form must reproduce the above copyright
9
+ * notice, this list of conditions and the following disclaimer in the
10
+ * documentation and/or other materials provided with the distribution.
11
+ * * Neither the name of the University of Georgia nor the
12
+ * names of its contributors may be used to endorse or promote products
13
+ * derived from this software without specific prior written permission.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
16
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
19
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.