dryad2dataverse 0.7.1__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.
Files changed (208) hide show
  1. {dryad2dataverse-0.7.1/src/dryad2dataverse.egg-info → dryad2dataverse-0.7.4}/PKG-INFO +2 -2
  2. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/requirements.txt +1 -1
  3. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/__init__.py +4 -2
  4. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/monitor.py +4 -1
  5. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/scripts/dryadd.py +24 -3
  6. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/serializer.py +4 -0
  7. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/transfer.py +38 -6
  8. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4/src/dryad2dataverse.egg-info}/PKG-INFO +2 -2
  9. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/requires.txt +1 -1
  10. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/.gitignore +0 -0
  11. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/README.md +0 -0
  12. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/_config.yml +0 -0
  13. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/api_reference.md +0 -0
  14. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/changelog.md +0 -0
  15. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/compiling.md +0 -0
  16. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/credits.md +0 -0
  17. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/css/extra.css +0 -0
  18. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/anomalies.html +0 -0
  19. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/anomalies.js +0 -0
  20. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.css +0 -0
  21. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map +0 -0
  22. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css +0 -0
  23. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map +0 -0
  24. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.css +0 -0
  25. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.css.map +0 -0
  26. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.min.css +0 -0
  27. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/css/bootstrap.min.css.map +0 -0
  28. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  29. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg +0 -0
  30. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  31. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  32. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  33. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/bootstrap.js +0 -0
  34. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/bootstrap.min.js +0 -0
  35. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/bootstrap/js/npm.js +0 -0
  36. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/fastclick/fastclick.js +0 -0
  37. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/fastclick/fastclick.min.js +0 -0
  38. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js +0 -0
  39. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQueryUI/jquery-ui.js +0 -0
  40. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js +0 -0
  41. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js +0 -0
  42. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js +0 -0
  43. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/anchor-js/anchor.min.js +0 -0
  44. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/codemirror.css +0 -0
  45. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/codemirror.js +0 -0
  46. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/codemirror/sql.js +0 -0
  47. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net/jquery.dataTables.min.js +0 -0
  48. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/css/dataTables.bootstrap.css +0 -0
  49. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/css/dataTables.bootstrap.min.css +0 -0
  50. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/js/dataTables.bootstrap.js +0 -0
  51. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-bs/js/dataTables.bootstrap.min.js +0 -0
  52. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.colVis.js +0 -0
  53. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.colVis.min.js +0 -0
  54. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.flash.js +0 -0
  55. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.flash.min.js +0 -0
  56. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.html5.js +0 -0
  57. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.html5.min.js +0 -0
  58. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.print.js +0 -0
  59. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/buttons.print.min.js +0 -0
  60. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/dataTables.buttons.js +0 -0
  61. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons/dataTables.buttons.min.js +0 -0
  62. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css +0 -0
  63. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css +0 -0
  64. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js +0 -0
  65. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js +0 -0
  66. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.css +0 -0
  67. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.css.map +0 -0
  68. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/css/font-awesome.min.css +0 -0
  69. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/FontAwesome.otf +0 -0
  70. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  71. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.svg +0 -0
  72. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  73. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  74. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  75. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/html5shiv/html5shiv.min.js +0 -0
  76. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/css/ionicons.css +0 -0
  77. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/css/ionicons.min.css +0 -0
  78. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.eot +0 -0
  79. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.svg +0 -0
  80. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.ttf +0 -0
  81. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/ionicons/fonts/ionicons.woff +0 -0
  82. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/jquery/jquery.js +0 -0
  83. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/js-xlsx/xlsx.full.min.js +0 -0
  84. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/pdfmake/pdfmake.min.js +0 -0
  85. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/pdfmake/vfs_fonts.js +0 -0
  86. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/respond/respond.min.js +0 -0
  87. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/salvattore/salvattore.css +0 -0
  88. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/bower/salvattore/salvattore.min.js +0 -0
  89. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/column.js +0 -0
  90. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/columns.html +0 -0
  91. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/constraint.js +0 -0
  92. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/constraints.html +0 -0
  93. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/deletionOrder.txt +0 -0
  94. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/orphans/orphans.dot +0 -0
  95. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/orphans/orphans.png +0 -0
  96. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.compact.dot +0 -0
  97. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.compact.png +0 -0
  98. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.large.dot +0 -0
  99. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/summary/relationships.real.large.png +0 -0
  100. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.1degree.dot +0 -0
  101. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.1degree.png +0 -0
  102. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.2degrees.dot +0 -0
  103. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadFiles.2degrees.png +0 -0
  104. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadStudy.1degree.dot +0 -0
  105. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dryadStudy.1degree.png +0 -0
  106. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.1degree.dot +0 -0
  107. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.1degree.png +0 -0
  108. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.2degrees.dot +0 -0
  109. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvFiles.2degrees.png +0 -0
  110. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.1degree.dot +0 -0
  111. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.1degree.png +0 -0
  112. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.2degrees.dot +0 -0
  113. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/dvStudy.2degrees.png +0 -0
  114. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.1degree.dot +0 -0
  115. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.1degree.png +0 -0
  116. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.2degrees.dot +0 -0
  117. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/failed_uploads.2degrees.png +0 -0
  118. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/lastcheck.1degree.dot +0 -0
  119. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/diagrams/tables/lastcheck.1degree.png +0 -0
  120. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/dryad_dataverse_monitor.sqlite3.%.xml +0 -0
  121. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/favicon.png +0 -0
  122. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.eot +0 -0
  123. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.svg +0 -0
  124. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.ttf +0 -0
  125. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.woff +0 -0
  126. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower-v8-latin-regular.woff2 +0 -0
  127. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/indieflower/indie-flower.css +0 -0
  128. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot +0 -0
  129. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg +0 -0
  130. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf +0 -0
  131. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff +0 -0
  132. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 +0 -0
  133. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot +0 -0
  134. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg +0 -0
  135. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf +0 -0
  136. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff +0 -0
  137. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 +0 -0
  138. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot +0 -0
  139. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg +0 -0
  140. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf +0 -0
  141. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff +0 -0
  142. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 +0 -0
  143. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot +0 -0
  144. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg +0 -0
  145. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf +0 -0
  146. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff +0 -0
  147. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 +0 -0
  148. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot +0 -0
  149. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg +0 -0
  150. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf +0 -0
  151. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff +0 -0
  152. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 +0 -0
  153. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot +0 -0
  154. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg +0 -0
  155. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf +0 -0
  156. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff +0 -0
  157. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 +0 -0
  158. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/fonts/source-sans-pro/source-sans-pro.css +0 -0
  159. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/foreignKey.png +0 -0
  160. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/foreignKeys.png +0 -0
  161. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/primaryKey.png +0 -0
  162. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/images/primaryKeys.png +0 -0
  163. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/index.html +0 -0
  164. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/info-html.txt +0 -0
  165. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/insertionOrder.txt +0 -0
  166. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/main.js +0 -0
  167. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/orphans.html +0 -0
  168. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/relationships.html +0 -0
  169. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/relationships.js +0 -0
  170. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines/routine.js +0 -0
  171. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines.html +0 -0
  172. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/routines.js +0 -0
  173. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/schemaSpy.css +0 -0
  174. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/schemaSpy.js +0 -0
  175. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dryadFiles.html +0 -0
  176. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dryadStudy.html +0 -0
  177. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dvFiles.html +0 -0
  178. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/dvStudy.html +0 -0
  179. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/failed_uploads.html +0 -0
  180. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/lastcheck.html +0 -0
  181. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/dbase_structure/tables/table.js +0 -0
  182. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/faq.md +0 -0
  183. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/images/dryad2dataverseLogo.png +0 -0
  184. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/images/dryad2dataverseLogo.svg +0 -0
  185. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/index.md +0 -0
  186. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/installation.md +0 -0
  187. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/other_utils.md +0 -0
  188. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/pydoc-markdown.yml +0 -0
  189. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/reference.md +0 -0
  190. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/script.md +0 -0
  191. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/docs/track.md +0 -0
  192. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/license.md +0 -0
  193. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/mkdocs.yml +0 -0
  194. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/pyproject.toml +0 -0
  195. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/setup.cfg +0 -0
  196. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/setup.py +0 -0
  197. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/constants.py +0 -0
  198. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/exceptions.py +0 -0
  199. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse/handlers.py +0 -0
  200. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/SOURCES.txt +0 -0
  201. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/dependency_links.txt +0 -0
  202. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/entry_points.txt +0 -0
  203. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/src/dryad2dataverse.egg-info/top_level.txt +0 -0
  204. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/tests/__init__.py +0 -0
  205. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/tests/badURL.json +0 -0
  206. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/tests/tests_monitor.py +0 -0
  207. {dryad2dataverse-0.7.1 → dryad2dataverse-0.7.4}/tests/tests_serializer.py +0 -0
  208. {dryad2dataverse-0.7.1 → 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.7.1
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
@@ -20,7 +20,7 @@ Description-Content-Type: text/markdown
20
20
  Requires-Dist: certifi>=2022.12.7
21
21
  Requires-Dist: charset-normalizer>=2.0.4
22
22
  Requires-Dist: chardet>=3.0.4
23
- Requires-Dist: idna>=2.10
23
+ Requires-Dist: idna>=2.10.0
24
24
  Requires-Dist: pycryptodome>=3.20.0
25
25
  Requires-Dist: requests>=2.26.0
26
26
  Requires-Dist: requests-toolbelt>=0.9.1
@@ -1,7 +1,7 @@
1
1
  certifi>=2022.12.7
2
2
  charset-normalizer>=2.0.4
3
3
  chardet>=3.0.4
4
- idna>=2.10
4
+ idna>=2.10.0
5
5
  pycryptodome>=3.20.0
6
6
  requests>=2.26.0
7
7
  requests-toolbelt>=0.9.1
@@ -22,7 +22,9 @@ Modules included:
22
22
 
23
23
  dryad2dataverse.exceptions : Custom exceptions.
24
24
  '''
25
+ import sys
25
26
 
26
- VERSION = (0, 7, 1)
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
- downLink = f['_links']['stash:file-download']['href']
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, 3)
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
- **vars(kwargs))
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
- main()
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)
@@ -2,6 +2,7 @@
2
2
  This module handles data downloads and uploads from a Dryad instance to a Dataverse instance
3
3
  '''
4
4
 
5
+ #TODO harmonize headers instead of hideous copypasta
5
6
  import hashlib
6
7
  import io
7
8
  import json
@@ -18,7 +19,9 @@ from requests_toolbelt.multipart.encoder import MultipartEncoder
18
19
 
19
20
  from dryad2dataverse import constants
20
21
  from dryad2dataverse import exceptions
22
+ from dryad2dataverse import USERAGENT
21
23
 
24
+ USER_AGENT = {'User-agent': USERAGENT}
22
25
  LOGGER = logging.getLogger(__name__)
23
26
  URL_LOGGER = logging.getLogger('urllib3')
24
27
 
@@ -85,6 +88,7 @@ class Transfer():
85
88
  if not url:
86
89
  url = constants.DVURL
87
90
  headers = {'X-Dataverse-key': apikey if apikey else constants.APIKEY}
91
+ headers.update(USER_AGENT)
88
92
  bad_test = self.session.get(f'{url}/api/datasets/:persistentId',
89
93
  headers=headers,
90
94
  params=params)
@@ -232,6 +236,7 @@ class Transfer():
232
236
  else:
233
237
  headers = {'X-Dataverse-key' : constants.APIKEY}
234
238
 
239
+ headers.update(USER_AGENT)
235
240
  params = {'persistentId': hdl}
236
241
  set_date = self.session.put(f'{url}/api/datasets/:persistentId/citationdate',
237
242
  headers=headers,
@@ -284,7 +289,7 @@ class Transfer():
284
289
  if not apikey:
285
290
  apikey = constants.APIKEY
286
291
  headers = {'X-Dataverse-key' : apikey}
287
-
292
+ headers.update(USER_AGENT)
288
293
  targetDv = kwargs.get('targetDv')
289
294
  dvpid = kwargs.get('dvpid')
290
295
  #dryFid = kwargs.get('dryFid') #Why did I put this here?
@@ -355,7 +360,7 @@ class Transfer():
355
360
  @staticmethod
356
361
  def _check_md5(infile, dig_type):
357
362
  '''
358
- Returns the md5 checksum of a file.
363
+ Returns the hex digest of a file (formerly just md5sum).
359
364
 
360
365
  ----------------------------------------
361
366
  Parameters:
@@ -442,6 +447,7 @@ class Transfer():
442
447
 
443
448
  if size:
444
449
  if size > constants.MAX_UPLOAD:
450
+ #TOO BIG
445
451
  LOGGER.warning('%s: File %s exceeds '
446
452
  'Dataverse MAX_UPLOAD size. Skipping download.',
447
453
  self.doi, filename)
@@ -485,6 +491,7 @@ class Transfer():
485
491
  if url == i[0]:
486
492
  i[-1] = md5
487
493
  LOGGER.debug('Complete download sequence')
494
+ #This doesn't actually return an md5, just the hash value
488
495
  return md5
489
496
  except (requests.exceptions.HTTPError,
490
497
  requests.exceptions.ConnectionError) as err:
@@ -560,6 +567,8 @@ class Transfer():
560
567
  headers = {'X-Dataverse-key': apikey}
561
568
  else:
562
569
  headers = self.auth
570
+
571
+ headers.update(USER_AGENT)
563
572
  params = {'persistentId': study}
564
573
  try:
565
574
  lock_status = self.session.get(f'{dv_url}/api/datasets/:persistentId/locks',
@@ -608,6 +617,8 @@ class Transfer():
608
617
  headers = {'X-Dataverse-key': apikey}
609
618
  else:
610
619
  headers = self.auth
620
+
621
+ headers.update(USER_AGENT)
611
622
  params = {'persistentId': study}
612
623
  lock_status = self.session.get(f'{dv_url}/api/datasets/:persistentId/locks',
613
624
  headers=headers,
@@ -641,7 +652,9 @@ class Transfer():
641
652
 
642
653
  def upload_file(self, dryadUrl=None, filename=None,
643
654
  mimetype=None, size=None, descr=None,
644
- md5=None, studyId=None, dest=None,
655
+ hashtype=None,
656
+ #md5=None, studyId=None, dest=None,
657
+ digest=None, studyId=None, dest=None,
645
658
  fprefix=None, force_unlock=False, timeout=300):
646
659
  '''
647
660
  Uploads file to Dataverse study. Returns a tuple of the
@@ -668,8 +681,11 @@ class Transfer():
668
681
  dest : str
669
682
  — Destination dataverse installation url.
670
683
  Defaults to constants.DVURL.
684
+ hashtype: str
685
+ original Dryad hash type
671
686
 
672
- md5 : str
687
+ #md5 : str
688
+ digest
673
689
  — md5 checksum for file.
674
690
 
675
691
  fprefix : str
@@ -692,6 +708,8 @@ class Transfer():
692
708
 
693
709
  ----------------------------------------
694
710
  '''
711
+ #return locals()
712
+ #TODONE remove above
695
713
  if not studyId:
696
714
  studyId = self.dvpid
697
715
  if not dest:
@@ -730,6 +748,7 @@ class Transfer():
730
748
  ctype = {'Content-type' : multi.content_type}
731
749
  tmphead = self.auth.copy()
732
750
  tmphead.update(ctype)
751
+ tmphead.update(USER_AGENT)
733
752
  url = dest + '/api/datasets/:persistentId/add'
734
753
  try:
735
754
  upload = self.session.post(url, params=params,
@@ -739,9 +758,22 @@ class Transfer():
739
758
  upload.raise_for_status()
740
759
  self.fileUpRecord.append((fid, upload.json()))
741
760
  upmd5 = upload.json()['data']['files'][0]['dataFile']['checksum']['value']
742
- if md5 and upmd5 != md5:
761
+ #Dataverse hash type
762
+ _type = upload.json()['data']['files'][0]['dataFile']['checksum']['type']
763
+ if _type.lower() != hashtype.lower():
764
+ comparator = self._check_md5(upfile, _type.lower())
765
+ else:
766
+ comparator = digest
767
+ #if hashtype.lower () != 'md5':
768
+ # #get an md5 because dataverse uses md5s. Or most of them do anyway.
769
+ # #One day this will be rewritten properly.
770
+ # md5 = self._check_md5(filename, 'md5')
771
+ #else:
772
+ # md5 = digest
773
+ #if md5 and (upmd5 != md5):
774
+ if upmd5 != comparator:
743
775
  try:
744
- raise exceptions.HashError(f'md5sum mismatch:\nlocal: {md5}\nuploaded: {upmd5}')
776
+ raise exceptions.HashError(f'{_type} mismatch:\nlocal: {comparator}\nuploaded: {upmd5}')
745
777
  except exceptions.HashError as e:
746
778
  LOGGER.exception(e)
747
779
  raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dryad2dataverse
3
- Version: 0.7.1
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
@@ -20,7 +20,7 @@ Description-Content-Type: text/markdown
20
20
  Requires-Dist: certifi>=2022.12.7
21
21
  Requires-Dist: charset-normalizer>=2.0.4
22
22
  Requires-Dist: chardet>=3.0.4
23
- Requires-Dist: idna>=2.10
23
+ Requires-Dist: idna>=2.10.0
24
24
  Requires-Dist: pycryptodome>=3.20.0
25
25
  Requires-Dist: requests>=2.26.0
26
26
  Requires-Dist: requests-toolbelt>=0.9.1
@@ -1,7 +1,7 @@
1
1
  certifi>=2022.12.7
2
2
  charset-normalizer>=2.0.4
3
3
  chardet>=3.0.4
4
- idna>=2.10
4
+ idna>=2.10.0
5
5
  pycryptodome>=3.20.0
6
6
  requests>=2.26.0
7
7
  requests-toolbelt>=0.9.1