FileBackup 0.5.1__tar.gz → 0.5.2__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.
- {filebackup-0.5.1 → filebackup-0.5.2}/.copier-answers.yml +1 -1
- filebackup-0.5.2/.gitignore +16 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/DEVELOPMENT.md +1 -1
- {filebackup-0.5.1 → filebackup-0.5.2}/PKG-INFO +7 -5
- {filebackup-0.5.1 → filebackup-0.5.2}/README.md +6 -4
- {filebackup-0.5.1 → filebackup-0.5.2}/pyproject.toml +16 -6
- filebackup-0.5.2/src/FileBackup/__init__.py +8 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/uv.lock +298 -244
- filebackup-0.5.1/.gitignore +0 -7
- filebackup-0.5.1/src/FileBackup/__init__.py +0 -12
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/CODEOWNERS +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/actions/release_impl/action.yml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/pull_request_template.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/release_sources.yaml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/workflows/CICD.yml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/workflows/CICD_impl.yml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.github/workflows/codeql.yml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.pre-commit-config.yaml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/.python-version +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/BuildBinary.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/CODE_OF_CONDUCT.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/CONTRIBUTING.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/GOVERNANCE.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/LICENSE +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/MAINTAINERS.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/SECURITY.md +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/minisign_key.pub +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/AutoGitSemVer.yaml +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/CommandLine/CommandLineArguments.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/CommandLine/EntryPoint.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/CommandLine/MirrorEntryPoint.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/CommandLine/OffsiteEntryPoint.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/CommandLine/__init__.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/FastGlacierDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/FileSystemDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/Interfaces/BulkStorageDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/Interfaces/DataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/Interfaces/FileBasedDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/Interfaces/__init__.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/S3BrowserDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/SFTPDataStore.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/DataStore/__init__.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/Impl/Common.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/Impl/__init__.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/Mirror.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/Offsite.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/Snapshot.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/src/FileBackup/py.typed +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/tests/CommandLine/EntryPoint_UnitTest.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/tests/Mirror_UnitTest.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/tests/Offsite_UnitTest.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/tests/Snapshot_UnitTest.py +0 -0
- {filebackup-0.5.1 → filebackup-0.5.2}/tests/TestHelpers.py +0 -0
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
| Automated Testing | `uv run pytest` or<br/>`uv run pytest --no-cov` | Run automated tests using [pytest](https://docs.pytest.org/) and extract code coverage using [coverage](https://coverage.readthedocs.io/) based on settings in `pyproject.toml`. | :white_check_mark: | :white_check_mark: |
|
|
20
20
|
| Semantic Version Generation | `uv run python -m AutoGitSemVer.scripts.UpdatePythonVersion ./src/FileBackup/__init__.py ./src` | Generate a new [Semantic Version](https://semver.org/) based on git commits using [AutoGitSemVer](https://github.com/davidbrownell/AutoGitSemVer). Version information is stored in `./src/FileBackup/__init__.py`. | | :white_check_mark: |
|
|
21
21
|
| Python Package Creation | `uv build` | Create a python package using [uv](https://github.com/astral-sh/uv) based on settings in `pyproject.toml`. Generated packages will be written to `./dist`. | | :white_check_mark: |
|
|
22
|
-
| Sign Artifacts | `uv run
|
|
22
|
+
| Sign Artifacts | `uv run python -c "import minisign; minisign.SecretKey.from_file(<temp_filename>).sign_file(<filename>, trusted_comment='<package_name> v<package_version>', drop_signature=True)` | Signs artifacts using [py-minisign](https://github.com/x13a/py-minisign). Note that the private key is stored as a [GitHub secret](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions). | | :white_check_mark: |
|
|
23
23
|
| Python Package Publishing | `uv publish` | Publish a python package to [PyPi](https://pypi.org/) using [uv](https://github.com/astral-sh/uv) based on settings in `pyproject.toml`. | | :white_check_mark: |
|
|
24
24
|
|
|
25
25
|
## Contributing Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: FileBackup
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Tool for creating and restoring file system backups.
|
|
5
5
|
Project-URL: Homepage, https://github.com/davidbrownell/FileBackup
|
|
6
6
|
Project-URL: Documentation, https://github.com/davidbrownell/FileBackup
|
|
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
59
59
|
## Overview
|
|
60
60
|
TODO: Complete this section
|
|
61
61
|
|
|
62
|
-
### How to use FileBackup
|
|
62
|
+
### How to use `FileBackup`
|
|
63
63
|
TODO: Complete this section
|
|
64
64
|
|
|
65
65
|
<!-- 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. -->
|
|
@@ -72,11 +72,13 @@ TODO: Complete this section
|
|
|
72
72
|
| Via [pip](https://pip.pypa.io/en/stable/) | `pip install FileBackup` |
|
|
73
73
|
|
|
74
74
|
### Verifying Signed Artifacts
|
|
75
|
-
Artifacts are signed and
|
|
75
|
+
Artifacts are signed and verified using [py-minisign](https://github.com/x13a/py-minisign) and the public key in the file `./minisign_key.pub`.
|
|
76
76
|
|
|
77
77
|
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:
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
```shell
|
|
80
|
+
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.')"
|
|
81
|
+
```
|
|
80
82
|
|
|
81
83
|
## Development
|
|
82
84
|
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.
|
|
@@ -94,4 +96,4 @@ Additional information can be found at these locations.
|
|
|
94
96
|
| Security | [SECURITY.md](https://github.com/davidbrownell/FileBackup/blob/main/SECURITY.md) | Information about how to privately report security issues associated with this project. |
|
|
95
97
|
|
|
96
98
|
## License
|
|
97
|
-
FileBackup is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
|
|
99
|
+
`FileBackup` is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
## Overview
|
|
25
25
|
TODO: Complete this section
|
|
26
26
|
|
|
27
|
-
### How to use FileBackup
|
|
27
|
+
### How to use `FileBackup`
|
|
28
28
|
TODO: Complete this section
|
|
29
29
|
|
|
30
30
|
<!-- 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. -->
|
|
@@ -37,11 +37,13 @@ TODO: Complete this section
|
|
|
37
37
|
| Via [pip](https://pip.pypa.io/en/stable/) | `pip install FileBackup` |
|
|
38
38
|
|
|
39
39
|
### Verifying Signed Artifacts
|
|
40
|
-
Artifacts are signed and
|
|
40
|
+
Artifacts are signed and verified using [py-minisign](https://github.com/x13a/py-minisign) and the public key in the file `./minisign_key.pub`.
|
|
41
41
|
|
|
42
42
|
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:
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
```shell
|
|
45
|
+
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.')"
|
|
46
|
+
```
|
|
45
47
|
|
|
46
48
|
## Development
|
|
47
49
|
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.
|
|
@@ -59,4 +61,4 @@ Additional information can be found at these locations.
|
|
|
59
61
|
| Security | [SECURITY.md](https://github.com/davidbrownell/FileBackup/blob/main/SECURITY.md) | Information about how to privately report security issues associated with this project. |
|
|
60
62
|
|
|
61
63
|
## License
|
|
62
|
-
FileBackup is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
|
|
64
|
+
`FileBackup` is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
|
|
@@ -58,20 +58,21 @@ build-backend = "hatchling.build"
|
|
|
58
58
|
|
|
59
59
|
[dependency-groups]
|
|
60
60
|
dev = [
|
|
61
|
-
"autogitsemver>=0.8.
|
|
61
|
+
"autogitsemver>=0.8.4",
|
|
62
62
|
"cx-freeze>=8.3.0",
|
|
63
|
-
"dbrownell-commitemojis>=0.1.
|
|
63
|
+
"dbrownell-commitemojis>=0.1.4",
|
|
64
64
|
"pre-commit>=4.2.0",
|
|
65
|
-
"
|
|
66
|
-
"pytest
|
|
67
|
-
"
|
|
65
|
+
"py-minisign>=0.12.0",
|
|
66
|
+
"pytest>=8.4.1",
|
|
67
|
+
"pytest-cov>=6.2.1",
|
|
68
|
+
"ruff>=0.12.3",
|
|
68
69
|
]
|
|
69
70
|
|
|
70
71
|
[tool.hatch.version]
|
|
71
72
|
path = "src/FileBackup/__init__.py"
|
|
72
73
|
|
|
73
74
|
[tool.pytest.ini_options]
|
|
74
|
-
addopts = "--verbose -vv --capture=no --cov=FileBackup --cov-fail-under=85.0"
|
|
75
|
+
addopts = "--verbose -vv --capture=no --cov=FileBackup --cov-report term --cov-report xml:coverage.xml --cov-fail-under=85.0"
|
|
75
76
|
python_files = [
|
|
76
77
|
"**/*Test.py",
|
|
77
78
|
]
|
|
@@ -87,12 +88,21 @@ ignore = [
|
|
|
87
88
|
"ANN003", # Missing type annotation for `**kwargs`
|
|
88
89
|
"BLE001", # Do not catch blind exception: `Exception`
|
|
89
90
|
"COM812", # Trailing comma missing
|
|
91
|
+
"D105", # Missing docstring in magic method
|
|
92
|
+
"D107", # Missing docstring in `__init__` method
|
|
90
93
|
"D202", # No blank lines allowed after function docstring
|
|
91
94
|
"E501", # Line too long
|
|
95
|
+
"FIX002", # Line contains TODO, consider resolving the issue
|
|
92
96
|
"I001", # Import block is un-sorted or un-formatted
|
|
93
97
|
"N802", # Function name `xxx` should be lowercase
|
|
94
98
|
"N999", # Invalid module name
|
|
99
|
+
"RSE102", # Unnecessary parentheses on raise exception
|
|
95
100
|
"S101", # Use of assert detected
|
|
101
|
+
"TC006", # Add quotes to type expression in `typing.cast()`
|
|
102
|
+
"TD002", # Missing author in TODO
|
|
103
|
+
"TD003", # Missing issue link for this TODO
|
|
104
|
+
"TRY002", # Create your own exception
|
|
105
|
+
"TRY300", # Consider moving this statement to an `else` block
|
|
96
106
|
"UP032", # Use f-string instead of `format` call
|
|
97
107
|
]
|
|
98
108
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# noqa: D104
|
|
2
|
+
|
|
3
|
+
# Wheel names will be generated according to this value. Do not manually modify this value; instead
|
|
4
|
+
# update it according to committed changes by running this command from the root of the repository:
|
|
5
|
+
#
|
|
6
|
+
# uv run python -m AutoGitSemVer.scripts.UpdatePythonVersion ./src/FileBackup/__init__.py ./src
|
|
7
|
+
#
|
|
8
|
+
__version__ = "0.5.2"
|