FileBackup 0.5.1__py3-none-any.whl → 0.5.12__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.
- FileBackup/Impl/Common.py +4 -4
- FileBackup/__init__.py +5 -11
- {filebackup-0.5.1.dist-info → filebackup-0.5.12.dist-info}/METADATA +75 -71
- {filebackup-0.5.1.dist-info → filebackup-0.5.12.dist-info}/RECORD +13 -14
- {filebackup-0.5.1.dist-info → filebackup-0.5.12.dist-info}/WHEEL +1 -1
- {filebackup-0.5.1.dist-info → filebackup-0.5.12.dist-info}/entry_points.txt +1 -0
- filebackup-0.5.1.dist-info/licenses/LICENSE +0 -21
FileBackup/Impl/Common.py
CHANGED
|
@@ -291,7 +291,7 @@ def GetDestinationHelp() -> str:
|
|
|
291
291
|
Writes content to a SFTP server.
|
|
292
292
|
|
|
293
293
|
Format:
|
|
294
|
-
ftp://<username>:<password or posix path to private key>@<host
|
|
294
|
+
ftp://<username>:<password or posix path to private key>@<host>\\[:<port>]\\[/<working_dir>]
|
|
295
295
|
|
|
296
296
|
Examples:
|
|
297
297
|
ftp://my_username:my_password@my_server.com
|
|
@@ -304,7 +304,7 @@ def GetDestinationHelp() -> str:
|
|
|
304
304
|
Write content using the Fast Glacier application (https://fastglacier.com/).
|
|
305
305
|
|
|
306
306
|
Format:
|
|
307
|
-
fast_glacier://<fast_glacier_account_name>@<aws_region
|
|
307
|
+
fast_glacier://<fast_glacier_account_name>@<aws_region>\\[/<glacier_dir>]
|
|
308
308
|
|
|
309
309
|
Examples:
|
|
310
310
|
fast_glacier://MyFastGlacierAccount@us-west-2
|
|
@@ -315,7 +315,7 @@ def GetDestinationHelp() -> str:
|
|
|
315
315
|
Write content using the S3 Browser application (https://s3browser.com/).
|
|
316
316
|
|
|
317
317
|
Format:
|
|
318
|
-
s3_browser://<s3_browser_account_name>@<bucket_name
|
|
318
|
+
s3_browser://<s3_browser_account_name>@<bucket_name>\\[/<working_dir>]
|
|
319
319
|
|
|
320
320
|
Examples:
|
|
321
321
|
s3_browser://MyS3BrowserAccount@MyBucket
|
|
@@ -341,7 +341,7 @@ def YieldDataStore(
|
|
|
341
341
|
|
|
342
342
|
private_key_filename = Path(private_key_or_password)
|
|
343
343
|
if private_key_filename.is_file():
|
|
344
|
-
private_key_or_password = private_key_filename
|
|
344
|
+
private_key_or_password = private_key_filename
|
|
345
345
|
|
|
346
346
|
working_dir = sftp_match.group("working_dir")
|
|
347
347
|
if working_dir:
|
FileBackup/__init__.py
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
# |
|
|
3
|
-
# | Copyright (c) 2024 David Brownell
|
|
4
|
-
# | Distributed under the MIT License.
|
|
5
|
-
# |
|
|
6
|
-
# ----------------------------------------------------------------------
|
|
7
|
-
# pylint: disable=missing-module-docstring,invalid-name
|
|
1
|
+
# noqa: D104
|
|
8
2
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
__version__ = "
|
|
3
|
+
from importlib.metadata import version
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__version__ = version("FileBackup")
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: FileBackup
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.12
|
|
4
4
|
Summary: Tool for creating and restoring file system backups.
|
|
5
|
-
Project-URL: Homepage, https://github.com/davidbrownell/FileBackup
|
|
6
|
-
Project-URL: Documentation, https://github.com/davidbrownell/FileBackup
|
|
7
|
-
Project-URL: Repository, https://github.com/davidbrownell/FileBackup
|
|
8
|
-
Author-email: David Brownell <github@DavidBrownell.com>
|
|
9
|
-
License-Expression: MIT
|
|
10
|
-
License-File: LICENSE
|
|
11
5
|
Keywords: backup,mirror,offsite,restore
|
|
6
|
+
Author: David Brownell
|
|
7
|
+
Author-email: David Brownell <github@DavidBrownell.com>
|
|
8
|
+
License: MIT
|
|
12
9
|
Classifier: Development Status :: 4 - Beta
|
|
13
10
|
Classifier: Environment :: Console
|
|
14
11
|
Classifier: Intended Audience :: Developers
|
|
@@ -27,71 +24,78 @@ Classifier: Topic :: System :: Archiving :: Backup
|
|
|
27
24
|
Classifier: Topic :: System :: Archiving :: Mirroring
|
|
28
25
|
Classifier: Topic :: System :: Systems Administration
|
|
29
26
|
Classifier: Topic :: Utilities
|
|
30
|
-
Requires-Python: >=3.10
|
|
31
27
|
Requires-Dist: dbrownell-common>=0.15.0
|
|
32
28
|
Requires-Dist: paramiko>=3.5.1
|
|
33
29
|
Requires-Dist: typer>=0.15.3
|
|
30
|
+
Requires-Python: >=3.10
|
|
31
|
+
Project-URL: Homepage, https://github.com/davidbrownell/FileBackup
|
|
32
|
+
Project-URL: Documentation, https://github.com/davidbrownell/FileBackup
|
|
33
|
+
Project-URL: Repository, https://github.com/davidbrownell/FileBackup
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
|
-
**Project:**
|
|
37
|
-
[](https://github.com/davidbrownell/FileBackup/blob/master/LICENSE)
|
|
38
|
-
|
|
39
|
-
**Package:**
|
|
40
|
-
[](https://pypi.org/project/FileBackup/)
|
|
41
|
-
[](https://pypi.org/project/FileBackup/)
|
|
42
|
-
[](https://pypistats.org/packages/
|
|
43
|
-
|
|
44
|
-
**Development:**
|
|
45
|
-
[](https://github.com/astral-sh/uv)
|
|
46
|
-
[](https://github.com/davidbrownell/FileBackup/blob/master/LICENSE)
|
|
38
|
+
|
|
39
|
+
**Package:**
|
|
40
|
+
[](https://pypi.org/project/FileBackup/)
|
|
41
|
+
[](https://pypi.org/project/FileBackup/)
|
|
42
|
+
[](https://pypistats.org/packages/filebackup)
|
|
43
|
+
|
|
44
|
+
**Development:**
|
|
45
|
+
[](https://github.com/astral-sh/uv)
|
|
46
|
+
[](https://github.com/astral-sh/ruff)
|
|
47
|
+
[](https://docs.pytest.org/)
|
|
48
|
+
[](https://github.com/davidbrownell/FileBackup/actions/workflows/CICD.yml)
|
|
49
|
+
[](https://github.com/davidbrownell/FileBackup/actions)
|
|
50
|
+
[](https://github.com/davidbrownell/FileBackup/commits/main/)
|
|
51
|
+
|
|
52
|
+
<!-- Content above this delimiter will be copied to the generated README.md file. DO NOT REMOVE THIS COMMENT, as it will cause regeneration to fail. -->
|
|
53
|
+
|
|
54
|
+
## Contents
|
|
55
|
+
- [Overview](#overview)
|
|
56
|
+
- [Installation](#installation)
|
|
57
|
+
- [Development](#development)
|
|
58
|
+
- [Additional Information](#additional-information)
|
|
59
|
+
- [License](#license)
|
|
60
|
+
|
|
61
|
+
## Overview
|
|
62
|
+
TODO: Complete this section
|
|
63
|
+
|
|
64
|
+
### How to use `FileBackup`
|
|
65
|
+
TODO: Complete this section
|
|
66
|
+
|
|
67
|
+
<!-- Content below this delimiter will be copied to the generated README.md file. DO NOT REMOVE THIS COMMENT, as it will cause regeneration to fail. -->
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
| Installation Method | Command |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| Via [uv](https://github.com/astral-sh/uv) | `uv add FileBackup` |
|
|
74
|
+
| Via [pip](https://pip.pypa.io/en/stable/) | `pip install FileBackup` |
|
|
75
|
+
|
|
76
|
+
### Verifying Signed Artifacts
|
|
77
|
+
Artifacts are signed and verified using [py-minisign](https://github.com/x13a/py-minisign) and the public key in the file `./minisign_key.pub`.
|
|
78
|
+
|
|
79
|
+
To verify that an artifact is valid, visit [the latest release](https://github.com/davidbrownell/FileBackup/releases/latest) and download the `.minisign` signature file that corresponds to the artifact, then run the following command, replacing `<filename>` with the name of the artifact to be verified:
|
|
80
|
+
|
|
81
|
+
```shell
|
|
82
|
+
uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>'); print('The file has been verified.')"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Development
|
|
86
|
+
Please visit [Contributing](https://github.com/davidbrownell/FileBackup/blob/main/CONTRIBUTING.md) and [Development](https://github.com/davidbrownell/FileBackup/blob/main/DEVELOPMENT.md) for information on contributing to this project.
|
|
87
|
+
|
|
88
|
+
## Additional Information
|
|
89
|
+
Additional information can be found at these locations.
|
|
90
|
+
|
|
91
|
+
| Title | Document | Description |
|
|
92
|
+
| --- | --- | --- |
|
|
93
|
+
| Code of Conduct | [CODE_OF_CONDUCT.md](https://github.com/davidbrownell/FileBackup/blob/main/CODE_OF_CONDUCT.md) | Information about the norms, rules, and responsibilities we adhere to when participating in this open source community. |
|
|
94
|
+
| Contributing | [CONTRIBUTING.md](https://github.com/davidbrownell/FileBackup/blob/main/CONTRIBUTING.md) | Information about contributing to this project. |
|
|
95
|
+
| Development | [DEVELOPMENT.md](https://github.com/davidbrownell/FileBackup/blob/main/DEVELOPMENT.md) | Information about development activities involved in making changes to this project. |
|
|
96
|
+
| Governance | [GOVERNANCE.md](https://github.com/davidbrownell/FileBackup/blob/main/GOVERNANCE.md) | Information about how this project is governed. |
|
|
97
|
+
| Maintainers | [MAINTAINERS.md](https://github.com/davidbrownell/FileBackup/blob/main/MAINTAINERS.md) | Information about individuals who maintain this project. |
|
|
98
|
+
| Security | [SECURITY.md](https://github.com/davidbrownell/FileBackup/blob/main/SECURITY.md) | Information about how to privately report security issues associated with this project. |
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
`FileBackup` is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
FileBackup/Mirror.py,sha256=GDgTWVNUYn5O7vlH5YVi0LppwQN4R99J61g1UCBwlfI,23544
|
|
2
|
-
FileBackup/Offsite.py,sha256=_QOywhHX8rmSJJ0TC3dKF4m-cFGx-l9Splng351crqw,65496
|
|
3
|
-
FileBackup/Snapshot.py,sha256=Dj-XFjAFWkqNZIlMHqTOI1Ygdm1jB3orIwDxMQSrupQ,26970
|
|
4
|
-
FileBackup/__init__.py,sha256=mbDIiinNsmldCAGbrTOXoPVPYmGGiRz94d8JOF3bEyc,597
|
|
5
|
-
FileBackup/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
1
|
FileBackup/CommandLine/CommandLineArguments.py,sha256=7oLUf9tODd_OjBNzIjQiiyZ9ujy-KbW53Pg0dF0MQG8,2378
|
|
7
2
|
FileBackup/CommandLine/EntryPoint.py,sha256=Fn62wtKV6uiTJ1dQpolNFUyWWeUOKKgetOFSXPgoe-w,1813
|
|
8
3
|
FileBackup/CommandLine/MirrorEntryPoint.py,sha256=WlGIz_AZ7OdE-hVL19lQExUXbEjQ8_4bbIuITWxdWO4,6704
|
|
@@ -10,17 +5,21 @@ FileBackup/CommandLine/OffsiteEntryPoint.py,sha256=OscTJi57_-dYX2NsfzTONqWhxm-Nv
|
|
|
10
5
|
FileBackup/CommandLine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
6
|
FileBackup/DataStore/FastGlacierDataStore.py,sha256=5J4W9FqB92hnHoRoZLo-DfMQ6uyjaOAWWrnuc0pvnJo,3017
|
|
12
7
|
FileBackup/DataStore/FileSystemDataStore.py,sha256=XUvIQe2Yl-W6OPfvsJlPzDPsGclDOkKlozO0GJ-05bo,6791
|
|
13
|
-
FileBackup/DataStore/S3BrowserDataStore.py,sha256=3NHl-advSbyXuL1kDu1wswbcAZbhmAGDu8yzlOuY5Us,2954
|
|
14
|
-
FileBackup/DataStore/SFTPDataStore.py,sha256=TKz-hwwHg4avxKHDFRRz7FlKx3d40wT15ug1gCpu6VU,11374
|
|
15
|
-
FileBackup/DataStore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
8
|
FileBackup/DataStore/Interfaces/BulkStorageDataStore.py,sha256=qZo92nPDP_aVTxlohsc1ySnU9Skgxgo7Mj_tT0KxFZ8,1310
|
|
17
9
|
FileBackup/DataStore/Interfaces/DataStore.py,sha256=FpQmxoqBS5indJYRxibkSXHTgk7U6HFyViI0BDqCcVw,1169
|
|
18
10
|
FileBackup/DataStore/Interfaces/FileBasedDataStore.py,sha256=eMA_cQ-CED83z5uMDQZ18UFzBRvaXOwWz67kVu-2ftM,5307
|
|
19
11
|
FileBackup/DataStore/Interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
FileBackup/
|
|
12
|
+
FileBackup/DataStore/S3BrowserDataStore.py,sha256=3NHl-advSbyXuL1kDu1wswbcAZbhmAGDu8yzlOuY5Us,2954
|
|
13
|
+
FileBackup/DataStore/SFTPDataStore.py,sha256=TKz-hwwHg4avxKHDFRRz7FlKx3d40wT15ug1gCpu6VU,11374
|
|
14
|
+
FileBackup/DataStore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
FileBackup/Impl/Common.py,sha256=qXl-QLFF3fW6pzYIj8_Bh2prsM7KQ0-o8iffcmx0PD4,24931
|
|
21
16
|
FileBackup/Impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
FileBackup/Mirror.py,sha256=GDgTWVNUYn5O7vlH5YVi0LppwQN4R99J61g1UCBwlfI,23544
|
|
18
|
+
FileBackup/Offsite.py,sha256=_QOywhHX8rmSJJ0TC3dKF4m-cFGx-l9Splng351crqw,65496
|
|
19
|
+
FileBackup/Snapshot.py,sha256=Dj-XFjAFWkqNZIlMHqTOI1Ygdm1jB3orIwDxMQSrupQ,26970
|
|
20
|
+
FileBackup/__init__.py,sha256=4lDISv28VK1GgVRBan1bmRO9b598jT21zflJ5GtB-PA,91
|
|
21
|
+
FileBackup/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
filebackup-0.5.12.dist-info/WHEEL,sha256=wXwAVsgVaOZ_pwDFqQm5Rd6PID-Fc74nkLc8X8gHiDo,81
|
|
23
|
+
filebackup-0.5.12.dist-info/entry_points.txt,sha256=XPN0-w-4RqeYmOxhvCPkHH6D691tae7_hwNcgh16U-c,122
|
|
24
|
+
filebackup-0.5.12.dist-info/METADATA,sha256=rbq36Nx2cl4FlkWWbO_ppqRaNDvY1UIRDkqGMP8FPCA,6123
|
|
25
|
+
filebackup-0.5.12.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT LICENSE
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024-25 David Brownell
|
|
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.
|