codex 1.8.0a2__py3-none-any.whl → 1.8.0a4__py3-none-any.whl

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.

Potentially problematic release.


This version of codex might be problematic. Click here for more details.

Files changed (477) hide show
  1. codex/choices/admin.py +4 -4
  2. codex/choices/statii.py +1 -1
  3. codex/librarian/covers/status.py +1 -1
  4. codex/librarian/librariand.py +2 -0
  5. codex/librarian/scribe/importer/const.py +8 -0
  6. codex/librarian/scribe/importer/create/foreign_keys.py +1 -1
  7. codex/librarian/scribe/importer/delete/covers.py +3 -1
  8. codex/librarian/scribe/importer/failed/__init__.py +1 -0
  9. codex/librarian/scribe/importer/failed/create.py +97 -0
  10. codex/librarian/scribe/importer/failed/failed.py +54 -0
  11. codex/librarian/scribe/importer/failed/query.py +103 -0
  12. codex/librarian/scribe/importer/init.py +2 -2
  13. codex/librarian/scribe/importer/link/covers.py +1 -1
  14. codex/librarian/scribe/importer/read/aggregate_path.py +4 -2
  15. codex/librarian/scribe/importer/search/__init__.py +1 -1
  16. codex/librarian/scribe/importer/search/update.py +45 -19
  17. codex/librarian/scribe/importer/statii/__init__.py +2 -0
  18. codex/librarian/scribe/importer/statii/failed.py +50 -0
  19. codex/librarian/scribe/importer/status.py +0 -12
  20. codex/librarian/scribe/janitor/janitor.py +13 -5
  21. codex/librarian/scribe/janitor/status.py +3 -2
  22. codex/librarian/scribe/search/optimize.py +1 -2
  23. codex/librarian/scribe/search/remove.py +2 -2
  24. codex/librarian/scribe/search/status.py +8 -8
  25. codex/librarian/scribe/search/sync.py +10 -3
  26. codex/librarian/scribe/status.py +2 -1
  27. codex/librarian/status.py +5 -5
  28. codex/librarian/status_controller.py +55 -25
  29. codex/librarian/watchdog/const.py +26 -2
  30. codex/librarian/watchdog/emitter.py +26 -34
  31. codex/librarian/watchdog/event_batcherd.py +18 -14
  32. codex/librarian/watchdog/observers.py +11 -15
  33. codex/migrations/0035_alter_librarianstatus_status_type.py +72 -0
  34. codex/startup/__init__.py +1 -1
  35. codex/static_root/assets/{VCheckbox-DSndl51k.1e28c443c3cb.js → VCheckbox--x5j8A4a.47af0eec9cc5.js} +1 -1
  36. codex/static_root/assets/VCheckbox--x5j8A4a.47af0eec9cc5.js.br +0 -0
  37. codex/static_root/assets/VCheckbox--x5j8A4a.47af0eec9cc5.js.gz +0 -0
  38. codex/static_root/assets/{VCheckbox-DSndl51k.js → VCheckbox--x5j8A4a.js} +1 -1
  39. codex/static_root/assets/VCheckbox--x5j8A4a.js.br +0 -0
  40. codex/static_root/assets/VCheckbox--x5j8A4a.js.gz +0 -0
  41. codex/static_root/assets/{VCheckboxBtn-Bu2Pf64q.d7463473d7a2.js → VCheckboxBtn-C44aiFUU.3d08a2da4b68.js} +1 -1
  42. codex/static_root/assets/VCheckboxBtn-C44aiFUU.3d08a2da4b68.js.br +0 -0
  43. codex/static_root/assets/VCheckboxBtn-C44aiFUU.3d08a2da4b68.js.gz +0 -0
  44. codex/static_root/assets/{VCheckboxBtn-Bu2Pf64q.js → VCheckboxBtn-C44aiFUU.js} +1 -1
  45. codex/static_root/assets/VCheckboxBtn-C44aiFUU.js.br +0 -0
  46. codex/static_root/assets/VCheckboxBtn-C44aiFUU.js.gz +0 -0
  47. codex/static_root/assets/{VCombobox-Uogv6Ckp.9f900e703605.js → VCombobox-DuJ5WhJs.d4d57278cd15.js} +1 -1
  48. codex/static_root/assets/VCombobox-DuJ5WhJs.d4d57278cd15.js.br +0 -0
  49. codex/static_root/assets/VCombobox-DuJ5WhJs.d4d57278cd15.js.gz +0 -0
  50. codex/static_root/assets/{VCombobox-Uogv6Ckp.js → VCombobox-DuJ5WhJs.js} +1 -1
  51. codex/static_root/assets/VCombobox-DuJ5WhJs.js.br +0 -0
  52. codex/static_root/assets/VCombobox-DuJ5WhJs.js.gz +0 -0
  53. codex/static_root/assets/{VDialog-BzaGu1HN.34f52763c3f8.js → VDialog-BxuI97hb.250bc105e373.js} +1 -1
  54. codex/static_root/assets/VDialog-BxuI97hb.250bc105e373.js.br +0 -0
  55. codex/static_root/assets/VDialog-BxuI97hb.250bc105e373.js.gz +0 -0
  56. codex/static_root/assets/{VDialog-BzaGu1HN.js → VDialog-BxuI97hb.js} +1 -1
  57. codex/static_root/assets/VDialog-BxuI97hb.js.br +0 -0
  58. codex/static_root/assets/VDialog-BxuI97hb.js.gz +0 -0
  59. codex/static_root/assets/{VDivider-C3ikm0Ko.4938e9ced53e.js → VDivider-DSzkVD8n.9346c2b22bde.js} +1 -1
  60. codex/static_root/assets/VDivider-DSzkVD8n.9346c2b22bde.js.br +0 -0
  61. codex/static_root/assets/VDivider-DSzkVD8n.9346c2b22bde.js.gz +0 -0
  62. codex/static_root/assets/{VDivider-C3ikm0Ko.js → VDivider-DSzkVD8n.js} +1 -1
  63. codex/static_root/assets/VDivider-DSzkVD8n.js.br +0 -0
  64. codex/static_root/assets/VDivider-DSzkVD8n.js.gz +0 -0
  65. codex/static_root/assets/{VExpansionPanels-AmsInZN0.5cb7c833de3d.js → VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js} +1 -1
  66. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js.br +0 -0
  67. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js.gz +0 -0
  68. codex/static_root/assets/{VExpansionPanels-AmsInZN0.js → VExpansionPanels-7DSA7BWQ.js} +1 -1
  69. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.js.br +0 -0
  70. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.js.gz +0 -0
  71. codex/static_root/assets/{VForm-CyCdgusw.c737973a1e85.js → VForm-BZtlScrY.bf87851b598f.js} +1 -1
  72. codex/static_root/assets/VForm-BZtlScrY.bf87851b598f.js.br +0 -0
  73. codex/static_root/assets/VForm-BZtlScrY.bf87851b598f.js.gz +0 -0
  74. codex/static_root/assets/{VForm-CyCdgusw.js → VForm-BZtlScrY.js} +1 -1
  75. codex/static_root/assets/VForm-BZtlScrY.js.br +0 -0
  76. codex/static_root/assets/VForm-BZtlScrY.js.gz +0 -0
  77. codex/static_root/assets/{VRadioGroup-BF0Xjrzi.e54d2bf41bb2.js → VRadioGroup-CRzhTpe9.1fc9e0e7a980.js} +1 -1
  78. codex/static_root/assets/VRadioGroup-CRzhTpe9.1fc9e0e7a980.js.br +0 -0
  79. codex/static_root/assets/VRadioGroup-CRzhTpe9.1fc9e0e7a980.js.gz +0 -0
  80. codex/static_root/assets/{VRadioGroup-BF0Xjrzi.js → VRadioGroup-CRzhTpe9.js} +1 -1
  81. codex/static_root/assets/VRadioGroup-CRzhTpe9.js.br +0 -0
  82. codex/static_root/assets/VRadioGroup-CRzhTpe9.js.gz +0 -0
  83. codex/static_root/assets/{VSelect-Dv50OIkN.js → VSelect-_Cduank3.65530f781519.js} +1 -1
  84. codex/static_root/assets/VSelect-_Cduank3.65530f781519.js.br +0 -0
  85. codex/static_root/assets/VSelect-_Cduank3.65530f781519.js.gz +0 -0
  86. codex/static_root/assets/{VSelect-Dv50OIkN.390adb1fe7fa.js → VSelect-_Cduank3.js} +1 -1
  87. codex/static_root/assets/VSelect-_Cduank3.js.br +0 -0
  88. codex/static_root/assets/VSelect-_Cduank3.js.gz +0 -0
  89. codex/static_root/assets/{VSelectionControl-DbKYScD5.js → VSelectionControl-C0Md0bXa.0b96d6d65ba2.js} +1 -1
  90. codex/static_root/assets/VSelectionControl-C0Md0bXa.0b96d6d65ba2.js.br +0 -0
  91. codex/static_root/assets/VSelectionControl-C0Md0bXa.0b96d6d65ba2.js.gz +0 -0
  92. codex/static_root/assets/{VSelectionControl-DbKYScD5.8d2ab1ebe546.js → VSelectionControl-C0Md0bXa.js} +1 -1
  93. codex/static_root/assets/VSelectionControl-C0Md0bXa.js.br +0 -0
  94. codex/static_root/assets/VSelectionControl-C0Md0bXa.js.gz +0 -0
  95. codex/static_root/assets/{VTable-BmOfHc7J.b2e1311009d1.js → VTable-lswnBwdy.f27115046a94.js} +1 -1
  96. codex/static_root/assets/VTable-lswnBwdy.f27115046a94.js.br +0 -0
  97. codex/static_root/assets/VTable-lswnBwdy.f27115046a94.js.gz +0 -0
  98. codex/static_root/assets/{VTable-BmOfHc7J.js → VTable-lswnBwdy.js} +1 -1
  99. codex/static_root/assets/VTable-lswnBwdy.js.br +0 -0
  100. codex/static_root/assets/VTable-lswnBwdy.js.gz +0 -0
  101. codex/static_root/assets/{VWindowItem-BLEDgagD.4b67c4a63c59.js → VWindowItem-hsPEpCj_.4bf66f9ba4b1.js} +1 -1
  102. codex/static_root/assets/VWindowItem-hsPEpCj_.4bf66f9ba4b1.js.br +0 -0
  103. codex/static_root/assets/VWindowItem-hsPEpCj_.4bf66f9ba4b1.js.gz +0 -0
  104. codex/static_root/assets/{VWindowItem-BLEDgagD.js → VWindowItem-hsPEpCj_.js} +1 -1
  105. codex/static_root/assets/VWindowItem-hsPEpCj_.js.br +0 -0
  106. codex/static_root/assets/VWindowItem-hsPEpCj_.js.gz +0 -0
  107. codex/static_root/assets/{admin-kjMoKlqD.55a1dd908124.js → admin-6qrzqcJO.2b8351e2c2c6.js} +1 -1
  108. codex/static_root/assets/admin-6qrzqcJO.2b8351e2c2c6.js.br +0 -0
  109. codex/static_root/assets/admin-6qrzqcJO.2b8351e2c2c6.js.gz +0 -0
  110. codex/static_root/assets/{admin-kjMoKlqD.js → admin-6qrzqcJO.js} +1 -1
  111. codex/static_root/assets/admin-6qrzqcJO.js.br +0 -0
  112. codex/static_root/assets/admin-6qrzqcJO.js.gz +0 -0
  113. codex/static_root/assets/{admin-Bv40vYZw.8179e1ece835.js → admin-CVe4N6vl.5e8ec2bd60d3.js} +1 -1
  114. codex/static_root/assets/admin-CVe4N6vl.5e8ec2bd60d3.js.br +0 -0
  115. codex/static_root/assets/admin-CVe4N6vl.5e8ec2bd60d3.js.gz +0 -0
  116. codex/static_root/assets/{admin-Bv40vYZw.js → admin-CVe4N6vl.js} +1 -1
  117. codex/static_root/assets/admin-CVe4N6vl.js.br +0 -0
  118. codex/static_root/assets/admin-CVe4N6vl.js.gz +0 -0
  119. codex/static_root/assets/admin-menu-B6raGfpC.790d01e1ec98.js +1 -0
  120. codex/static_root/assets/admin-menu-B6raGfpC.790d01e1ec98.js.br +0 -0
  121. codex/static_root/assets/admin-menu-B6raGfpC.790d01e1ec98.js.gz +0 -0
  122. codex/static_root/assets/admin-menu-B6raGfpC.js +1 -0
  123. codex/static_root/assets/admin-menu-B6raGfpC.js.br +0 -0
  124. codex/static_root/assets/admin-menu-B6raGfpC.js.gz +0 -0
  125. codex/static_root/assets/{admin-settings-button-progress-RfwaqLl2.4cdd37d0dd16.js → admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js} +1 -1
  126. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js.br +0 -0
  127. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js.gz +0 -0
  128. codex/static_root/assets/{admin-settings-button-progress-RfwaqLl2.js → admin-settings-button-progress-D0jgpe2z.js} +1 -1
  129. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.js.br +0 -0
  130. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.js.gz +0 -0
  131. codex/static_root/assets/{browser-plYso4v5.js → browser-DPWgTJvq.aa42fd45fdc5.js} +1 -1
  132. codex/static_root/assets/browser-DPWgTJvq.aa42fd45fdc5.js.br +0 -0
  133. codex/static_root/assets/browser-DPWgTJvq.aa42fd45fdc5.js.gz +0 -0
  134. codex/static_root/assets/{browser-plYso4v5.87ef04b44d37.js → browser-DPWgTJvq.js} +1 -1
  135. codex/static_root/assets/browser-DPWgTJvq.js.br +0 -0
  136. codex/static_root/assets/browser-DPWgTJvq.js.gz +0 -0
  137. codex/static_root/assets/{change-password-dialog-DyhQwNv1.26383853ccc0.js → change-password-dialog-f0bnLsTX.ad5174bfd6b9.js} +1 -1
  138. codex/static_root/assets/change-password-dialog-f0bnLsTX.ad5174bfd6b9.js.br +0 -0
  139. codex/static_root/assets/change-password-dialog-f0bnLsTX.ad5174bfd6b9.js.gz +0 -0
  140. codex/static_root/assets/{change-password-dialog-DyhQwNv1.js → change-password-dialog-f0bnLsTX.js} +1 -1
  141. codex/static_root/assets/change-password-dialog-f0bnLsTX.js.br +0 -0
  142. codex/static_root/assets/change-password-dialog-f0bnLsTX.js.gz +0 -0
  143. codex/static_root/assets/{confirm-dialog-B7ndwV5M.d1f0728d4bd0.js → confirm-dialog-D2RCUHSr.ccb67b05d69e.js} +1 -1
  144. codex/static_root/assets/confirm-dialog-D2RCUHSr.ccb67b05d69e.js.br +0 -0
  145. codex/static_root/assets/confirm-dialog-D2RCUHSr.ccb67b05d69e.js.gz +0 -0
  146. codex/static_root/assets/{confirm-dialog-B7ndwV5M.js → confirm-dialog-D2RCUHSr.js} +1 -1
  147. codex/static_root/assets/confirm-dialog-D2RCUHSr.js.br +0 -0
  148. codex/static_root/assets/confirm-dialog-D2RCUHSr.js.gz +0 -0
  149. codex/static_root/assets/{datetime-column-DANpNGGe.13985ff7d484.js → datetime-column-C544paek.4b5c5cd44e86.js} +1 -1
  150. codex/static_root/assets/datetime-column-C544paek.4b5c5cd44e86.js.br +0 -0
  151. codex/static_root/assets/datetime-column-C544paek.4b5c5cd44e86.js.gz +0 -0
  152. codex/static_root/assets/{datetime-column-DANpNGGe.js → datetime-column-C544paek.js} +1 -1
  153. codex/static_root/assets/datetime-column-C544paek.js.br +0 -0
  154. codex/static_root/assets/datetime-column-C544paek.js.gz +0 -0
  155. codex/static_root/assets/{filter-Dhe8cVmt.ad92d3b618e3.js → filter-C2tmS7Gm.59b3cb2ccc7e.js} +1 -1
  156. codex/static_root/assets/filter-C2tmS7Gm.59b3cb2ccc7e.js.br +0 -0
  157. codex/static_root/assets/filter-C2tmS7Gm.59b3cb2ccc7e.js.gz +0 -0
  158. codex/static_root/assets/{filter-Dhe8cVmt.js → filter-C2tmS7Gm.js} +1 -1
  159. codex/static_root/assets/filter-C2tmS7Gm.js.br +0 -0
  160. codex/static_root/assets/filter-C2tmS7Gm.js.gz +0 -0
  161. codex/static_root/assets/{flag-tab-BZ9S7U8D.0b814b215567.js → flag-tab-BVUqzGNH.307659fba7b5.js} +1 -1
  162. codex/static_root/assets/flag-tab-BVUqzGNH.307659fba7b5.js.br +0 -0
  163. codex/static_root/assets/flag-tab-BVUqzGNH.307659fba7b5.js.gz +0 -0
  164. codex/static_root/assets/{flag-tab-BZ9S7U8D.js → flag-tab-BVUqzGNH.js} +1 -1
  165. codex/static_root/assets/flag-tab-BVUqzGNH.js.br +0 -0
  166. codex/static_root/assets/flag-tab-BVUqzGNH.js.gz +0 -0
  167. codex/static_root/assets/{forwardRefs-Z0d4Mnc7.js → forwardRefs-Byns6lbl.018798a57db2.js} +1 -1
  168. codex/static_root/assets/forwardRefs-Byns6lbl.018798a57db2.js.br +0 -0
  169. codex/static_root/assets/forwardRefs-Byns6lbl.018798a57db2.js.gz +0 -0
  170. codex/static_root/assets/{forwardRefs-Z0d4Mnc7.deb4e7a1b8b5.js → forwardRefs-Byns6lbl.js} +1 -1
  171. codex/static_root/assets/forwardRefs-Byns6lbl.js.br +0 -0
  172. codex/static_root/assets/forwardRefs-Byns6lbl.js.gz +0 -0
  173. codex/static_root/assets/{group-tab-B0ASBB3_.8e10b90ff052.js → group-tab-TNxZJJZ6.6d88969a9263.js} +1 -1
  174. codex/static_root/assets/group-tab-TNxZJJZ6.6d88969a9263.js.br +0 -0
  175. codex/static_root/assets/group-tab-TNxZJJZ6.6d88969a9263.js.gz +0 -0
  176. codex/static_root/assets/{group-tab-B0ASBB3_.js → group-tab-TNxZJJZ6.js} +1 -1
  177. codex/static_root/assets/group-tab-TNxZJJZ6.js.br +0 -0
  178. codex/static_root/assets/group-tab-TNxZJJZ6.js.gz +0 -0
  179. codex/static_root/assets/{http-error-BP-mMZsK.72c4d00b40d2.js → http-error-D3uGBdtN.39e149587f96.js} +1 -1
  180. codex/static_root/assets/http-error-D3uGBdtN.39e149587f96.js.br +0 -0
  181. codex/static_root/assets/http-error-D3uGBdtN.39e149587f96.js.gz +0 -0
  182. codex/static_root/assets/{http-error-BP-mMZsK.js → http-error-D3uGBdtN.js} +1 -1
  183. codex/static_root/assets/http-error-D3uGBdtN.js.br +0 -0
  184. codex/static_root/assets/http-error-D3uGBdtN.js.gz +0 -0
  185. codex/static_root/assets/{index-Cu9nQXJD.49795921eada.js → index-J6F_OMTQ.2a8861f7acc1.js} +1 -1
  186. codex/static_root/assets/index-J6F_OMTQ.2a8861f7acc1.js.br +0 -0
  187. codex/static_root/assets/index-J6F_OMTQ.2a8861f7acc1.js.gz +0 -0
  188. codex/static_root/assets/{index-Cu9nQXJD.js → index-J6F_OMTQ.js} +1 -1
  189. codex/static_root/assets/index-J6F_OMTQ.js.br +0 -0
  190. codex/static_root/assets/index-J6F_OMTQ.js.gz +0 -0
  191. codex/static_root/assets/{library-tab-D9lxhAqv.02f7064c20f3.css → library-tab-5StL67ei.0fad8998a237.css} +1 -1
  192. codex/static_root/assets/library-tab-5StL67ei.0fad8998a237.css.br +0 -0
  193. codex/static_root/assets/library-tab-5StL67ei.0fad8998a237.css.gz +0 -0
  194. codex/static_root/assets/{library-tab-D9lxhAqv.css → library-tab-5StL67ei.css} +1 -1
  195. codex/static_root/assets/library-tab-5StL67ei.css.br +0 -0
  196. codex/static_root/assets/library-tab-5StL67ei.css.gz +0 -0
  197. codex/static_root/assets/library-tab-DX9ZW9uM.8419900ed9b8.js +1 -0
  198. codex/static_root/assets/library-tab-DX9ZW9uM.8419900ed9b8.js.br +0 -0
  199. codex/static_root/assets/library-tab-DX9ZW9uM.8419900ed9b8.js.gz +0 -0
  200. codex/static_root/assets/library-tab-DX9ZW9uM.js +1 -0
  201. codex/static_root/assets/library-tab-DX9ZW9uM.js.br +0 -0
  202. codex/static_root/assets/library-tab-DX9ZW9uM.js.gz +0 -0
  203. codex/static_root/assets/main-CXE4elND.b45c7c290af2.js +39 -0
  204. codex/static_root/assets/main-CXE4elND.b45c7c290af2.js.br +0 -0
  205. codex/static_root/assets/main-CXE4elND.b45c7c290af2.js.gz +0 -0
  206. codex/static_root/assets/main-CXE4elND.js +39 -0
  207. codex/static_root/assets/main-CXE4elND.js.br +0 -0
  208. codex/static_root/assets/main-CXE4elND.js.gz +0 -0
  209. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js +1 -0
  210. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js.br +0 -0
  211. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js.gz +0 -0
  212. codex/static_root/assets/pager-full-pdf-C8QcluEe.js +1 -0
  213. codex/static_root/assets/pager-full-pdf-C8QcluEe.js.br +0 -0
  214. codex/static_root/assets/pager-full-pdf-C8QcluEe.js.gz +0 -0
  215. codex/static_root/assets/{pagination-toolbar-DGfRDeRW.c3f463ad6edd.js → pagination-toolbar-BqvFln9z.d38452f8ce48.js} +1 -1
  216. codex/static_root/assets/pagination-toolbar-BqvFln9z.d38452f8ce48.js.br +0 -0
  217. codex/static_root/assets/pagination-toolbar-BqvFln9z.d38452f8ce48.js.gz +0 -0
  218. codex/static_root/assets/{pagination-toolbar-DGfRDeRW.js → pagination-toolbar-BqvFln9z.js} +1 -1
  219. codex/static_root/assets/pagination-toolbar-BqvFln9z.js.br +0 -0
  220. codex/static_root/assets/pagination-toolbar-BqvFln9z.js.gz +0 -0
  221. codex/static_root/assets/{pdf-doc-D6Meu4vZ.91b43d057670.js → pdf-doc-BeNzjayP.e6b65a74287b.js} +14 -14
  222. codex/static_root/assets/pdf-doc-BeNzjayP.e6b65a74287b.js.br +0 -0
  223. codex/static_root/assets/pdf-doc-BeNzjayP.e6b65a74287b.js.gz +0 -0
  224. codex/static_root/assets/{pdf-doc-D6Meu4vZ.js → pdf-doc-BeNzjayP.js} +14 -14
  225. codex/static_root/assets/pdf-doc-BeNzjayP.js.br +0 -0
  226. codex/static_root/assets/pdf-doc-BeNzjayP.js.gz +0 -0
  227. codex/static_root/assets/reader-DG9FVXqI.366a61e33d8b.js +2 -0
  228. codex/static_root/assets/reader-DG9FVXqI.366a61e33d8b.js.br +0 -0
  229. codex/static_root/assets/reader-DG9FVXqI.366a61e33d8b.js.gz +0 -0
  230. codex/static_root/assets/reader-DG9FVXqI.js +2 -0
  231. codex/static_root/assets/reader-DG9FVXqI.js.br +0 -0
  232. codex/static_root/assets/reader-DG9FVXqI.js.gz +0 -0
  233. codex/static_root/assets/{reader-LwL05rgA.c022ad3b7b94.css → reader-HE07eoaG.8626eeb7c718.css} +1 -1
  234. codex/static_root/assets/reader-HE07eoaG.8626eeb7c718.css.br +0 -0
  235. codex/static_root/assets/reader-HE07eoaG.8626eeb7c718.css.gz +0 -0
  236. codex/static_root/assets/{reader-LwL05rgA.css → reader-HE07eoaG.css} +1 -1
  237. codex/static_root/assets/reader-HE07eoaG.css.br +0 -0
  238. codex/static_root/assets/reader-HE07eoaG.css.gz +0 -0
  239. codex/static_root/assets/{relation-chips-CAXZIswb.e991a259ce59.js → relation-chips-BrO8HnXq.fa4a7390c640.js} +1 -1
  240. codex/static_root/assets/relation-chips-BrO8HnXq.fa4a7390c640.js.br +0 -0
  241. codex/static_root/assets/relation-chips-BrO8HnXq.fa4a7390c640.js.gz +0 -0
  242. codex/static_root/assets/{relation-chips-CAXZIswb.js → relation-chips-BrO8HnXq.js} +1 -1
  243. codex/static_root/assets/relation-chips-BrO8HnXq.js.br +0 -0
  244. codex/static_root/assets/relation-chips-BrO8HnXq.js.gz +0 -0
  245. codex/static_root/assets/{settings-drawer-B4gD41g6.js → settings-drawer-a2xwlRQb.41475006862d.js} +2 -2
  246. codex/static_root/assets/settings-drawer-a2xwlRQb.41475006862d.js.br +0 -0
  247. codex/static_root/assets/settings-drawer-a2xwlRQb.41475006862d.js.gz +0 -0
  248. codex/static_root/assets/{settings-drawer-B4gD41g6.82718694498e.js → settings-drawer-a2xwlRQb.js} +2 -2
  249. codex/static_root/assets/settings-drawer-a2xwlRQb.js.br +0 -0
  250. codex/static_root/assets/settings-drawer-a2xwlRQb.js.gz +0 -0
  251. codex/static_root/assets/{ssrBoot-O6yTJ_UV.7180d77d283e.js → ssrBoot-BUdwZUw6.964a0734eff2.js} +1 -1
  252. codex/static_root/assets/ssrBoot-BUdwZUw6.964a0734eff2.js.br +0 -0
  253. codex/static_root/assets/ssrBoot-BUdwZUw6.964a0734eff2.js.gz +0 -0
  254. codex/static_root/assets/{ssrBoot-O6yTJ_UV.js → ssrBoot-BUdwZUw6.js} +1 -1
  255. codex/static_root/assets/ssrBoot-BUdwZUw6.js.br +0 -0
  256. codex/static_root/assets/ssrBoot-BUdwZUw6.js.gz +0 -0
  257. codex/static_root/assets/{stats-tab-BZjOg19A.afb2e6b0d648.js → stats-tab-D_Sf0W-w.7dd721aef1d7.js} +1 -1
  258. codex/static_root/assets/stats-tab-D_Sf0W-w.7dd721aef1d7.js.br +0 -0
  259. codex/static_root/assets/stats-tab-D_Sf0W-w.7dd721aef1d7.js.gz +0 -0
  260. codex/static_root/assets/{stats-tab-BZjOg19A.js → stats-tab-D_Sf0W-w.js} +1 -1
  261. codex/static_root/assets/stats-tab-D_Sf0W-w.js.br +0 -0
  262. codex/static_root/assets/stats-tab-D_Sf0W-w.js.gz +0 -0
  263. codex/static_root/assets/task-tab-CuZPm55f.827f36543dcc.js +1 -0
  264. codex/static_root/assets/task-tab-CuZPm55f.827f36543dcc.js.br +0 -0
  265. codex/static_root/assets/task-tab-CuZPm55f.827f36543dcc.js.gz +0 -0
  266. codex/static_root/assets/task-tab-CuZPm55f.js +1 -0
  267. codex/static_root/assets/task-tab-CuZPm55f.js.br +0 -0
  268. codex/static_root/assets/task-tab-CuZPm55f.js.gz +0 -0
  269. codex/static_root/assets/{unauthorized-Bo3ThIrX.12d2efd95d7d.js → unauthorized-Bx_I2aj6.4846dbaf53c3.js} +1 -1
  270. codex/static_root/assets/unauthorized-Bx_I2aj6.4846dbaf53c3.js.br +0 -0
  271. codex/static_root/assets/unauthorized-Bx_I2aj6.4846dbaf53c3.js.gz +0 -0
  272. codex/static_root/assets/{unauthorized-Bo3ThIrX.js → unauthorized-Bx_I2aj6.js} +1 -1
  273. codex/static_root/assets/unauthorized-Bx_I2aj6.js.br +0 -0
  274. codex/static_root/assets/unauthorized-Bx_I2aj6.js.gz +0 -0
  275. codex/static_root/assets/{user-tab-BQ82qBg3.17190dc83452.js → user-tab-6FMrYQKf.ac405e881ade.js} +1 -1
  276. codex/static_root/assets/user-tab-6FMrYQKf.ac405e881ade.js.br +0 -0
  277. codex/static_root/assets/user-tab-6FMrYQKf.ac405e881ade.js.gz +0 -0
  278. codex/static_root/assets/{user-tab-BQ82qBg3.js → user-tab-6FMrYQKf.js} +1 -1
  279. codex/static_root/assets/user-tab-6FMrYQKf.js.br +0 -0
  280. codex/static_root/assets/user-tab-6FMrYQKf.js.gz +0 -0
  281. codex/static_root/{manifest.0dc91d0dee6d.json → manifest.dfd8ee684697.json} +297 -297
  282. codex/static_root/manifest.dfd8ee684697.json.br +0 -0
  283. codex/static_root/manifest.dfd8ee684697.json.gz +0 -0
  284. codex/static_root/manifest.json +297 -297
  285. codex/static_root/manifest.json.br +0 -0
  286. codex/static_root/manifest.json.gz +0 -0
  287. codex/static_root/staticfiles.json +1 -1
  288. codex/views/admin/library.py +4 -1
  289. codex/views/browser/params.py +21 -17
  290. codex/views/reader/arcs.py +16 -6
  291. codex/views/reader/params.py +4 -1
  292. codex/views/session.py +1 -0
  293. {codex-1.8.0a2.dist-info → codex-1.8.0a4.dist-info}/METADATA +2 -2
  294. {codex-1.8.0a2.dist-info → codex-1.8.0a4.dist-info}/RECORD +297 -293
  295. codex/librarian/scribe/importer/failed_imports.py +0 -168
  296. codex/librarian/scribe/importer/statii/1 +0 -27
  297. codex/static_root/assets/VCheckbox-DSndl51k.1e28c443c3cb.js.br +0 -0
  298. codex/static_root/assets/VCheckbox-DSndl51k.1e28c443c3cb.js.gz +0 -0
  299. codex/static_root/assets/VCheckbox-DSndl51k.js.br +0 -0
  300. codex/static_root/assets/VCheckbox-DSndl51k.js.gz +0 -0
  301. codex/static_root/assets/VCheckboxBtn-Bu2Pf64q.d7463473d7a2.js.br +0 -0
  302. codex/static_root/assets/VCheckboxBtn-Bu2Pf64q.d7463473d7a2.js.gz +0 -0
  303. codex/static_root/assets/VCheckboxBtn-Bu2Pf64q.js.br +0 -0
  304. codex/static_root/assets/VCheckboxBtn-Bu2Pf64q.js.gz +0 -0
  305. codex/static_root/assets/VCombobox-Uogv6Ckp.9f900e703605.js.br +0 -0
  306. codex/static_root/assets/VCombobox-Uogv6Ckp.9f900e703605.js.gz +0 -0
  307. codex/static_root/assets/VCombobox-Uogv6Ckp.js.br +0 -0
  308. codex/static_root/assets/VCombobox-Uogv6Ckp.js.gz +0 -0
  309. codex/static_root/assets/VDialog-BzaGu1HN.34f52763c3f8.js.br +0 -0
  310. codex/static_root/assets/VDialog-BzaGu1HN.34f52763c3f8.js.gz +0 -0
  311. codex/static_root/assets/VDialog-BzaGu1HN.js.br +0 -0
  312. codex/static_root/assets/VDialog-BzaGu1HN.js.gz +0 -0
  313. codex/static_root/assets/VDivider-C3ikm0Ko.4938e9ced53e.js.br +0 -0
  314. codex/static_root/assets/VDivider-C3ikm0Ko.4938e9ced53e.js.gz +0 -0
  315. codex/static_root/assets/VDivider-C3ikm0Ko.js.br +0 -0
  316. codex/static_root/assets/VDivider-C3ikm0Ko.js.gz +0 -0
  317. codex/static_root/assets/VExpansionPanels-AmsInZN0.5cb7c833de3d.js.br +0 -0
  318. codex/static_root/assets/VExpansionPanels-AmsInZN0.5cb7c833de3d.js.gz +0 -0
  319. codex/static_root/assets/VExpansionPanels-AmsInZN0.js.br +0 -0
  320. codex/static_root/assets/VExpansionPanels-AmsInZN0.js.gz +0 -0
  321. codex/static_root/assets/VForm-CyCdgusw.c737973a1e85.js.br +0 -0
  322. codex/static_root/assets/VForm-CyCdgusw.c737973a1e85.js.gz +0 -0
  323. codex/static_root/assets/VForm-CyCdgusw.js.br +0 -0
  324. codex/static_root/assets/VForm-CyCdgusw.js.gz +0 -0
  325. codex/static_root/assets/VRadioGroup-BF0Xjrzi.e54d2bf41bb2.js.br +0 -0
  326. codex/static_root/assets/VRadioGroup-BF0Xjrzi.e54d2bf41bb2.js.gz +0 -0
  327. codex/static_root/assets/VRadioGroup-BF0Xjrzi.js.br +0 -0
  328. codex/static_root/assets/VRadioGroup-BF0Xjrzi.js.gz +0 -0
  329. codex/static_root/assets/VSelect-Dv50OIkN.390adb1fe7fa.js.br +0 -0
  330. codex/static_root/assets/VSelect-Dv50OIkN.390adb1fe7fa.js.gz +0 -0
  331. codex/static_root/assets/VSelect-Dv50OIkN.js.br +0 -0
  332. codex/static_root/assets/VSelect-Dv50OIkN.js.gz +0 -0
  333. codex/static_root/assets/VSelectionControl-DbKYScD5.8d2ab1ebe546.js.br +0 -0
  334. codex/static_root/assets/VSelectionControl-DbKYScD5.8d2ab1ebe546.js.gz +0 -0
  335. codex/static_root/assets/VSelectionControl-DbKYScD5.js.br +0 -0
  336. codex/static_root/assets/VSelectionControl-DbKYScD5.js.gz +0 -0
  337. codex/static_root/assets/VTable-BmOfHc7J.b2e1311009d1.js.br +0 -0
  338. codex/static_root/assets/VTable-BmOfHc7J.b2e1311009d1.js.gz +0 -0
  339. codex/static_root/assets/VTable-BmOfHc7J.js.br +0 -0
  340. codex/static_root/assets/VTable-BmOfHc7J.js.gz +0 -0
  341. codex/static_root/assets/VWindowItem-BLEDgagD.4b67c4a63c59.js.br +0 -0
  342. codex/static_root/assets/VWindowItem-BLEDgagD.4b67c4a63c59.js.gz +0 -0
  343. codex/static_root/assets/VWindowItem-BLEDgagD.js.br +0 -0
  344. codex/static_root/assets/VWindowItem-BLEDgagD.js.gz +0 -0
  345. codex/static_root/assets/admin-Bv40vYZw.8179e1ece835.js.br +0 -0
  346. codex/static_root/assets/admin-Bv40vYZw.8179e1ece835.js.gz +0 -0
  347. codex/static_root/assets/admin-Bv40vYZw.js.br +0 -0
  348. codex/static_root/assets/admin-Bv40vYZw.js.gz +0 -0
  349. codex/static_root/assets/admin-kjMoKlqD.55a1dd908124.js.br +0 -0
  350. codex/static_root/assets/admin-kjMoKlqD.55a1dd908124.js.gz +0 -0
  351. codex/static_root/assets/admin-kjMoKlqD.js.br +0 -0
  352. codex/static_root/assets/admin-kjMoKlqD.js.gz +0 -0
  353. codex/static_root/assets/admin-menu-BNpuOmbI.e1f62ba483cd.js +0 -1
  354. codex/static_root/assets/admin-menu-BNpuOmbI.e1f62ba483cd.js.br +0 -0
  355. codex/static_root/assets/admin-menu-BNpuOmbI.e1f62ba483cd.js.gz +0 -0
  356. codex/static_root/assets/admin-menu-BNpuOmbI.js +0 -1
  357. codex/static_root/assets/admin-menu-BNpuOmbI.js.br +0 -0
  358. codex/static_root/assets/admin-menu-BNpuOmbI.js.gz +0 -0
  359. codex/static_root/assets/admin-settings-button-progress-RfwaqLl2.4cdd37d0dd16.js.br +0 -0
  360. codex/static_root/assets/admin-settings-button-progress-RfwaqLl2.4cdd37d0dd16.js.gz +0 -0
  361. codex/static_root/assets/admin-settings-button-progress-RfwaqLl2.js.br +0 -0
  362. codex/static_root/assets/admin-settings-button-progress-RfwaqLl2.js.gz +0 -0
  363. codex/static_root/assets/browser-plYso4v5.87ef04b44d37.js.br +0 -0
  364. codex/static_root/assets/browser-plYso4v5.87ef04b44d37.js.gz +0 -0
  365. codex/static_root/assets/browser-plYso4v5.js.br +0 -0
  366. codex/static_root/assets/browser-plYso4v5.js.gz +0 -0
  367. codex/static_root/assets/change-password-dialog-DyhQwNv1.26383853ccc0.js.br +0 -0
  368. codex/static_root/assets/change-password-dialog-DyhQwNv1.26383853ccc0.js.gz +0 -0
  369. codex/static_root/assets/change-password-dialog-DyhQwNv1.js.br +0 -0
  370. codex/static_root/assets/change-password-dialog-DyhQwNv1.js.gz +0 -0
  371. codex/static_root/assets/confirm-dialog-B7ndwV5M.d1f0728d4bd0.js.br +0 -0
  372. codex/static_root/assets/confirm-dialog-B7ndwV5M.d1f0728d4bd0.js.gz +0 -0
  373. codex/static_root/assets/confirm-dialog-B7ndwV5M.js.br +0 -0
  374. codex/static_root/assets/confirm-dialog-B7ndwV5M.js.gz +0 -0
  375. codex/static_root/assets/datetime-column-DANpNGGe.13985ff7d484.js.br +0 -0
  376. codex/static_root/assets/datetime-column-DANpNGGe.13985ff7d484.js.gz +0 -0
  377. codex/static_root/assets/datetime-column-DANpNGGe.js.br +0 -0
  378. codex/static_root/assets/datetime-column-DANpNGGe.js.gz +0 -0
  379. codex/static_root/assets/filter-Dhe8cVmt.ad92d3b618e3.js.br +0 -0
  380. codex/static_root/assets/filter-Dhe8cVmt.ad92d3b618e3.js.gz +0 -0
  381. codex/static_root/assets/filter-Dhe8cVmt.js.br +0 -0
  382. codex/static_root/assets/filter-Dhe8cVmt.js.gz +0 -0
  383. codex/static_root/assets/flag-tab-BZ9S7U8D.0b814b215567.js.br +0 -0
  384. codex/static_root/assets/flag-tab-BZ9S7U8D.0b814b215567.js.gz +0 -0
  385. codex/static_root/assets/flag-tab-BZ9S7U8D.js.br +0 -0
  386. codex/static_root/assets/flag-tab-BZ9S7U8D.js.gz +0 -0
  387. codex/static_root/assets/forwardRefs-Z0d4Mnc7.deb4e7a1b8b5.js.br +0 -0
  388. codex/static_root/assets/forwardRefs-Z0d4Mnc7.deb4e7a1b8b5.js.gz +0 -0
  389. codex/static_root/assets/forwardRefs-Z0d4Mnc7.js.br +0 -0
  390. codex/static_root/assets/forwardRefs-Z0d4Mnc7.js.gz +0 -0
  391. codex/static_root/assets/group-tab-B0ASBB3_.8e10b90ff052.js.br +0 -0
  392. codex/static_root/assets/group-tab-B0ASBB3_.8e10b90ff052.js.gz +0 -0
  393. codex/static_root/assets/group-tab-B0ASBB3_.js.br +0 -0
  394. codex/static_root/assets/group-tab-B0ASBB3_.js.gz +0 -0
  395. codex/static_root/assets/http-error-BP-mMZsK.72c4d00b40d2.js.br +0 -0
  396. codex/static_root/assets/http-error-BP-mMZsK.72c4d00b40d2.js.gz +0 -0
  397. codex/static_root/assets/http-error-BP-mMZsK.js.br +0 -0
  398. codex/static_root/assets/http-error-BP-mMZsK.js.gz +0 -0
  399. codex/static_root/assets/index-Cu9nQXJD.49795921eada.js.br +0 -0
  400. codex/static_root/assets/index-Cu9nQXJD.49795921eada.js.gz +0 -0
  401. codex/static_root/assets/index-Cu9nQXJD.js.br +0 -0
  402. codex/static_root/assets/index-Cu9nQXJD.js.gz +0 -0
  403. codex/static_root/assets/library-tab-8g2eSuGN.846cc1674a67.js +0 -1
  404. codex/static_root/assets/library-tab-8g2eSuGN.846cc1674a67.js.br +0 -0
  405. codex/static_root/assets/library-tab-8g2eSuGN.846cc1674a67.js.gz +0 -0
  406. codex/static_root/assets/library-tab-8g2eSuGN.js +0 -1
  407. codex/static_root/assets/library-tab-8g2eSuGN.js.br +0 -0
  408. codex/static_root/assets/library-tab-8g2eSuGN.js.gz +0 -0
  409. codex/static_root/assets/library-tab-D9lxhAqv.02f7064c20f3.css.br +0 -0
  410. codex/static_root/assets/library-tab-D9lxhAqv.02f7064c20f3.css.gz +0 -0
  411. codex/static_root/assets/library-tab-D9lxhAqv.css.br +0 -0
  412. codex/static_root/assets/library-tab-D9lxhAqv.css.gz +0 -0
  413. codex/static_root/assets/main-BoAlbVoF.e41ba211717d.js +0 -39
  414. codex/static_root/assets/main-BoAlbVoF.e41ba211717d.js.br +0 -0
  415. codex/static_root/assets/main-BoAlbVoF.e41ba211717d.js.gz +0 -0
  416. codex/static_root/assets/main-BoAlbVoF.js +0 -39
  417. codex/static_root/assets/main-BoAlbVoF.js.br +0 -0
  418. codex/static_root/assets/main-BoAlbVoF.js.gz +0 -0
  419. codex/static_root/assets/pager-full-pdf-DShiSKPO.026946648650.js +0 -1
  420. codex/static_root/assets/pager-full-pdf-DShiSKPO.026946648650.js.br +0 -0
  421. codex/static_root/assets/pager-full-pdf-DShiSKPO.026946648650.js.gz +0 -0
  422. codex/static_root/assets/pager-full-pdf-DShiSKPO.js +0 -1
  423. codex/static_root/assets/pager-full-pdf-DShiSKPO.js.br +0 -0
  424. codex/static_root/assets/pager-full-pdf-DShiSKPO.js.gz +0 -0
  425. codex/static_root/assets/pagination-toolbar-DGfRDeRW.c3f463ad6edd.js.br +0 -0
  426. codex/static_root/assets/pagination-toolbar-DGfRDeRW.c3f463ad6edd.js.gz +0 -0
  427. codex/static_root/assets/pagination-toolbar-DGfRDeRW.js.br +0 -0
  428. codex/static_root/assets/pagination-toolbar-DGfRDeRW.js.gz +0 -0
  429. codex/static_root/assets/pdf-doc-D6Meu4vZ.91b43d057670.js.br +0 -0
  430. codex/static_root/assets/pdf-doc-D6Meu4vZ.91b43d057670.js.gz +0 -0
  431. codex/static_root/assets/pdf-doc-D6Meu4vZ.js.br +0 -0
  432. codex/static_root/assets/pdf-doc-D6Meu4vZ.js.gz +0 -0
  433. codex/static_root/assets/reader-CptqnqBZ.340bc756e164.js +0 -2
  434. codex/static_root/assets/reader-CptqnqBZ.340bc756e164.js.br +0 -0
  435. codex/static_root/assets/reader-CptqnqBZ.340bc756e164.js.gz +0 -0
  436. codex/static_root/assets/reader-CptqnqBZ.js +0 -2
  437. codex/static_root/assets/reader-CptqnqBZ.js.br +0 -0
  438. codex/static_root/assets/reader-CptqnqBZ.js.gz +0 -0
  439. codex/static_root/assets/reader-LwL05rgA.c022ad3b7b94.css.br +0 -0
  440. codex/static_root/assets/reader-LwL05rgA.c022ad3b7b94.css.gz +0 -0
  441. codex/static_root/assets/reader-LwL05rgA.css.br +0 -0
  442. codex/static_root/assets/reader-LwL05rgA.css.gz +0 -0
  443. codex/static_root/assets/relation-chips-CAXZIswb.e991a259ce59.js.br +0 -0
  444. codex/static_root/assets/relation-chips-CAXZIswb.e991a259ce59.js.gz +0 -0
  445. codex/static_root/assets/relation-chips-CAXZIswb.js.br +0 -0
  446. codex/static_root/assets/relation-chips-CAXZIswb.js.gz +0 -0
  447. codex/static_root/assets/settings-drawer-B4gD41g6.82718694498e.js.br +0 -0
  448. codex/static_root/assets/settings-drawer-B4gD41g6.82718694498e.js.gz +0 -0
  449. codex/static_root/assets/settings-drawer-B4gD41g6.js.br +0 -0
  450. codex/static_root/assets/settings-drawer-B4gD41g6.js.gz +0 -0
  451. codex/static_root/assets/ssrBoot-O6yTJ_UV.7180d77d283e.js.br +0 -0
  452. codex/static_root/assets/ssrBoot-O6yTJ_UV.7180d77d283e.js.gz +0 -0
  453. codex/static_root/assets/ssrBoot-O6yTJ_UV.js.br +0 -0
  454. codex/static_root/assets/ssrBoot-O6yTJ_UV.js.gz +0 -0
  455. codex/static_root/assets/stats-tab-BZjOg19A.afb2e6b0d648.js.br +0 -0
  456. codex/static_root/assets/stats-tab-BZjOg19A.afb2e6b0d648.js.gz +0 -0
  457. codex/static_root/assets/stats-tab-BZjOg19A.js.br +0 -0
  458. codex/static_root/assets/stats-tab-BZjOg19A.js.gz +0 -0
  459. codex/static_root/assets/task-tab-GP2jPkRE.cfdfb9396ec4.js +0 -1
  460. codex/static_root/assets/task-tab-GP2jPkRE.cfdfb9396ec4.js.br +0 -0
  461. codex/static_root/assets/task-tab-GP2jPkRE.cfdfb9396ec4.js.gz +0 -0
  462. codex/static_root/assets/task-tab-GP2jPkRE.js +0 -1
  463. codex/static_root/assets/task-tab-GP2jPkRE.js.br +0 -0
  464. codex/static_root/assets/task-tab-GP2jPkRE.js.gz +0 -0
  465. codex/static_root/assets/unauthorized-Bo3ThIrX.12d2efd95d7d.js.br +0 -0
  466. codex/static_root/assets/unauthorized-Bo3ThIrX.12d2efd95d7d.js.gz +0 -0
  467. codex/static_root/assets/unauthorized-Bo3ThIrX.js.br +0 -0
  468. codex/static_root/assets/unauthorized-Bo3ThIrX.js.gz +0 -0
  469. codex/static_root/assets/user-tab-BQ82qBg3.17190dc83452.js.br +0 -0
  470. codex/static_root/assets/user-tab-BQ82qBg3.17190dc83452.js.gz +0 -0
  471. codex/static_root/assets/user-tab-BQ82qBg3.js.br +0 -0
  472. codex/static_root/assets/user-tab-BQ82qBg3.js.gz +0 -0
  473. codex/static_root/manifest.0dc91d0dee6d.json.br +0 -0
  474. codex/static_root/manifest.0dc91d0dee6d.json.gz +0 -0
  475. {codex-1.8.0a2.dist-info → codex-1.8.0a4.dist-info}/WHEEL +0 -0
  476. {codex-1.8.0a2.dist-info → codex-1.8.0a4.dist-info}/entry_points.txt +0 -0
  477. {codex-1.8.0a2.dist-info → codex-1.8.0a4.dist-info}/licenses/LICENSE +0 -0
