multiversion-backup


Namemultiversion-backup JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryA 'BackUp' class which copies a target file or folder to set output folders. Detects and keeps a set amount of backup versions and deletes old backups outside that range.
upload_time2024-08-30 16:44:23
maintainerNone
docs_urlNone
authorKyle Ross
requires_python<4.0,>=3.12
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # multiversion-backup

## Summary
An easily configurable `BackUp` class which copies a target file or folder to set output folders. Detects and keeps a set amount of backup versions and deletes old backups outside that range. 

## Breakdown

- You initialise a `BackUp` object and use `.copy()`
- A version of the backup target is saved to the output folder or folders
- A log file is generated, with logs detailing the backup activity (see example directory)
- Older backups outside of the specified limit are deleted
- Backups won't occur if the target hasn't changed (coming soon for folders)

## Quick Install

```
pip install multiversion-backup
```

## Usage

### Import the BackUp class
```python
from multiversion_backup import BackUp
```
### Create the BackUp object

#### Per File backup

```python
backup_object = BackUp(r"F:\image.jpg",  # Source file as a string
                     r"F:\File Backup",  # String or list of output folders
                     "important_file",  # Prefix for the output file name and log messages
                     3)  # Maximum amount of backups to keep
```

#### Per Folder backup

```python
backup_object = BackUp(r"F:\Folder",  # Source folder as a string
                       [r"F:\Folder Backup 1", r"F:\Folder Backup 2"],  # String or list of output folders
                       "important_folder",  # Prefix for the output folder name and log messages
                       5)  # Maximum amount of backups to keep
```

### Call the `.copy()` method

```python
backup_object.copy()
```

## Troubleshooting

- File or folder names in the output folders will be ignored if they do not start with the defined prefix
- Changes to the datetime string formatting of the output file's names will raise exceptions

## Why?

I made this since I was frustrated with syncing behaviours of services like OneDrive, which when used to sync files that were actively in use, would cause lag and other issues.

This method side steps the issue by letting you schedule when you copy to OneDrive, providing incremental multi-version backup and synchronisation without OneDrive disruptively trying to synchronise files that are always being actively used and changed like game saves and settings.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "multiversion-backup",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": null,
    "author": "Kyle Ross",
    "author_email": "107285758+Kyle-Ross@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/3a/31/4978963e0e06165157b818643f8513da94494ea52e6482ac1b62922ee0e6/multiversion_backup-1.0.2.tar.gz",
    "platform": null,
    "description": "# multiversion-backup\n\n## Summary\nAn easily configurable `BackUp` class which copies a target file or folder to set output folders. Detects and keeps a set amount of backup versions and deletes old backups outside that range. \n\n## Breakdown\n\n- You initialise a `BackUp` object and use `.copy()`\n- A version of the backup target is saved to the output folder or folders\n- A log file is generated, with logs detailing the backup activity (see example directory)\n- Older backups outside of the specified limit are deleted\n- Backups won't occur if the target hasn't changed (coming soon for folders)\n\n## Quick Install\n\n```\npip install multiversion-backup\n```\n\n## Usage\n\n### Import the BackUp class\n```python\nfrom multiversion_backup import BackUp\n```\n### Create the BackUp object\n\n#### Per File backup\n\n```python\nbackup_object = BackUp(r\"F:\\image.jpg\",  # Source file as a string\n                     r\"F:\\File Backup\",  # String or list of output folders\n                     \"important_file\",  # Prefix for the output file name and log messages\n                     3)  # Maximum amount of backups to keep\n```\n\n#### Per Folder backup\n\n```python\nbackup_object = BackUp(r\"F:\\Folder\",  # Source folder as a string\n                       [r\"F:\\Folder Backup 1\", r\"F:\\Folder Backup 2\"],  # String or list of output folders\n                       \"important_folder\",  # Prefix for the output folder name and log messages\n                       5)  # Maximum amount of backups to keep\n```\n\n### Call the `.copy()` method\n\n```python\nbackup_object.copy()\n```\n\n## Troubleshooting\n\n- File or folder names in the output folders will be ignored if they do not start with the defined prefix\n- Changes to the datetime string formatting of the output file's names will raise exceptions\n\n## Why?\n\nI made this since I was frustrated with syncing behaviours of services like OneDrive, which when used to sync files that were actively in use, would cause lag and other issues.\n\nThis method side steps the issue by letting you schedule when you copy to OneDrive, providing incremental multi-version backup and synchronisation without OneDrive disruptively trying to synchronise files that are always being actively used and changed like game saves and settings.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A 'BackUp' class which copies a target file or folder to set output folders. Detects and keeps a set amount of backup versions and deletes old backups outside that range.",
    "version": "1.0.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53511e6933c029294564f826dbd7a1b2b9f3f8d457dbb0c8a4d6f8daba02f819",
                "md5": "3461bf7d57d7cef7e4f6b28135d43bd2",
                "sha256": "3a3d4eb74eacf5eebffdacc9e87cfdbcb79f4edf363587ff267623c4481ac1f8"
            },
            "downloads": -1,
            "filename": "multiversion_backup-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3461bf7d57d7cef7e4f6b28135d43bd2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 7046,
            "upload_time": "2024-08-30T16:44:21",
            "upload_time_iso_8601": "2024-08-30T16:44:21.915311Z",
            "url": "https://files.pythonhosted.org/packages/53/51/1e6933c029294564f826dbd7a1b2b9f3f8d457dbb0c8a4d6f8daba02f819/multiversion_backup-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a314978963e0e06165157b818643f8513da94494ea52e6482ac1b62922ee0e6",
                "md5": "843fa10334a47a304224230d15e9e81c",
                "sha256": "21603a8c75bfd09ba481168dea8a4e05ede70c8ae840c9e5ec102cbc92fc1d4c"
            },
            "downloads": -1,
            "filename": "multiversion_backup-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "843fa10334a47a304224230d15e9e81c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 5775,
            "upload_time": "2024-08-30T16:44:23",
            "upload_time_iso_8601": "2024-08-30T16:44:23.057739Z",
            "url": "https://files.pythonhosted.org/packages/3a/31/4978963e0e06165157b818643f8513da94494ea52e6482ac1b62922ee0e6/multiversion_backup-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-30 16:44:23",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "multiversion-backup"
}
        
Elapsed time: 0.67337s