dryad2dataverse 0.6.2__tar.gz → 0.7.4__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.
- {dryad2dataverse-0.6.2/src/dryad2dataverse.egg-info → dryad2dataverse-0.7.4}/PKG-INFO +9 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/api_reference.md +274 -34
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/requirements.txt +2 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/__init__.py +4 -2
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/monitor.py +4 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/scripts/dryadd.py +24 -3
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/serializer.py +9 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/transfer.py +101 -21
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4/src/dryad2dataverse.egg-info}/PKG-INFO +9 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/requires.txt +2 -1
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/.gitignore +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/README.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/_config.yml +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/changelog.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/compiling.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/credits.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/css/extra.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/anomalies.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/anomalies.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.css.map +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.min.css.map +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/bootstrap.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/bootstrap.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/npm.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/fastclick/fastclick.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/fastclick/fastclick.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQueryUI/jquery-ui.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/anchor-js/anchor.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/codemirror.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/codemirror.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/sql.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net/jquery.dataTables.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/css/dataTables.bootstrap.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/css/dataTables.bootstrap.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/js/dataTables.bootstrap.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/js/dataTables.bootstrap.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.colVis.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.colVis.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.flash.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.flash.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.html5.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.html5.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.print.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.print.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/dataTables.buttons.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/dataTables.buttons.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.css.map +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/FontAwesome.otf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/html5shiv/html5shiv.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/css/ionicons.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/css/ionicons.min.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/jquery/jquery.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/js-xlsx/xlsx.full.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/pdfmake/pdfmake.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/pdfmake/vfs_fonts.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/respond/respond.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/salvattore/salvattore.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/salvattore/salvattore.min.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/column.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/columns.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/constraint.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/constraints.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/deletionOrder.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/orphans/orphans.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/orphans/orphans.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.compact.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.compact.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.large.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.large.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.2degrees.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.2degrees.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadStudy.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadStudy.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.2degrees.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.2degrees.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.2degrees.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.2degrees.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.2degrees.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.2degrees.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/lastcheck.1degree.dot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/lastcheck.1degree.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/dryad_dataverse_monitor.sqlite3.%.xml +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/favicon.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/foreignKey.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/foreignKeys.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/primaryKey.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/primaryKeys.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/index.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/info-html.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/insertionOrder.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/main.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/orphans.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/relationships.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/relationships.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines/routine.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/schemaSpy.css +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/schemaSpy.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dryadFiles.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dryadStudy.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dvFiles.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dvStudy.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/failed_uploads.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/lastcheck.html +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/table.js +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/faq.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/images/dryad2dataverseLogo.png +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/images/dryad2dataverseLogo.svg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/index.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/installation.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/other_utils.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/pydoc-markdown.yml +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/reference.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/script.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/docs/track.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/license.md +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/mkdocs.yml +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/pyproject.toml +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/setup.cfg +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/setup.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/constants.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/exceptions.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse/handlers.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/SOURCES.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/dependency_links.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/entry_points.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/top_level.txt +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/tests/__init__.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/tests/badURL.json +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/tests/tests_monitor.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/tests/tests_serializer.py +0 -0
- {dryad2dataverse-0.6.2 → dryad2dataverse-0.7.4}/tests/tests_transfer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dryad2dataverse
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.4
|
|
4
4
|
Summary: Utility for copying and syncing data from a Dryad data repository to a Dataverse repository
|
|
5
5
|
Author-email: Paul Lesack <paul.lesack@ubc.ca>
|
|
6
6
|
Project-URL: Homepage, https://ubc-library-rc.github.io/dryad2dataverse
|
|
@@ -17,6 +17,14 @@ Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
|
|
|
17
17
|
Classifier: Topic :: Utilities
|
|
18
18
|
Requires-Python: >=3.6
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
|
+
Requires-Dist: certifi>=2022.12.7
|
|
21
|
+
Requires-Dist: charset-normalizer>=2.0.4
|
|
22
|
+
Requires-Dist: chardet>=3.0.4
|
|
23
|
+
Requires-Dist: idna>=2.10.0
|
|
24
|
+
Requires-Dist: pycryptodome>=3.20.0
|
|
25
|
+
Requires-Dist: requests>=2.26.0
|
|
26
|
+
Requires-Dist: requests-toolbelt>=0.9.1
|
|
27
|
+
Requires-Dist: urllib3>=1.26.6
|
|
20
28
|
|
|
21
29
|
# dryad2dataverse
|
|
22
30
|
|
|
@@ -6,8 +6,6 @@ nav_order: 15
|
|
|
6
6
|
|
|
7
7
|
# Complete API reference
|
|
8
8
|
|
|
9
|
-
<a name="dryad2dataverse"></a>
|
|
10
|
-
|
|
11
9
|
<a id="dryad2dataverse"></a>
|
|
12
10
|
|
|
13
11
|
## dryad2dataverse
|
|
@@ -279,14 +277,14 @@ to discover Dataverse file ids for deletion.
|
|
|
279
277
|
filelist : list
|
|
280
278
|
— List of Dryad file tuples: eg:
|
|
281
279
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
280
|
+
```
|
|
281
|
+
[('https://datadryad.org/api/v2/files/385819/download',
|
|
282
|
+
'GCB_ACG_Mortality_2020.zip',
|
|
283
|
+
'application/x-zip-compressed', 23787587),
|
|
284
|
+
('https://datadryad.org/api/v2/files/385820/download',
|
|
285
|
+
'Readme_ACG_Mortality.txt',
|
|
286
|
+
'text/plain', 1350)]
|
|
287
|
+
```
|
|
290
288
|
----------------------------------------
|
|
291
289
|
|
|
292
290
|
<a id="dryad2dataverse.monitor.Monitor.get_json_dvfids"></a>
|
|
@@ -368,6 +366,12 @@ required to transfer data from Dryad to Dataverse.
|
|
|
368
366
|
"Constants" may be a bit strong, but the only constant is the
|
|
369
367
|
presence of change.
|
|
370
368
|
|
|
369
|
+
<a id="dryad2dataverse.constants.MAX_UPLOAD"></a>
|
|
370
|
+
|
|
371
|
+
##### MAX\_UPLOAD
|
|
372
|
+
|
|
373
|
+
Max 3GB upload
|
|
374
|
+
|
|
371
375
|
<a id="dryad2dataverse.handlers"></a>
|
|
372
376
|
|
|
373
377
|
## dryad2dataverse.handlers
|
|
@@ -625,37 +629,44 @@ Supplying a `targetDv` kwarg creates a new study and supplying a
|
|
|
625
629
|
##### download\_file
|
|
626
630
|
|
|
627
631
|
```python
|
|
628
|
-
def download_file(url
|
|
632
|
+
def download_file(url=None,
|
|
633
|
+
filename=None,
|
|
634
|
+
tmp=None,
|
|
635
|
+
size=None,
|
|
636
|
+
chk=None,
|
|
637
|
+
timeout=45,
|
|
638
|
+
**kwargs)
|
|
629
639
|
```
|
|
630
640
|
|
|
631
641
|
Downloads a file via requests streaming and saves to constants.TMP.
|
|
632
|
-
returns
|
|
642
|
+
returns checksum on success and an exception on failure.
|
|
633
643
|
|
|
634
644
|
----------------------------------------
|
|
645
|
+
Required keyword arguments:
|
|
635
646
|
|
|
636
|
-
|
|
647
|
+
url : str
|
|
648
|
+
— URL of download.
|
|
637
649
|
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
----------------------------------------
|
|
650
|
+
filename : str
|
|
651
|
+
— Output file name.
|
|
652
|
+
|
|
653
|
+
timeout : int
|
|
654
|
+
— Requests timeout.
|
|
655
|
+
|
|
656
|
+
tmp : str
|
|
657
|
+
— Temporary directory for downloads.
|
|
658
|
+
Defaults to dryad2dataverse.constants.TMP.
|
|
659
|
+
|
|
660
|
+
size : int
|
|
661
|
+
— Reported file size in bytes.
|
|
662
|
+
Defaults to dryad2dataverse.constants.MAX_UPLOAD.
|
|
663
|
+
|
|
664
|
+
digest_type: str
|
|
665
|
+
— checksum type (ie, md5, sha-256, etc)
|
|
666
|
+
|
|
667
|
+
chk : str
|
|
668
|
+
— checksum of file (if available and known).
|
|
669
|
+
----------------------------------------
|
|
659
670
|
|
|
660
671
|
<a id="dryad2dataverse.transfer.Transfer.download_files"></a>
|
|
661
672
|
|
|
@@ -935,6 +946,235 @@ a Dataverse installation.
|
|
|
935
946
|
— API key for Dataverse. Defaults to dryad2dataverse.constants.APIKEY.
|
|
936
947
|
----------------------------------------
|
|
937
948
|
|
|
949
|
+
<a id="dryad2dataverse.scripts.dryadd"></a>
|
|
950
|
+
|
|
951
|
+
## dryad2dataverse.scripts.dryadd
|
|
952
|
+
|
|
953
|
+
Dryad daemon for monitoring and automatically uploading studies associated with a particular ROR
|
|
954
|
+
|
|
955
|
+
Requires Python 3.6+ and requests library
|
|
956
|
+
|
|
957
|
+
<a id="dryad2dataverse.scripts.dryadd.new_content"></a>
|
|
958
|
+
|
|
959
|
+
##### new\_content
|
|
960
|
+
|
|
961
|
+
```python
|
|
962
|
+
def new_content(serial)
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
Creates content for new study upload message (potentially redundant
|
|
966
|
+
with Dataverse emailer).
|
|
967
|
+
serial : dryad2dataverse.serializer.Serializer instance
|
|
968
|
+
|
|
969
|
+
<a id="dryad2dataverse.scripts.dryadd.changed_content"></a>
|
|
970
|
+
|
|
971
|
+
##### changed\_content
|
|
972
|
+
|
|
973
|
+
```python
|
|
974
|
+
def changed_content(serial, monitor)
|
|
975
|
+
```
|
|
976
|
+
|
|
977
|
+
Creates content for file update message.
|
|
978
|
+
serial : dryad2dataverse.serializer.Serializer instance
|
|
979
|
+
monitor : dryad2dataverse.monitor.Monitor instance
|
|
980
|
+
|
|
981
|
+
<a id="dryad2dataverse.scripts.dryadd.notify"></a>
|
|
982
|
+
|
|
983
|
+
##### notify
|
|
984
|
+
|
|
985
|
+
```python
|
|
986
|
+
def notify(msgtxt, width=100, **kwargs)
|
|
987
|
+
```
|
|
988
|
+
|
|
989
|
+
Basic email change notifier. Will sent email outlining metadata changes
|
|
990
|
+
to recipient. Uses SSL.
|
|
991
|
+
|
|
992
|
+
Has only really been tested with Gmail (although it should work with anything,
|
|
993
|
+
and Gmail requires 'Allow less secure apps' or whatever they call it.
|
|
994
|
+
If you are having troubles with GMail:
|
|
995
|
+
|
|
996
|
+
1. Enable less secure access
|
|
997
|
+
|
|
998
|
+
2. Disable the CAPTCHA:
|
|
999
|
+
https://accounts.google.com/DisplayUnlockCaptcha
|
|
1000
|
+
|
|
1001
|
+
Note: Google will automatically revert settings after some arbitrary period
|
|
1002
|
+
of time. You have been warned.
|
|
1003
|
+
|
|
1004
|
+
If your application worked before but suddenly it crashes with authenication
|
|
1005
|
+
errors, this is why.
|
|
1006
|
+
|
|
1007
|
+
msgtext : tuple
|
|
1008
|
+
Tuple containing strings of ('subject', 'message content')
|
|
1009
|
+
width : int
|
|
1010
|
+
Maximum line length. Max 1000
|
|
1011
|
+
|
|
1012
|
+
From the argument parser these keys and values are required:
|
|
1013
|
+
email : str
|
|
1014
|
+
From address for account
|
|
1015
|
+
user : str
|
|
1016
|
+
User name for email account
|
|
1017
|
+
pwd : str
|
|
1018
|
+
Password for email account
|
|
1019
|
+
mailserv : str
|
|
1020
|
+
SMTP server for sending mail
|
|
1021
|
+
port : int
|
|
1022
|
+
Mailserver port. Default 465
|
|
1023
|
+
recipients : list
|
|
1024
|
+
List of email addresses of recipients
|
|
1025
|
+
|
|
1026
|
+
<a id="dryad2dataverse.scripts.dryadd.get_records"></a>
|
|
1027
|
+
|
|
1028
|
+
##### get\_records
|
|
1029
|
+
|
|
1030
|
+
```python
|
|
1031
|
+
def get_records(ror: 'str', mod_date=None, verbosity=True, timeout=100)
|
|
1032
|
+
```
|
|
1033
|
+
|
|
1034
|
+
returns a tuple of ((doi, metadata), ...). Dryad searches return complete
|
|
1035
|
+
study metadata from the search, surprisingly.
|
|
1036
|
+
|
|
1037
|
+
ror : str
|
|
1038
|
+
ROR string including http. To find your ROR, see
|
|
1039
|
+
https://ror.org/
|
|
1040
|
+
|
|
1041
|
+
mod_date : str
|
|
1042
|
+
UTC datetime string in the format suitable for the Dryad API.
|
|
1043
|
+
eg. 2021-01-21T21:42:40Z
|
|
1044
|
+
or .strftime('%Y-%m-%dT%H:%M:%SZ')
|
|
1045
|
+
if no mod_date is passed, all studies will be retrieved
|
|
1046
|
+
|
|
1047
|
+
verbosity : bool
|
|
1048
|
+
Output some data to stdout
|
|
1049
|
+
|
|
1050
|
+
timeout : int
|
|
1051
|
+
request timeout in seconds
|
|
1052
|
+
|
|
1053
|
+
<a id="dryad2dataverse.scripts.dryadd.argp"></a>
|
|
1054
|
+
|
|
1055
|
+
##### argp
|
|
1056
|
+
|
|
1057
|
+
```python
|
|
1058
|
+
def argp()
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
Argument parser
|
|
1062
|
+
|
|
1063
|
+
<a id="dryad2dataverse.scripts.dryadd.set_constants"></a>
|
|
1064
|
+
|
|
1065
|
+
##### set\_constants
|
|
1066
|
+
|
|
1067
|
+
```python
|
|
1068
|
+
def set_constants(args)
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
Set the appropriate dryad2dataverse constants
|
|
1072
|
+
|
|
1073
|
+
<a id="dryad2dataverse.scripts.dryadd.email_log"></a>
|
|
1074
|
+
|
|
1075
|
+
##### email\_log
|
|
1076
|
+
|
|
1077
|
+
```python
|
|
1078
|
+
def email_log(mailhost,
|
|
1079
|
+
fromaddr,
|
|
1080
|
+
toaddrs,
|
|
1081
|
+
credentials,
|
|
1082
|
+
port=465,
|
|
1083
|
+
secure=(),
|
|
1084
|
+
level=logging.WARNING,
|
|
1085
|
+
timeout=100)
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
Emails log error messages to recipient
|
|
1089
|
+
|
|
1090
|
+
mailhost : str
|
|
1091
|
+
Address of mail server. Eg. smtp.gmail.com
|
|
1092
|
+
fromaddr : str
|
|
1093
|
+
"From" address for email
|
|
1094
|
+
toaddrs :
|
|
1095
|
+
Recipient of email
|
|
1096
|
+
credentials : tuple
|
|
1097
|
+
(Username, password) tuple
|
|
1098
|
+
port : Mailserver port. Default 465
|
|
1099
|
+
secure : tuple
|
|
1100
|
+
The tuple should be either an empty tuple, or a single-value tuple with
|
|
1101
|
+
the name of a keyfile, or a 2-value tuple with the names of the keyfile
|
|
1102
|
+
and certificate file.
|
|
1103
|
+
See https://docs.python.org/3/library/logging.handlers.html
|
|
1104
|
+
level : int
|
|
1105
|
+
logging level. Default logging.WARNING
|
|
1106
|
+
|
|
1107
|
+
<a id="dryad2dataverse.scripts.dryadd.rotating_log"></a>
|
|
1108
|
+
|
|
1109
|
+
##### rotating\_log
|
|
1110
|
+
|
|
1111
|
+
```python
|
|
1112
|
+
def rotating_log(path, level)
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
Create log of transactions
|
|
1116
|
+
|
|
1117
|
+
path : str
|
|
1118
|
+
Complete path to log
|
|
1119
|
+
level : logging.LOGLEVEL
|
|
1120
|
+
logging level (eg, logging.DEBUG)
|
|
1121
|
+
|
|
1122
|
+
<a id="dryad2dataverse.scripts.dryadd.checkwarn"></a>
|
|
1123
|
+
|
|
1124
|
+
##### checkwarn
|
|
1125
|
+
|
|
1126
|
+
```python
|
|
1127
|
+
def checkwarn(val: int, **kwargs) -> None
|
|
1128
|
+
```
|
|
1129
|
+
|
|
1130
|
+
Halt program execution before processing if threshold value of modified
|
|
1131
|
+
Dryad studies exceeded. Useful for checking if the Dryad API has changed
|
|
1132
|
+
and caused havoc.
|
|
1133
|
+
|
|
1134
|
+
val: int
|
|
1135
|
+
Number of modified or new studies
|
|
1136
|
+
kwargs: dict
|
|
1137
|
+
Email notification information.
|
|
1138
|
+
{'user': user email,
|
|
1139
|
+
'recipients':[list of recipients],
|
|
1140
|
+
'pwd' ; email server password],
|
|
1141
|
+
'mailserv' : smtp mail server,
|
|
1142
|
+
'warn': Threshold for number of warnings (int)}
|
|
1143
|
+
see dryadd.notify for full details of parameters.
|
|
1144
|
+
|
|
1145
|
+
Include log info:
|
|
1146
|
+
{loggers: [logging.logger, logging.logger,...]}
|
|
1147
|
+
Skip check
|
|
1148
|
+
{'warn_too_many': bool}
|
|
1149
|
+
|
|
1150
|
+
<a id="dryad2dataverse.scripts.dryadd.verbo"></a>
|
|
1151
|
+
|
|
1152
|
+
##### verbo
|
|
1153
|
+
|
|
1154
|
+
```python
|
|
1155
|
+
def verbo(verbosity: bool, **kwargs) -> None
|
|
1156
|
+
```
|
|
1157
|
+
|
|
1158
|
+
verbosity: bool
|
|
1159
|
+
if True, print dict
|
|
1160
|
+
kwargs : dict
|
|
1161
|
+
Dictionary to print out
|
|
1162
|
+
|
|
1163
|
+
<a id="dryad2dataverse.scripts.dryadd.main"></a>
|
|
1164
|
+
|
|
1165
|
+
##### main
|
|
1166
|
+
|
|
1167
|
+
```python
|
|
1168
|
+
def main(log='/var/log/dryadd.log', level=logging.WARNING)
|
|
1169
|
+
```
|
|
1170
|
+
|
|
1171
|
+
Main Dryad transfer daemon
|
|
1172
|
+
|
|
1173
|
+
log : str
|
|
1174
|
+
path to logfile
|
|
1175
|
+
level : int
|
|
1176
|
+
log level, usually one of logging.LOGLEVEL (ie, logging.warning)
|
|
1177
|
+
|
|
938
1178
|
<a id="dryad2dataverse.serializer"></a>
|
|
939
1179
|
|
|
940
1180
|
## dryad2dataverse.serializer
|
|
@@ -22,7 +22,9 @@ Modules included:
|
|
|
22
22
|
|
|
23
23
|
dryad2dataverse.exceptions : Custom exceptions.
|
|
24
24
|
'''
|
|
25
|
+
import sys
|
|
25
26
|
|
|
26
|
-
VERSION = (0,
|
|
27
|
-
|
|
27
|
+
VERSION = (0, 7, 4)
|
|
28
28
|
__version__ = '.'.join([str(x) for x in VERSION])
|
|
29
|
+
USERAGENT = (f'dryad2dataverse/v{__version__} ({sys.platform.capitalize()}); '
|
|
30
|
+
f'Python {sys.version[:sys.version.find("(")-1]}')
|
|
@@ -325,7 +325,10 @@ class Monitor():
|
|
|
325
325
|
# because of code duplication below.
|
|
326
326
|
for f in oldFiles:
|
|
327
327
|
#Download links are not persistent. Be warned
|
|
328
|
-
|
|
328
|
+
try:
|
|
329
|
+
downLink = f['_links']['stash:file-download']['href']
|
|
330
|
+
except KeyError:
|
|
331
|
+
downLink = f['_links']['stash:download']['href']
|
|
329
332
|
downLink = f'{constants.DRYURL}{downLink}'
|
|
330
333
|
name = f['path']
|
|
331
334
|
mimeType = f['mimeType']
|
|
@@ -27,7 +27,7 @@ import dryad2dataverse.serializer
|
|
|
27
27
|
import dryad2dataverse.transfer
|
|
28
28
|
from dryad2dataverse.handlers import SSLSMTPHandler
|
|
29
29
|
|
|
30
|
-
VERSION = (0, 5,
|
|
30
|
+
VERSION = (0, 5, 4)
|
|
31
31
|
__version__ = '.'.join([str(x) for x in VERSION])
|
|
32
32
|
|
|
33
33
|
DRY = 'https://datadryad.org/api/v2'
|
|
@@ -485,6 +485,9 @@ def checkwarn(val:int, **kwargs) -> None:
|
|
|
485
485
|
{'warn_too_many': bool}
|
|
486
486
|
|
|
487
487
|
'''
|
|
488
|
+
print(kwargs)
|
|
489
|
+
#print(vars(kwargs))
|
|
490
|
+
return
|
|
488
491
|
if not kwargs.get('warn_too_many'):
|
|
489
492
|
return
|
|
490
493
|
if val >= kwargs.get('warn',0):
|
|
@@ -495,7 +498,7 @@ def checkwarn(val:int, **kwargs) -> None:
|
|
|
495
498
|
for logme in kwargs.get('loggers'):
|
|
496
499
|
logme.warning(mess)
|
|
497
500
|
notify(msgtxt=(subject, mess),
|
|
498
|
-
**
|
|
501
|
+
**kwargs)
|
|
499
502
|
sys.exit()
|
|
500
503
|
|
|
501
504
|
def verbo(verbosity:bool, **kwargs)->None:
|
|
@@ -671,5 +674,23 @@ def main(log='/var/log/dryadd.log', level=logging.WARNING):
|
|
|
671
674
|
print(f'Error: {err}. Exiting. For details see log at {args.log}.')
|
|
672
675
|
sys.exit()
|
|
673
676
|
|
|
677
|
+
def main2(log='/var/log/dryadd.log', level=logging.WARNING):
|
|
678
|
+
'''
|
|
679
|
+
Main Dryad transfer daemon
|
|
680
|
+
|
|
681
|
+
log : str
|
|
682
|
+
path to logfile
|
|
683
|
+
level : int
|
|
684
|
+
log level, usually one of logging.LOGLEVEL (ie, logging.warning)
|
|
685
|
+
'''
|
|
686
|
+
#pylint: disable=too-many-branches
|
|
687
|
+
#pylint: disable=too-many-statements
|
|
688
|
+
#pylint: disable=too-many-locals
|
|
689
|
+
parser = argp()
|
|
690
|
+
args = parser.parse_args()
|
|
691
|
+
print(args)
|
|
692
|
+
checkwarn(val=26,
|
|
693
|
+
loggers=[],
|
|
694
|
+
**vars(args))
|
|
674
695
|
if __name__ == '__main__':
|
|
675
|
-
|
|
696
|
+
main2()
|
|
@@ -11,11 +11,13 @@ import requests
|
|
|
11
11
|
from requests.adapters import HTTPAdapter
|
|
12
12
|
|
|
13
13
|
from dryad2dataverse import constants
|
|
14
|
+
from dryad2dataverse import USERAGENT
|
|
14
15
|
|
|
15
16
|
LOGGER = logging.getLogger(__name__)
|
|
16
17
|
#Connection monitoring as per
|
|
17
18
|
#https://stackoverflow.com/questions/16337511/log-all-requests-from-the-python-requests-module
|
|
18
19
|
URL_LOGGER = logging.getLogger('urllib3')
|
|
20
|
+
USER_AGENT = {'User-agent': USERAGENT}
|
|
19
21
|
|
|
20
22
|
class Serializer():
|
|
21
23
|
'''
|
|
@@ -72,6 +74,7 @@ class Serializer():
|
|
|
72
74
|
try:
|
|
73
75
|
headers = {'accept':'application/json',
|
|
74
76
|
'Content-Type':'application/json'}
|
|
77
|
+
headers.update(USER_AGENT)
|
|
75
78
|
doiClean = urllib.parse.quote(self.doi, safe='')
|
|
76
79
|
resp = self.session.get(f'{url}/api/v2/datasets/{doiClean}',
|
|
77
80
|
headers=headers, timeout=timeout)
|
|
@@ -164,6 +167,7 @@ class Serializer():
|
|
|
164
167
|
self._fileJson = []
|
|
165
168
|
headers = {'accept':'application/json',
|
|
166
169
|
'Content-Type':'application/json'}
|
|
170
|
+
headers.update(USER_AGENT)
|
|
167
171
|
fileList = self.session.get(f'{constants.DRYURL}/api/v2/versions/{self.id}/files',
|
|
168
172
|
headers=headers,
|
|
169
173
|
timeout=timeout)
|
|
@@ -202,7 +206,11 @@ class Serializer():
|
|
|
202
206
|
files = page['_embedded'].get('stash:files')
|
|
203
207
|
if files:
|
|
204
208
|
for f in files:
|
|
205
|
-
|
|
209
|
+
#This broke with this commit:
|
|
210
|
+
# https://github.com/datadryad/dryad-app/commit/b8a333ba34b14e55cbc1d7ed5aa4451e0f41db66
|
|
211
|
+
|
|
212
|
+
#downLink = f['_links']['stash:file-download']['href']
|
|
213
|
+
downLink = f['_links']['stash:download']['href']
|
|
206
214
|
downLink = f'{constants.DRYURL}{downLink}'
|
|
207
215
|
name = f['path']
|
|
208
216
|
mimeType = f['mimeType']
|