Binary file
Binary file
@@ -1 +1 @@
1
- {"paths": {"rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.3ca7a779b949.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.7329518c5972.svg", "img/series.svg": "img/series.b092bbac0c2a.svg", "img/volume.svg": "img/volume.516ec0c3018d.svg", "img/missing-cover-165.webp": "img/missing-cover-165.f4bb7740084c.webp", "img/logo-maskable.svg": "img/logo-maskable.aeef5c2fffc8.svg", "img/story-arc.svg": "img/story-arc.884f7b1d95bd.svg", "img/logo.svg": "img/logo.00c902973831.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.83168d8d3119.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/pager-full-pdf-DShiSKPO.js": "assets/pager-full-pdf-DShiSKPO.026946648650.js", "assets/VTable-CQyv0wyO.css": "assets/VTable-CQyv0wyO.1740239d481b.css", "assets/datetime-column-Bt7J1qEf.css": "assets/datetime-column-Bt7J1qEf.d83164b4d4cb.css", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/stats-tab-BZjOg19A.js": "assets/stats-tab-BZjOg19A.afb2e6b0d648.js", "assets/admin-menu-BNpuOmbI.js": "assets/admin-menu-BNpuOmbI.e1f62ba483cd.js", "assets/VWindowItem-BLEDgagD.js": "assets/VWindowItem-BLEDgagD.4b67c4a63c59.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/change-password-dialog-DyhQwNv1.js": "assets/change-password-dialog-DyhQwNv1.26383853ccc0.js", "assets/relation-chips-CcFgPQOM.css": "assets/relation-chips-CcFgPQOM.0b468249b62e.css", "assets/user-tab-BQ82qBg3.js": "assets/user-tab-BQ82qBg3.17190dc83452.js", "assets/VTable-BmOfHc7J.js": "assets/VTable-BmOfHc7J.b2e1311009d1.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/reader-LwL05rgA.css": "assets/reader-LwL05rgA.c022ad3b7b94.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/http-error-CB3k5P-n.css": "assets/http-error-CB3k5P-n.82d886ac81c7.css", "assets/VCheckboxBtn-Bu2Pf64q.js": "assets/VCheckboxBtn-Bu2Pf64q.d7463473d7a2.js", "assets/settings-drawer-CpS_aX4Z.css": "assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css", "assets/VForm-CyCdgusw.js": "assets/VForm-CyCdgusw.c737973a1e85.js", "assets/browser-Cdi7U5ku.css": "assets/browser-Cdi7U5ku.bab9fccf0326.css", "assets/VDialog-CpWjrJ0R.css": "assets/VDialog-CpWjrJ0R.610ffc6302d4.css", "assets/forwardRefs-B_sUWZn6.css": "assets/forwardRefs-B_sUWZn6.5114f206ca9c.css", "assets/http-error-BP-mMZsK.js": "assets/http-error-BP-mMZsK.72c4d00b40d2.js", "assets/admin-Bv40vYZw.js": "assets/admin-Bv40vYZw.8179e1ece835.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/group-tab-CQ_Qw6h8.css": "assets/group-tab-CQ_Qw6h8.078d0a9225ba.css", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/browser-plYso4v5.js": "assets/browser-plYso4v5.87ef04b44d37.js", "assets/VSelect-Dv50OIkN.js": "assets/VSelect-Dv50OIkN.390adb1fe7fa.js", "assets/confirm-dialog-B7ndwV5M.js": "assets/confirm-dialog-B7ndwV5M.d1f0728d4bd0.js", "assets/VCombobox-Uogv6Ckp.js": "assets/VCombobox-Uogv6Ckp.9f900e703605.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/VSelectionControl-DbKYScD5.js": "assets/VSelectionControl-DbKYScD5.8d2ab1ebe546.js", "assets/admin-kjMoKlqD.js": "assets/admin-kjMoKlqD.55a1dd908124.js", "assets/main-B8_0rUnw.css": "assets/main-B8_0rUnw.a9be0875ae25.css", "assets/pagination-toolbar-741OafNw.css": "assets/pagination-toolbar-741OafNw.4f9155469274.css", "assets/stats-tab-Dpqh5pF9.css": "assets/stats-tab-Dpqh5pF9.8dba36f90032.css", "assets/VCheckbox-DSndl51k.js": "assets/VCheckbox-DSndl51k.1e28c443c3cb.js", "assets/admin-settings-button-progress-RfwaqLl2.js": "assets/admin-settings-button-progress-RfwaqLl2.4cdd37d0dd16.js", "assets/pdf-doc-D6Meu4vZ.js": "assets/pdf-doc-D6Meu4vZ.91b43d057670.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/filter-Dhe8cVmt.js": "assets/filter-Dhe8cVmt.ad92d3b618e3.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/datetime-column-DANpNGGe.js": "assets/datetime-column-DANpNGGe.13985ff7d484.js", "assets/VDivider-C3ikm0Ko.js": "assets/VDivider-C3ikm0Ko.4938e9ced53e.js", "assets/admin-menu-hpyUS8ku.css": "assets/admin-menu-hpyUS8ku.18284a11084d.css", "assets/admin-DJCVf2PA.css": "assets/admin-DJCVf2PA.7ba26fd73264.css", "assets/VSelect-DQPZyfSb.css": "assets/VSelect-DQPZyfSb.57477277e7dd.css", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/VWindowItem-ChYLiXSE.css": "assets/VWindowItem-ChYLiXSE.a9c679a2977e.css", "assets/confirm-dialog-YfC8mRQA.css": "assets/confirm-dialog-YfC8mRQA.be37e8f67e0f.css", "assets/reader-CptqnqBZ.js": "assets/reader-CptqnqBZ.340bc756e164.js", "assets/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/library-tab-8g2eSuGN.js": "assets/library-tab-8g2eSuGN.846cc1674a67.js", "assets/VDialog-BzaGu1HN.js": "assets/VDialog-BzaGu1HN.34f52763c3f8.js", "assets/admin-settings-button-progress-Cks9_KN-.css": "assets/admin-settings-button-progress-Cks9_KN-.a592809d4008.css", "assets/ssrBoot-O6yTJ_UV.js": "assets/ssrBoot-O6yTJ_UV.7180d77d283e.js", "assets/library-tab-D9lxhAqv.css": "assets/library-tab-D9lxhAqv.02f7064c20f3.css", "assets/VExpansionPanels-AmsInZN0.js": "assets/VExpansionPanels-AmsInZN0.5cb7c833de3d.js", "assets/flag-tab-BZ9S7U8D.js": "assets/flag-tab-BZ9S7U8D.0b814b215567.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/settings-drawer-B4gD41g6.js": "assets/settings-drawer-B4gD41g6.82718694498e.js", "assets/group-tab-B0ASBB3_.js": "assets/group-tab-B0ASBB3_.8e10b90ff052.js", "assets/relation-chips-CAXZIswb.js": "assets/relation-chips-CAXZIswb.e991a259ce59.js", "assets/unauthorized-BBwsmi0O.css": "assets/unauthorized-BBwsmi0O.19d4882b821d.css", "assets/main-BoAlbVoF.js": "assets/main-BoAlbVoF.e41ba211717d.js", "assets/forwardRefs-Z0d4Mnc7.js": "assets/forwardRefs-Z0d4Mnc7.deb4e7a1b8b5.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/pagination-toolbar-DGfRDeRW.js": "assets/pagination-toolbar-DGfRDeRW.c3f463ad6edd.js", "assets/VRadioGroup-BF0Xjrzi.js": "assets/VRadioGroup-BF0Xjrzi.e54d2bf41bb2.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/index-Cu9nQXJD.js": "assets/index-Cu9nQXJD.49795921eada.js", "assets/task-tab-GP2jPkRE.js": "assets/task-tab-GP2jPkRE.cfdfb9396ec4.js", "assets/unauthorized-Bo3ThIrX.js": "assets/unauthorized-Bo3ThIrX.12d2efd95d7d.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.0dc91d0dee6d.json"}, "version": "1.1", "hash": "7a98511fc1f6"}
1
+ {"paths": {"rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.3ca7a779b949.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.7329518c5972.svg", "img/series.svg": "img/series.b092bbac0c2a.svg", "img/volume.svg": "img/volume.516ec0c3018d.svg", "img/missing-cover-165.webp": "img/missing-cover-165.f4bb7740084c.webp", "img/logo-maskable.svg": "img/logo-maskable.aeef5c2fffc8.svg", "img/story-arc.svg": "img/story-arc.884f7b1d95bd.svg", "img/logo.svg": "img/logo.00c902973831.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.83168d8d3119.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/VTable-CQyv0wyO.css": "assets/VTable-CQyv0wyO.1740239d481b.css", "assets/datetime-column-Bt7J1qEf.css": "assets/datetime-column-Bt7J1qEf.d83164b4d4cb.css", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/datetime-column-C544paek.js": "assets/datetime-column-C544paek.4b5c5cd44e86.js", "assets/group-tab-TNxZJJZ6.js": "assets/group-tab-TNxZJJZ6.6d88969a9263.js", "assets/pdf-doc-BeNzjayP.js": "assets/pdf-doc-BeNzjayP.e6b65a74287b.js", "assets/VForm-BZtlScrY.js": "assets/VForm-BZtlScrY.bf87851b598f.js", "assets/VRadioGroup-CRzhTpe9.js": "assets/VRadioGroup-CRzhTpe9.1fc9e0e7a980.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/stats-tab-D_Sf0W-w.js": "assets/stats-tab-D_Sf0W-w.7dd721aef1d7.js", "assets/relation-chips-CcFgPQOM.css": "assets/relation-chips-CcFgPQOM.0b468249b62e.css", "assets/ssrBoot-BUdwZUw6.js": "assets/ssrBoot-BUdwZUw6.964a0734eff2.js", "assets/confirm-dialog-D2RCUHSr.js": "assets/confirm-dialog-D2RCUHSr.ccb67b05d69e.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/pagination-toolbar-BqvFln9z.js": "assets/pagination-toolbar-BqvFln9z.d38452f8ce48.js", "assets/VCheckboxBtn-C44aiFUU.js": "assets/VCheckboxBtn-C44aiFUU.3d08a2da4b68.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/http-error-CB3k5P-n.css": "assets/http-error-CB3k5P-n.82d886ac81c7.css", "assets/user-tab-6FMrYQKf.js": "assets/user-tab-6FMrYQKf.ac405e881ade.js", "assets/settings-drawer-CpS_aX4Z.css": "assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css", "assets/admin-menu-B6raGfpC.js": "assets/admin-menu-B6raGfpC.790d01e1ec98.js", "assets/browser-Cdi7U5ku.css": "assets/browser-Cdi7U5ku.bab9fccf0326.css", "assets/VDialog-CpWjrJ0R.css": "assets/VDialog-CpWjrJ0R.610ffc6302d4.css", "assets/forwardRefs-B_sUWZn6.css": "assets/forwardRefs-B_sUWZn6.5114f206ca9c.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/group-tab-CQ_Qw6h8.css": "assets/group-tab-CQ_Qw6h8.078d0a9225ba.css", "assets/VSelectionControl-C0Md0bXa.js": "assets/VSelectionControl-C0Md0bXa.0b96d6d65ba2.js", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/admin-6qrzqcJO.js": "assets/admin-6qrzqcJO.2b8351e2c2c6.js", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/main-B8_0rUnw.css": "assets/main-B8_0rUnw.a9be0875ae25.css", "assets/VCheckbox--x5j8A4a.js": "assets/VCheckbox--x5j8A4a.47af0eec9cc5.js", "assets/flag-tab-BVUqzGNH.js": "assets/flag-tab-BVUqzGNH.307659fba7b5.js", "assets/pagination-toolbar-741OafNw.css": "assets/pagination-toolbar-741OafNw.4f9155469274.css", "assets/stats-tab-Dpqh5pF9.css": "assets/stats-tab-Dpqh5pF9.8dba36f90032.css", "assets/VWindowItem-hsPEpCj_.js": "assets/VWindowItem-hsPEpCj_.4bf66f9ba4b1.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/settings-drawer-a2xwlRQb.js": "assets/settings-drawer-a2xwlRQb.41475006862d.js", "assets/library-tab-5StL67ei.css": "assets/library-tab-5StL67ei.0fad8998a237.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/VTable-lswnBwdy.js": "assets/VTable-lswnBwdy.f27115046a94.js", "assets/index-J6F_OMTQ.js": "assets/index-J6F_OMTQ.2a8861f7acc1.js", "assets/VDialog-BxuI97hb.js": "assets/VDialog-BxuI97hb.250bc105e373.js", "assets/admin-menu-hpyUS8ku.css": "assets/admin-menu-hpyUS8ku.18284a11084d.css", "assets/VSelect-_Cduank3.js": "assets/VSelect-_Cduank3.65530f781519.js", "assets/unauthorized-Bx_I2aj6.js": "assets/unauthorized-Bx_I2aj6.4846dbaf53c3.js", "assets/admin-DJCVf2PA.css": "assets/admin-DJCVf2PA.7ba26fd73264.css", "assets/http-error-D3uGBdtN.js": "assets/http-error-D3uGBdtN.39e149587f96.js", "assets/VSelect-DQPZyfSb.css": "assets/VSelect-DQPZyfSb.57477277e7dd.css", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/VCombobox-DuJ5WhJs.js": "assets/VCombobox-DuJ5WhJs.d4d57278cd15.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/VWindowItem-ChYLiXSE.css": "assets/VWindowItem-ChYLiXSE.a9c679a2977e.css", "assets/confirm-dialog-YfC8mRQA.css": "assets/confirm-dialog-YfC8mRQA.be37e8f67e0f.css", "assets/library-tab-DX9ZW9uM.js": "assets/library-tab-DX9ZW9uM.8419900ed9b8.js", "assets/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/VExpansionPanels-7DSA7BWQ.js": "assets/VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js", "assets/admin-settings-button-progress-Cks9_KN-.css": "assets/admin-settings-button-progress-Cks9_KN-.a592809d4008.css", "assets/relation-chips-BrO8HnXq.js": "assets/relation-chips-BrO8HnXq.fa4a7390c640.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/reader-HE07eoaG.css": "assets/reader-HE07eoaG.8626eeb7c718.css", "assets/pager-full-pdf-C8QcluEe.js": "assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js", "assets/VDivider-DSzkVD8n.js": "assets/VDivider-DSzkVD8n.9346c2b22bde.js", "assets/forwardRefs-Byns6lbl.js": "assets/forwardRefs-Byns6lbl.018798a57db2.js", "assets/admin-settings-button-progress-D0jgpe2z.js": "assets/admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js", "assets/unauthorized-BBwsmi0O.css": "assets/unauthorized-BBwsmi0O.19d4882b821d.css", "assets/admin-CVe4N6vl.js": "assets/admin-CVe4N6vl.5e8ec2bd60d3.js", "assets/change-password-dialog-f0bnLsTX.js": "assets/change-password-dialog-f0bnLsTX.ad5174bfd6b9.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/task-tab-CuZPm55f.js": "assets/task-tab-CuZPm55f.827f36543dcc.js", "assets/browser-DPWgTJvq.js": "assets/browser-DPWgTJvq.aa42fd45fdc5.js", "assets/filter-C2tmS7Gm.js": "assets/filter-C2tmS7Gm.59b3cb2ccc7e.js", "assets/main-CXE4elND.js": "assets/main-CXE4elND.b45c7c290af2.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/reader-DG9FVXqI.js": "assets/reader-DG9FVXqI.366a61e33d8b.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.dfd8ee684697.json"}, "version": "1.1", "hash": "8c586959e783"}
@@ -34,7 +34,10 @@ class AdminLibraryViewSet(AdminModelViewSet):
34
34
 
35
35
  queryset = (
36
36
  Library.objects.prefetch_related("groups")
37
- .annotate(comic_count=Count("comic"), failed_count=Count("failedimport"))
37
+ .annotate(
38
+ comic_count=Count("comic", distinct=True),
39
+ failed_count=Count("failedimport", distinct=True),
40
+ )
38
41
  .defer("update_in_progress", "created_at", "updated_at")
39
42
  )
40
43
  serializer_class = LibrarySerializer
@@ -4,6 +4,7 @@ from types import MappingProxyType
4
4
  from typing import Any
5
5
 
6
6
  from codex.serializers.browser.settings import BrowserSettingsSerializer
7
+ from codex.util import mapping_to_dict
7
8
  from codex.views.const import FOLDER_GROUP, STORY_ARC_GROUP
8
9
  from codex.views.session import SessionView
9
10
 
@@ -18,6 +19,21 @@ class BrowserParamsView(SessionView):
18
19
  super().__init__(*args, **kwargs)
19
20
  self._params: MappingProxyType[str, Any] | None = None
20
21
 
22
+ def _get_order_defaults(self) -> dict:
23
+ if group := self.kwargs.get("group"):
24
+ # order_by has a dynamic group based default
25
+ order_by = (
26
+ "filename"
27
+ if group == FOLDER_GROUP
28
+ else "story_arc_number"
29
+ if group == STORY_ARC_GROUP
30
+ else "sort_name"
31
+ )
32
+ order_defaults = {"order_by": order_by}
33
+ else:
34
+ order_defaults = {}
35
+ return order_defaults
36
+
21
37
  @property
22
38
  def params(self):
23
39
  """Validate submitted settings and apply them over the session settings."""
@@ -25,23 +41,11 @@ class BrowserParamsView(SessionView):
25
41
  serializer = self.input_serializer_class(data=self.request.GET)
26
42
  serializer.is_valid(raise_exception=True)
27
43
 
28
- params: dict[str, Any] = {}
29
- defaults = self.SESSION_DEFAULTS[self.SESSION_KEY]
30
- params.update(defaults)
31
- group = self.kwargs.get("group")
32
- if group:
33
- # order_by has a dynamic group based default
34
- order_defaults = {
35
- "order_by": "filename"
36
- if group == FOLDER_GROUP
37
- else "story_arc_number"
38
- if group == STORY_ARC_GROUP
39
- else "sort_name"
40
- }
44
+ params = mapping_to_dict(self.SESSION_DEFAULTS[self.SESSION_KEY])
45
+ if serializer.validated_data:
46
+ params.update(serializer.validated_data)
47
+ if order_defaults := self._get_order_defaults():
41
48
  params.update(order_defaults)
42
- validated_data = serializer.validated_data
43
-
44
- if validated_data:
45
- params.update(validated_data)
49
+ self.save_params_to_session(params)
46
50
  self._params = MappingProxyType(params)
47
51
  return self._params
@@ -1,6 +1,7 @@
1
1
  """Reader get Arcs methods."""
2
2
 
3
3
  from collections.abc import Mapping
4
+ from datetime import datetime, timezone
4
5
  from types import MappingProxyType
5
6
 
6
7
  from codex.choices.admin import AdminFlagChoices
@@ -19,6 +20,7 @@ from codex.views.reader.params import ReaderParamsView
19
20
  _COMIC_ARC_FIELD_NAMES = ("series", "volume", "parent_folder")
20
21
  _STORY_ARC_ONLY = ("name", "ids", "updated_ats")
21
22
  _BROWSE_GROUP_SET = frozenset("rpisv")
23
+ _UPDATED_ATS_DATE_FORMAT_STR = "%Y-%m-%d %H:%M:%S.%f"
22
24
 
23
25
 
24
26
  class ReaderArcsView(ReaderParamsView):
@@ -108,20 +110,28 @@ class ReaderArcsView(ReaderParamsView):
108
110
  def _get_story_arcs(self, comic: Comic, arcs, max_mtime: int | None):
109
111
  """Append the story arcs."""
110
112
  qs = StoryArc.objects.filter(storyarcnumber__comic__pk=comic.pk)
111
- qs = qs.group_by("sort_name") # pyright: ignore[reportAttributeAccessIssue]
112
- qs = qs.annotate(ids=JsonGroupArray("id", distinct=True))
113
- qs = qs.annotate(updated_ats=JsonGroupArray("updated_at", distinct=True))
114
- qs = qs.order_by("sort_name").values(*_STORY_ARC_ONLY)
115
-
116
113
  if not qs.exists():
117
114
  return max_mtime
118
115
 
116
+ qs = qs.group_by("sort_name") # pyright: ignore[reportAttributeAccessIssue]
117
+ qs = qs.annotate(
118
+ ids=JsonGroupArray("id", distinct=True),
119
+ updated_ats=JsonGroupArray("updated_at", distinct=True),
120
+ )
121
+ qs = qs.order_by("sort_name").only("name")
122
+
119
123
  arcs[STORY_ARC_GROUP] = {}
120
124
 
121
125
  for sa in qs:
122
126
  arc = {"name": sa.name}
123
127
  ids = tuple(sorted(set(sa.ids)))
124
- mtime = max_none(EPOCH_START, *sa.updated_ats)
128
+ updated_ats = (
129
+ datetime.strptime(ua, _UPDATED_ATS_DATE_FORMAT_STR).replace(
130
+ tzinfo=timezone.utc
131
+ )
132
+ for ua in sa.updated_ats
133
+ )
134
+ mtime = max_none(EPOCH_START, *updated_ats)
125
135
  arc["mtime"] = mtime
126
136
  max_mtime = max_none(max_mtime, mtime)
127
137
  arcs[STORY_ARC_GROUP][ids] = arc
@@ -59,8 +59,11 @@ class ReaderParamsView(SessionView):
59
59
  serializer = self.input_serializer_class(data=self.request.GET)
60
60
  serializer.is_valid(raise_exception=True)
61
61
 
62
- params: dict = mapping_to_dict(serializer.validated_data) # pyright: ignore[reportAssignmentType]
62
+ params = mapping_to_dict(dict(self.SESSION_DEFAULTS[self.SESSION_KEY]))
63
+ if serializer.validated_data:
64
+ params.update(serializer.validated_data)
63
65
  self._ensure_arc(params)
66
+ self.save_params_to_session(params)
64
67
  self._params = MappingProxyType(params)
65
68
  except Exception:
66
69
  logger.exception("validate")
codex/views/session.py CHANGED
@@ -131,6 +131,7 @@ class SessionView(AuthFilterGenericAPIView, ABC):
131
131
  params = deepcopy(dict(params))
132
132
  defaults = mapping_to_dict(self.SESSION_DEFAULTS[self.SESSION_KEY])
133
133
  data = self._get_source_values_or_set_defaults(defaults, params, {})
134
+ data = mapping_to_dict(data)
134
135
  self.request.session[self.SESSION_KEY] = data
135
136
  self.request.session.save()
136
137
  except Exception as exc:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex
3
- Version: 1.8.0a2
3
+ Version: 1.8.0a4
4
4
  Summary: A comic archive web server.
5
5
  Project-URL: News, https://github.com/ajslater/codex/blob/main/NEWS.md
6
6
  Project-URL: Docker Image, https://hub.docker.com/r/ajslater/codex
@@ -28,7 +28,7 @@ Requires-Dist: aioprocessing~=2.0
28
28
  Requires-Dist: ansicolors~=1.1
29
29
  Requires-Dist: bidict~=0.23
30
30
  Requires-Dist: channels~=4.2
31
- Requires-Dist: comicbox[pdf]~=2.0.0a31
31
+ Requires-Dist: comicbox[pdf]~=2.0.0a32
32
32
  Requires-Dist: dateparser~=1.2
33
33
  Requires-Dist: django-cachalot~=2.7.dev0
34
34
  Requires-Dist: django-cors-headers~=4.0