{ "info": { "author": "Fred", "author_email": "Fred@CreativeProjects.Tech", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: System :: Archiving :: Backup" ], "description": "[![Build Status](https://travis-ci.com/creativeprojects/resticprofile.svg?branch=master)](https://travis-ci.com/creativeprojects/resticprofile)\n\n# resticprofile\nConfiguration profiles manager for [restic backup](https://restic.net/)\n\n**resticprofile** is the missing link between a configuration file and restic backup. Creating a configuration file for restic has been [discussed before](https://github.com/restic/restic/issues/16), but seems to be a very low priority right now.\n\nThe configuration file is [TOML](https://github.com/toml-lang/toml) format:\n\n* You no longer need to remember command parameters and environment variables\n* You can create multiple profiles inside a configuration file\n* A profile can inherit the options from another profile\n* You can run the forget command before or after a backup (in a section called *retention*)\n* You can check a repository before or after a backup\n* You can create groups of profiles that will run sequentially\n* You can run shell commands before or after a backup\n* Allows to start the restic process using _nice_ (not available on Windows) and/or _ionice_ (only available on Linux)\n\n## Requirements\n\n**resticprofile** needs python >=3.5 installed on your machine.\n\nIt's been actively tested on macOS X and Linux, and regularly tested on Windows.\n\n**This is at _beta_ stage. Please don't use it in production yet. Even though I'm using it on my servers, I cannot guarantee all combinations of configuration are going to work properly for you.**\n\n## Install\n\n**resticprofile** is published on [Python Package Index](https://pypi.org/project/resticprofile/).\nThe easiest way to install resticprofile is using **pip**:\n```\npython3 -m pip install --user --upgrade resticprofile\n```\n\n## Configuration format\n\n* A configuration is a set of _profiles_.\n* Each profile is in its own `[section]`.\n* Inside each profile, you can specify different flags for each command.\n* A command definition is `[section.command]`.\n\nAll the restic flags can be defined in a section. For most of them you just need to remove the two dashes in front.\n\nTo set the flag `--password-file password.txt` you need to add a line like\n```\npassword-file = \"password.txt\"\n```\n\nThere's one **exception**: the flag `--repo` is named `repository` in the configuration\n\nLet's say you normally use this command:\n\n```\nrestic --repo \"local:/backup\" --password-file \"password.txt\" --verbose backup /home\n```\n\nFor resticprofile to generate this command automatically for you, here's the configuration file:\n\n```ini\n[default]\nrepository = \"local:/backup\"\npassword-file = \"password.txt\"\n\n[default.backup]\nverbose = true\nsource = [ \"/home\" ]\n```\n\nYou may have noticed the `source` flag is accepting an array of values (inside brakets)\n\nNow, assuming this configuration file is named `profiles.conf` in the current folder, you can simply run\n\n```\nresticprofile backup\n```\n\n\n## Configuration examples\n\nHere's a simple configuration file using a Microsoft Azure backend:\n\n```ini\n[default]\nrepository = \"azure:restic:/\"\npassword-file = \"key\"\n\n[default.env]\nAZURE_ACCOUNT_NAME = \"my_storage_account\"\nAZURE_ACCOUNT_KEY = \"my_super_secret_key\"\n\n[default.backup]\nexclude-file = \"excludes\"\nexclude-caches = true\none-file-system = true\ntag = [ \"root\" ]\nsource = [ \"/\", \"/var\" ]\n```\n\nHere's a more complex configuration file showing profile inheritance and two backup profiles using the same repository:\n\n```ini\n[global]\n# ionice is available on Linux only\nionice = false\nionice-class = 2\nionice-level = 6\n# nice is available on all unixes (macOs X included)\nnice = 10\n# run 'snapshots' when no command is specified when invoking resticprofile\ndefault-command = \"snapshots\"\n# initialize a repository if none exist at location\ninitialize = false\n\n# a group is a profile that will call all profiles one by one\n[groups]\n# when starting a backup on profile \"full-backup\", it will run the \"root\" and \"src\" backup profiles\nfull-backup = [ \"root\", \"src\" ]\n\n# Default profile when not specified (-n or --name)\n# Please note there's no default inheritance from the 'default' profile (you can use the 'inherit' flag if needed)\n[default]\nrepository = \"/backup\"\npassword-file = \"key\"\ninitialize = false\n\n[default.env]\nTMPDIR= \"/tmp\"\n\n[no-cache]\ninherit = \"default\"\nno-cache = true\ninitialize = false\n\n# New profile named 'root'\n[root]\ninherit = \"default\"\ninitialize = true\n\n# 'backup' command of profile 'root'\n[root.backup]\nexclude-file = [ \"root-excludes\", \"excludes\" ]\nexclude-caches = true\none-file-system = false\ntag = [ \"test\", \"dev\" ]\nsource = [ \".\" ]\n\n# retention policy for profile root\n[root.retention]\nbefore-backup = false\nafter-backup = true\nkeep-last = 3\nkeep-hourly = 1\nkeep-daily = 1\nkeep-weekly = 1\nkeep-monthly = 1\nkeep-yearly = 1\nkeep-within = \"3h\"\nkeep-tag = [ \"forever\" ]\ncompact = false\nprune = false\n# if path is NOT specified, it will be copied from the 'backup' source\n# path = []\n# the tags are NOT copied from the 'backup' command\ntag = [ \"test\", \"dev\" ]\n# host can be a boolean ('true' meaning current hostname) or a string to specify a different hostname\nhost = true\n\n# New profile named 'src'\n[src]\ninherit = \"default\"\ninitialize = true\n\n# 'backup' command of profile 'src'\n[src.backup]\nrun-before = [ \"echo Starting!\", \"ls -al ./src\" ]\nrun-after = \"echo All Done!\"\nexclude = [ '/**/.git' ]\nexclude-caches = true\none-file-system = false\ntag = [ \"test\", \"dev\" ]\nsource = [ \"./src\" ]\ncheck-before = true\n\n# retention policy for profile src\n[src.retention]\nbefore-backup = false\nafter-backup = true\nkeep-within = \"30d\"\ncompact = false\nprune = true\n\n```\n\nAnd another simple example for Windows:\n\n```ini\n[global]\nrestic-binary = \"c:\\\\ProgramData\\\\chocolatey\\\\bin\\\\restic.exe\"\n\n# Default profile when not specified (-n or --name)\n# Please note there's no default inheritance from the 'default' profile (you can use the 'inherit' flag if needed)\n[default]\nrepository = \"local:r:/\"\npassword-file = \"key\"\ninitialize = false\n\n# New profile named 'test'\n[test]\ninherit = \"default\"\ninitialize = true\n\n# 'backup' command of profile 'test'\n[test.backup]\ntag = [ \"windows\" ]\nsource = [ \"c:\\\\\" ]\ncheck-after = true\nrun-before = \"dir /l\"\nrun-after = \"echo All Done!\"\n\n```\n\nSimple example sending a file via stdin\n\n```ini\n\n[stdin]\nrepository = \"local:/backup/restic\"\npassword-file = \"key\"\n\n[stdin.backup]\nstdin = true\nstdin-filename = \"stdin-test\"\ntag = [ 'stdin' ]\n\n```\n\n## Using resticprofile\n\nHere are a few examples how to run resticprofile (using the main example configuration file)\n\nSee all snapshots (assuming your default python is python3):\n\n```\npython -m resticprofile\n```\n\nOr if the folder `~/.local/bin/` is in your PATH, simply\n\n```\nresticprofile\n```\n\nBackup root & src profiles (using _full-backup_ group shown earlier)\n\n```\npython -m resticprofile --name \"full-backup\" backup\n```\n\nAssuming the _stdin_ profile from the configuration file shown before, the command to send a mysqldump to the backup is as simple as:\n\n```\nmysqldump --all-databases | python3 -m resticprofile -n stdin backup\n```\n\nMount the default profile (_default_) in /mnt/restic:\n\n```\npython -m resticprofile mount /mnt/restic\n```\n\nDisplay quick help\n\n```\npython -m resticprofile --help\n\nUsage:\n resticprofile\n [--no-ansi]\n [-c|--config ]\n [-h|--help]\n [-n|--name ]\n [-q|--quiet]\n [-v|--verbose]\n [restic command] [additional parameters to pass to restic]\n\n```\n\n## Command line reference ##\n\nThere are not many options on the command line, most of the options are in the configuration file.\n\n* **[-h]**: Display quick help\n* **[-c | --config] configuration_file**: Specify a configuration file other than the default\n* **[-n | --name] profile_name**: Profile section to use from the configuration file\n* **[-q | --quiet]**: Force resticprofile and restic to be quiet (override any configuration from the profile)\n* **[-v | --verbose]**: Force resticprofile and restic to be verbose (override any configuration from the profile)\n* **[--no-ansi]**: Disable console colouring (to save output into a log file)\n* **[restic command]**: Like snapshots, backup, check, prune, forget, mount, etc.\n* **[additional flags]**: Any additional flags to pass to the restic command line\n\n## Configuration file reference\n\n`[global]`\n\nNone of these flags are passed on the restic command line\n\n* **ionice**: true / false\n* **ionice-class**: integer\n* **ionice-level**: integer\n* **nice**: true / false OR integer\n* **default-command**: string\n* **initialize**: true / false\n* **restic-binary**: string\n\n`[profile]`\n\nFlags used by resticprofile only\n\n* ****inherit****: string\n* **initialize**: true / false\n\nFlags passed to the restic command line\n\n* **cacert**: string\n* **cache-dir**: string\n* **cleanup-cache**: true / false\n* **json**: true / false\n* **key-hint**: string\n* **limit-download**: integer\n* **limit-upload**: integer\n* **no-cache**: true / false\n* **no-lock**: true / false\n* **option**: string OR list of strings\n* **password-command**: string\n* **password-file**: string\n* **quiet**: true / false\n* **repository**: string **(will be passed as 'repo' to the command line)**\n* **tls-client-cert**: string\n* **verbose**: true / false OR integer\n\n`[profile.backup]`\n\nFlags used by resticprofile only\n\n* **run-before**: string OR list of strings\n* **run-after**: string OR list of strings\n* **check-before**: true / false\n* **check-after**: true / false\n\nFlags passed to the restic command line\n\n* **exclude**: string OR list of strings\n* **exclude-caches**: true / false\n* **exclude-file**: string OR list of strings\n* **exclude-if-present**: string OR list of strings\n* **files-from**: string OR list of strings\n* **force**: true / false\n* **host**: string\n* **iexclude**: string OR list of strings\n* **ignore-inode**: true / false\n* **one-file-system**: true / false\n* **parent**: string\n* **stdin**: true / false\n* **stdin-filename**: string\n* **tag**: string OR list of strings\n* **time**: string\n* **with-atime**: true / false\n* **source**: string OR list of strings\n\n`[profile.retention]`\n\nFlags used by resticprofile only\n\n* **before-backup**: true / false\n* **after-backup**: true / false\n\nFlags passed to the restic command line\n\n* **keep-last**: integer\n* **keep-hourly**: integer\n* **keep-daily**: integer\n* **keep-weekly**: integer\n* **keep-monthly**: integer\n* **keep-yearly**: integer\n* **keep-within**: string\n* **keep-tag**: string OR list of strings\n* **host**: true / false OR string\n* **tag**: string OR list of strings\n* **path**: string OR list of strings\n* **compact**: true / false\n* **group-by**: string\n* **dry-run**: true / false\n* **prune**: true / false\n\n`[profile.snapshots]`\n\nFlags passed to the restic command line\n\n* **compact**: true / false\n* **group-by**: string\n* **host**: true / false OR string\n* **last**: true / false\n* **path**: string OR list of strings\n* **tag**: string OR list of strings\n\n`[profile.forget]`\n\nFlags passed to the restic command line\n\n* **keep-last**: integer\n* **keep-hourly**: integer\n* **keep-daily**: integer\n* **keep-weekly**: integer\n* **keep-monthly**: integer\n* **keep-yearly**: integer\n* **keep-within**: string\n* **keep-tag**: string OR list of strings\n* **host**: true / false OR string\n* **tag**: string OR list of strings\n* **path**: string OR list of strings\n* **compact**: true / false\n* **group-by**: string\n* **dry-run**: true / false\n* **prune**: true / false\n\n`[profile.check]`\n\nFlags passed to the restic command line\n\n* **check-unused**: true / false\n* **read-data**: true / false\n* **read-data-subset**: string\n* **with-cache**: true / false\n\n`[profile.mount]`\n\nFlags passed to the restic command line\n\n* **allow-other**: true / false\n* **allow-root**: true / false\n* **host**: true / false OR string\n* **no-default-permissions**: true / false\n* **owner-root**: true / false\n* **path**: string OR list of strings\n* **snapshot-template**: string\n* **tag**: string OR list of strings\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/creativeprojects/resticprofile", "keywords": "restic backup configuration profiles", "license": "GPL-3.0-or-later", "maintainer": "", "maintainer_email": "", "name": "resticprofile", "package_url": "https://pypi.org/project/resticprofile/", "platform": "", "project_url": "https://pypi.org/project/resticprofile/", "project_urls": { "Homepage": "https://github.com/creativeprojects/resticprofile" }, "release_url": "https://pypi.org/project/resticprofile/0.5.2/", "requires_dist": [ "setuptools", "toml (<0.11,>=0.10)", "colorama (<0.5,>=0.4)" ], "requires_python": ">=3.5", "summary": "Manage configuration profiles for restic backup", "version": "0.5.2" }, "last_serial": 5891943, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8fb27eb4394632a46f47a961c5bc14d3", "sha256": "285b6159f2d46cb615a7eccfcc631f14d509f0392571a01cfd92e4e658d007cf" }, "downloads": -1, "filename": "resticprofile-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8fb27eb4394632a46f47a961c5bc14d3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27796, "upload_time": "2019-06-24T16:31:58", "url": "https://files.pythonhosted.org/packages/b3/93/a477c55ca69ea60791348a94e2b15334a238b25b43519110f5b1d007004b/resticprofile-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1f15683d45a5db1c488da953cac9603", "sha256": "d22825d00026e5ffca2cbfad70c0f0a4a453e81cb74f4eff273716a8d78ff06c" }, "downloads": -1, "filename": "resticprofile-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b1f15683d45a5db1c488da953cac9603", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13492, "upload_time": "2019-06-24T16:32:01", "url": "https://files.pythonhosted.org/packages/48/73/cf58bff906ce98da08632c8075031eb0b65b2d200f97041ec5987c3d6af6/resticprofile-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2f320fdaed0e6f65fd9b3ac9d12f990f", "sha256": "1275e67c515565269dc1aea64a41a515e72b79b9845a9cc807c17954b0980dd0" }, "downloads": -1, "filename": "resticprofile-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2f320fdaed0e6f65fd9b3ac9d12f990f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28397, "upload_time": "2019-06-24T20:42:02", "url": "https://files.pythonhosted.org/packages/0a/67/dd5d5f9f4fc42b8032197d5f5730a59a16832aaaca8497c8f637bb8ebc7b/resticprofile-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a8197b4aa1ad6b2e4b227194a787f2b", "sha256": "3aa8578f360f829380adcbc80afe2b3316e5f27ca3997850621093e79330fadd" }, "downloads": -1, "filename": "resticprofile-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8a8197b4aa1ad6b2e4b227194a787f2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13942, "upload_time": "2019-06-24T20:42:04", "url": "https://files.pythonhosted.org/packages/6c/da/3b48eb27515431f6e10449ba906ff03c2fdfc85a7635f4222de1fb26e2bb/resticprofile-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c6f8551a06181c90a1df5a173739af86", "sha256": "291f1abf91d7c2d0e2177056f5e8fa563183652647fb1017ed2a1fe99d4f062e" }, "downloads": -1, "filename": "resticprofile-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6f8551a06181c90a1df5a173739af86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28555, "upload_time": "2019-06-24T21:30:07", "url": "https://files.pythonhosted.org/packages/b3/c9/96d0b3cb9243c97ed64824c47601f186139b93b1dd021260de4c0053e562/resticprofile-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "708b201fa8573471a94fab595ec17498", "sha256": "5a57a49653770fba37d06cd593371df6415a191ca02eaeeba26d377b816a4a33" }, "downloads": -1, "filename": "resticprofile-0.3.0.tar.gz", "has_sig": false, "md5_digest": "708b201fa8573471a94fab595ec17498", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 14086, "upload_time": "2019-06-24T21:30:09", "url": "https://files.pythonhosted.org/packages/74/61/a44b03cb5e0c35f080f4228facc132e6ea64afa08670f24efbb331e5e943/resticprofile-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "23d7a716d0a0f9221a46360cb6023756", "sha256": "d69364675d7f42dab83974ec3a4b177b5c82c8125a48881ed61e44448fdd4c56" }, "downloads": -1, "filename": "resticprofile-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "23d7a716d0a0f9221a46360cb6023756", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30378, "upload_time": "2019-06-25T16:45:56", "url": "https://files.pythonhosted.org/packages/42/e9/96d992656a9defd0555cd6acba1350f97471a4a8ad8b45c62fcf232e2a75/resticprofile-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e0160a986dff418a814ef19f39394c6", "sha256": "92b78b3e86aa495dc931e4f9e6e74e5a1cdf192a033b831b43f9306164992d5a" }, "downloads": -1, "filename": "resticprofile-0.4.0.tar.gz", "has_sig": false, "md5_digest": "3e0160a986dff418a814ef19f39394c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16541, "upload_time": "2019-06-25T16:45:57", "url": "https://files.pythonhosted.org/packages/e5/6d/7383cf405adfae804dffa70ce946a39cdacb7851ee29128feca0f9391985/resticprofile-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7b52ae1b8bb3721cea6b292c09d9d86d", "sha256": "e42993d3ba104174bf7a606a9a1988dcb963faf78aeb5723b0202e82cb4f845b" }, "downloads": -1, "filename": "resticprofile-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7b52ae1b8bb3721cea6b292c09d9d86d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31078, "upload_time": "2019-06-26T11:50:48", "url": "https://files.pythonhosted.org/packages/62/d1/b67ccd9cac04ef99db09d6182d5d7be994ce558d0435b75c9e657fffcecf/resticprofile-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e9ed22e14ce25434653f60860740069", "sha256": "b9feb216532b376b8628fbe976b5d348d2b15e8b6714128e1dd25b425c0d89dc" }, "downloads": -1, "filename": "resticprofile-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7e9ed22e14ce25434653f60860740069", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16981, "upload_time": "2019-06-26T11:50:49", "url": "https://files.pythonhosted.org/packages/68/0b/96057f9536b2bd08176456569a65c1001b87cf2f8144f10266e9b800440c/resticprofile-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "268614e4cfbe2873d4d1b2c98d30dd24", "sha256": "a4d57ef459effbe2e0a8de8b029b4f2ca7e90a8824582a39b9178e45b526a274" }, "downloads": -1, "filename": "resticprofile-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "268614e4cfbe2873d4d1b2c98d30dd24", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31562, "upload_time": "2019-06-26T18:20:48", "url": "https://files.pythonhosted.org/packages/bc/3f/da679ee2fbe95c8bc750efca8e33f42913e25c10adcbf0901331020efdb3/resticprofile-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbb35453dd79190945109d3947b79ca4", "sha256": "107b119a5d6849c6b927d908e97424b53624a5a5f9a68d5fb3fbe3e862564b42" }, "downloads": -1, "filename": "resticprofile-0.5.0.tar.gz", "has_sig": false, "md5_digest": "dbb35453dd79190945109d3947b79ca4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18008, "upload_time": "2019-06-26T18:20:50", "url": "https://files.pythonhosted.org/packages/41/51/3214ef07e14eb80e2f01f40cf6fb4400ff74e4c586bd0e05580642c902d9/resticprofile-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "b7b77b645ed19060325fe5afea920a9c", "sha256": "00c9f53a82fd71842b91194ce0dc1e7985626d92f17812f8bf0b60c464032157" }, "downloads": -1, "filename": "resticprofile-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b7b77b645ed19060325fe5afea920a9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 33027, "upload_time": "2019-08-12T15:24:03", "url": "https://files.pythonhosted.org/packages/bc/38/2033a5c0058025d780cb9d76a88c48a467d124fa16da9ea99e68911f77fc/resticprofile-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56b228b15f977439d69c59c42013aeb6", "sha256": "468def0899712013cde72f258647b94f64cad159ef5c95c79275c3232ff8fbcf" }, "downloads": -1, "filename": "resticprofile-0.5.1.tar.gz", "has_sig": false, "md5_digest": "56b228b15f977439d69c59c42013aeb6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20957, "upload_time": "2019-08-12T15:24:05", "url": "https://files.pythonhosted.org/packages/1c/a6/c8fa1fa3d637f515d5e20a927f4bd454f243dda1d476967488cb2eca2805/resticprofile-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "26444b6daf490ea91cc8350e5ffe6bd5", "sha256": "fa20e89fbd5231345745d61683468a45fd6029598078f87586c89676bab61bf3" }, "downloads": -1, "filename": "resticprofile-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26444b6daf490ea91cc8350e5ffe6bd5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 33052, "upload_time": "2019-09-26T18:02:43", "url": "https://files.pythonhosted.org/packages/c6/3a/398435c83b48f4ca2ad24d9db0d31fc74a3325846e06f1f812ff77fe3aed/resticprofile-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1874c6e73346cb3ed31c251fef299cf", "sha256": "ba819b0f2b4353e659b53f0f6d8b658d625d5590b934e5364073482aff7b6da6" }, "downloads": -1, "filename": "resticprofile-0.5.2.tar.gz", "has_sig": false, "md5_digest": "d1874c6e73346cb3ed31c251fef299cf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20990, "upload_time": "2019-09-26T18:02:44", "url": "https://files.pythonhosted.org/packages/a7/87/c9fbb66434a5e7e70e233087c6d6e25aff48c57188a9bd40ee3e549f7ce5/resticprofile-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26444b6daf490ea91cc8350e5ffe6bd5", "sha256": "fa20e89fbd5231345745d61683468a45fd6029598078f87586c89676bab61bf3" }, "downloads": -1, "filename": "resticprofile-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26444b6daf490ea91cc8350e5ffe6bd5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 33052, "upload_time": "2019-09-26T18:02:43", "url": "https://files.pythonhosted.org/packages/c6/3a/398435c83b48f4ca2ad24d9db0d31fc74a3325846e06f1f812ff77fe3aed/resticprofile-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1874c6e73346cb3ed31c251fef299cf", "sha256": "ba819b0f2b4353e659b53f0f6d8b658d625d5590b934e5364073482aff7b6da6" }, "downloads": -1, "filename": "resticprofile-0.5.2.tar.gz", "has_sig": false, "md5_digest": "d1874c6e73346cb3ed31c251fef299cf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20990, "upload_time": "2019-09-26T18:02:44", "url": "https://files.pythonhosted.org/packages/a7/87/c9fbb66434a5e7e70e233087c6d6e25aff48c57188a9bd40ee3e549f7ce5/resticprofile-0.5.2.tar.gz" } ] }