codex 1.8.0a2__py3-none-any.whl → 1.8.0a3__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 +100 -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 +20 -9
  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 +41 -20
  29. codex/librarian/watchdog/const.py +30 -1
  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-DOvv8UEO.e3653c1670c8.js} +1 -1
  36. codex/static_root/assets/VCheckbox-DOvv8UEO.e3653c1670c8.js.br +0 -0
  37. codex/static_root/assets/VCheckbox-DOvv8UEO.e3653c1670c8.js.gz +0 -0
  38. codex/static_root/assets/{VCheckbox-DSndl51k.js → VCheckbox-DOvv8UEO.js} +1 -1
  39. codex/static_root/assets/VCheckbox-DOvv8UEO.js.br +0 -0
  40. codex/static_root/assets/VCheckbox-DOvv8UEO.js.gz +0 -0
  41. codex/static_root/assets/{VCheckboxBtn-Bu2Pf64q.d7463473d7a2.js → VCheckboxBtn-BeZZDumo.59731a32657e.js} +1 -1
  42. codex/static_root/assets/VCheckboxBtn-BeZZDumo.59731a32657e.js.br +0 -0
  43. codex/static_root/assets/VCheckboxBtn-BeZZDumo.59731a32657e.js.gz +0 -0
  44. codex/static_root/assets/{VCheckboxBtn-Bu2Pf64q.js → VCheckboxBtn-BeZZDumo.js} +1 -1
  45. codex/static_root/assets/VCheckboxBtn-BeZZDumo.js.br +0 -0
  46. codex/static_root/assets/VCheckboxBtn-BeZZDumo.js.gz +0 -0
  47. codex/static_root/assets/{VCombobox-Uogv6Ckp.9f900e703605.js → VCombobox-BRJRW2px.369544360b22.js} +1 -1
  48. codex/static_root/assets/VCombobox-BRJRW2px.369544360b22.js.br +0 -0
  49. codex/static_root/assets/VCombobox-BRJRW2px.369544360b22.js.gz +0 -0
  50. codex/static_root/assets/{VCombobox-Uogv6Ckp.js → VCombobox-BRJRW2px.js} +1 -1
  51. codex/static_root/assets/VCombobox-BRJRW2px.js.br +0 -0
  52. codex/static_root/assets/VCombobox-BRJRW2px.js.gz +0 -0
  53. codex/static_root/assets/{VDialog-BzaGu1HN.34f52763c3f8.js → VDialog-D_vkvatj.83e078fa850c.js} +1 -1
  54. codex/static_root/assets/VDialog-D_vkvatj.83e078fa850c.js.br +0 -0
  55. codex/static_root/assets/VDialog-D_vkvatj.83e078fa850c.js.gz +0 -0
  56. codex/static_root/assets/{VDialog-BzaGu1HN.js → VDialog-D_vkvatj.js} +1 -1
  57. codex/static_root/assets/VDialog-D_vkvatj.js.br +0 -0
  58. codex/static_root/assets/VDialog-D_vkvatj.js.gz +0 -0
  59. codex/static_root/assets/{VDivider-C3ikm0Ko.4938e9ced53e.js → VDivider-BH2Oj58Z.83d2c907faff.js} +1 -1
  60. codex/static_root/assets/VDivider-BH2Oj58Z.83d2c907faff.js.br +0 -0
  61. codex/static_root/assets/VDivider-BH2Oj58Z.83d2c907faff.js.gz +0 -0
  62. codex/static_root/assets/{VDivider-C3ikm0Ko.js → VDivider-BH2Oj58Z.js} +1 -1
  63. codex/static_root/assets/VDivider-BH2Oj58Z.js.br +0 -0
  64. codex/static_root/assets/VDivider-BH2Oj58Z.js.gz +0 -0
  65. codex/static_root/assets/{VExpansionPanels-AmsInZN0.5cb7c833de3d.js → VExpansionPanels-Ccv4gBFD.ed063db2e518.js} +1 -1
  66. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.ed063db2e518.js.br +0 -0
  67. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.ed063db2e518.js.gz +0 -0
  68. codex/static_root/assets/{VExpansionPanels-AmsInZN0.js → VExpansionPanels-Ccv4gBFD.js} +1 -1
  69. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.js.br +0 -0
  70. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.js.gz +0 -0
  71. codex/static_root/assets/{VForm-CyCdgusw.c737973a1e85.js → VForm-S5eiHGJ0.d304a07dc6d1.js} +1 -1
  72. codex/static_root/assets/VForm-S5eiHGJ0.d304a07dc6d1.js.br +0 -0
  73. codex/static_root/assets/VForm-S5eiHGJ0.d304a07dc6d1.js.gz +0 -0
  74. codex/static_root/assets/{VForm-CyCdgusw.js → VForm-S5eiHGJ0.js} +1 -1
  75. codex/static_root/assets/VForm-S5eiHGJ0.js.br +0 -0
  76. codex/static_root/assets/VForm-S5eiHGJ0.js.gz +0 -0
  77. codex/static_root/assets/{VRadioGroup-BF0Xjrzi.e54d2bf41bb2.js → VRadioGroup-CyCYk3Z_.4309dbf0173c.js} +1 -1
  78. codex/static_root/assets/VRadioGroup-CyCYk3Z_.4309dbf0173c.js.br +0 -0
  79. codex/static_root/assets/VRadioGroup-CyCYk3Z_.4309dbf0173c.js.gz +0 -0
  80. codex/static_root/assets/{VRadioGroup-BF0Xjrzi.js → VRadioGroup-CyCYk3Z_.js} +1 -1
  81. codex/static_root/assets/VRadioGroup-CyCYk3Z_.js.br +0 -0
  82. codex/static_root/assets/VRadioGroup-CyCYk3Z_.js.gz +0 -0
  83. codex/static_root/assets/{VSelect-Dv50OIkN.js → VSelect-BOhtkCV1.057479737b7f.js} +1 -1
  84. codex/static_root/assets/VSelect-BOhtkCV1.057479737b7f.js.br +0 -0
  85. codex/static_root/assets/VSelect-BOhtkCV1.057479737b7f.js.gz +0 -0
  86. codex/static_root/assets/{VSelect-Dv50OIkN.390adb1fe7fa.js → VSelect-BOhtkCV1.js} +1 -1
  87. codex/static_root/assets/VSelect-BOhtkCV1.js.br +0 -0
  88. codex/static_root/assets/VSelect-BOhtkCV1.js.gz +0 -0
  89. codex/static_root/assets/{VSelectionControl-DbKYScD5.js → VSelectionControl-CmXEFw20.e256f0d0f97d.js} +1 -1
  90. codex/static_root/assets/VSelectionControl-CmXEFw20.e256f0d0f97d.js.br +0 -0
  91. codex/static_root/assets/VSelectionControl-CmXEFw20.e256f0d0f97d.js.gz +0 -0
  92. codex/static_root/assets/{VSelectionControl-DbKYScD5.8d2ab1ebe546.js → VSelectionControl-CmXEFw20.js} +1 -1
  93. codex/static_root/assets/VSelectionControl-CmXEFw20.js.br +0 -0
  94. codex/static_root/assets/VSelectionControl-CmXEFw20.js.gz +0 -0
  95. codex/static_root/assets/{VTable-BmOfHc7J.b2e1311009d1.js → VTable-BDxzw_rH.24ce227e6076.js} +1 -1
  96. codex/static_root/assets/VTable-BDxzw_rH.24ce227e6076.js.br +0 -0
  97. codex/static_root/assets/VTable-BDxzw_rH.24ce227e6076.js.gz +0 -0
  98. codex/static_root/assets/{VTable-BmOfHc7J.js → VTable-BDxzw_rH.js} +1 -1
  99. codex/static_root/assets/VTable-BDxzw_rH.js.br +0 -0
  100. codex/static_root/assets/VTable-BDxzw_rH.js.gz +0 -0
  101. codex/static_root/assets/{VWindowItem-BLEDgagD.4b67c4a63c59.js → VWindowItem-CuDwxsEy.4d68002250ae.js} +1 -1
  102. codex/static_root/assets/VWindowItem-CuDwxsEy.4d68002250ae.js.br +0 -0
  103. codex/static_root/assets/VWindowItem-CuDwxsEy.4d68002250ae.js.gz +0 -0
  104. codex/static_root/assets/{VWindowItem-BLEDgagD.js → VWindowItem-CuDwxsEy.js} +1 -1
  105. codex/static_root/assets/VWindowItem-CuDwxsEy.js.br +0 -0
  106. codex/static_root/assets/VWindowItem-CuDwxsEy.js.gz +0 -0
  107. codex/static_root/assets/{admin-kjMoKlqD.55a1dd908124.js → admin-BZQmoFts.d8e6303f8aee.js} +1 -1
  108. codex/static_root/assets/admin-BZQmoFts.d8e6303f8aee.js.br +0 -0
  109. codex/static_root/assets/admin-BZQmoFts.d8e6303f8aee.js.gz +0 -0
  110. codex/static_root/assets/{admin-kjMoKlqD.js → admin-BZQmoFts.js} +1 -1
  111. codex/static_root/assets/admin-BZQmoFts.js.br +0 -0
  112. codex/static_root/assets/admin-BZQmoFts.js.gz +0 -0
  113. codex/static_root/assets/{admin-Bv40vYZw.8179e1ece835.js → admin-U3AawSbo.f171316d0a93.js} +1 -1
  114. codex/static_root/assets/admin-U3AawSbo.f171316d0a93.js.br +0 -0
  115. codex/static_root/assets/admin-U3AawSbo.f171316d0a93.js.gz +0 -0
  116. codex/static_root/assets/{admin-Bv40vYZw.js → admin-U3AawSbo.js} +1 -1
  117. codex/static_root/assets/admin-U3AawSbo.js.br +0 -0
  118. codex/static_root/assets/admin-U3AawSbo.js.gz +0 -0
  119. codex/static_root/assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js +1 -0
  120. codex/static_root/assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js.br +0 -0
  121. codex/static_root/assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js.gz +0 -0
  122. codex/static_root/assets/admin-menu-D9RDVBlr.js +1 -0
  123. codex/static_root/assets/admin-menu-D9RDVBlr.js.br +0 -0
  124. codex/static_root/assets/admin-menu-D9RDVBlr.js.gz +0 -0
  125. codex/static_root/assets/{admin-settings-button-progress-RfwaqLl2.4cdd37d0dd16.js → admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js} +1 -1
  126. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js.br +0 -0
  127. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js.gz +0 -0
  128. codex/static_root/assets/{admin-settings-button-progress-RfwaqLl2.js → admin-settings-button-progress-DwWq9uM1.js} +1 -1
  129. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.js.br +0 -0
  130. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.js.gz +0 -0
  131. codex/static_root/assets/{browser-plYso4v5.js → browser-DFM_JsAK.bffd4eb259d8.js} +1 -1
  132. codex/static_root/assets/browser-DFM_JsAK.bffd4eb259d8.js.br +0 -0
  133. codex/static_root/assets/browser-DFM_JsAK.bffd4eb259d8.js.gz +0 -0
  134. codex/static_root/assets/{browser-plYso4v5.87ef04b44d37.js → browser-DFM_JsAK.js} +1 -1
  135. codex/static_root/assets/browser-DFM_JsAK.js.br +0 -0
  136. codex/static_root/assets/browser-DFM_JsAK.js.gz +0 -0
  137. codex/static_root/assets/{change-password-dialog-DyhQwNv1.26383853ccc0.js → change-password-dialog-yLNkzMp9.50da9f352709.js} +1 -1
  138. codex/static_root/assets/change-password-dialog-yLNkzMp9.50da9f352709.js.br +0 -0
  139. codex/static_root/assets/change-password-dialog-yLNkzMp9.50da9f352709.js.gz +0 -0
  140. codex/static_root/assets/{change-password-dialog-DyhQwNv1.js → change-password-dialog-yLNkzMp9.js} +1 -1
  141. codex/static_root/assets/change-password-dialog-yLNkzMp9.js.br +0 -0
  142. codex/static_root/assets/change-password-dialog-yLNkzMp9.js.gz +0 -0
  143. codex/static_root/assets/{confirm-dialog-B7ndwV5M.d1f0728d4bd0.js → confirm-dialog-q6RAb_qs.120460c84883.js} +1 -1
  144. codex/static_root/assets/confirm-dialog-q6RAb_qs.120460c84883.js.br +0 -0
  145. codex/static_root/assets/confirm-dialog-q6RAb_qs.120460c84883.js.gz +0 -0
  146. codex/static_root/assets/{confirm-dialog-B7ndwV5M.js → confirm-dialog-q6RAb_qs.js} +1 -1
  147. codex/static_root/assets/confirm-dialog-q6RAb_qs.js.br +0 -0
  148. codex/static_root/assets/confirm-dialog-q6RAb_qs.js.gz +0 -0
  149. codex/static_root/assets/{datetime-column-DANpNGGe.13985ff7d484.js → datetime-column-HJ5dvW99.ba0a30b3fc0d.js} +1 -1
  150. codex/static_root/assets/datetime-column-HJ5dvW99.ba0a30b3fc0d.js.br +0 -0
  151. codex/static_root/assets/datetime-column-HJ5dvW99.ba0a30b3fc0d.js.gz +0 -0
  152. codex/static_root/assets/{datetime-column-DANpNGGe.js → datetime-column-HJ5dvW99.js} +1 -1
  153. codex/static_root/assets/datetime-column-HJ5dvW99.js.br +0 -0
  154. codex/static_root/assets/datetime-column-HJ5dvW99.js.gz +0 -0
  155. codex/static_root/assets/{filter-Dhe8cVmt.ad92d3b618e3.js → filter-r_zFj-tS.161a85ef1860.js} +1 -1
  156. codex/static_root/assets/filter-r_zFj-tS.161a85ef1860.js.br +0 -0
  157. codex/static_root/assets/filter-r_zFj-tS.161a85ef1860.js.gz +0 -0
  158. codex/static_root/assets/{filter-Dhe8cVmt.js → filter-r_zFj-tS.js} +1 -1
  159. codex/static_root/assets/filter-r_zFj-tS.js.br +0 -0
  160. codex/static_root/assets/filter-r_zFj-tS.js.gz +0 -0
  161. codex/static_root/assets/{flag-tab-BZ9S7U8D.0b814b215567.js → flag-tab-D0Z4uhsg.06e720e71319.js} +1 -1
  162. codex/static_root/assets/flag-tab-D0Z4uhsg.06e720e71319.js.br +0 -0
  163. codex/static_root/assets/flag-tab-D0Z4uhsg.06e720e71319.js.gz +0 -0
  164. codex/static_root/assets/{flag-tab-BZ9S7U8D.js → flag-tab-D0Z4uhsg.js} +1 -1
  165. codex/static_root/assets/flag-tab-D0Z4uhsg.js.br +0 -0
  166. codex/static_root/assets/flag-tab-D0Z4uhsg.js.gz +0 -0
  167. codex/static_root/assets/{forwardRefs-Z0d4Mnc7.js → forwardRefs-Nj5UEeg5.50a55d7d8b68.js} +1 -1
  168. codex/static_root/assets/forwardRefs-Nj5UEeg5.50a55d7d8b68.js.br +0 -0
  169. codex/static_root/assets/forwardRefs-Nj5UEeg5.50a55d7d8b68.js.gz +0 -0
  170. codex/static_root/assets/{forwardRefs-Z0d4Mnc7.deb4e7a1b8b5.js → forwardRefs-Nj5UEeg5.js} +1 -1
  171. codex/static_root/assets/forwardRefs-Nj5UEeg5.js.br +0 -0
  172. codex/static_root/assets/forwardRefs-Nj5UEeg5.js.gz +0 -0
  173. codex/static_root/assets/{group-tab-B0ASBB3_.8e10b90ff052.js → group-tab-lamd9pcq.604a78bd4e4f.js} +1 -1
  174. codex/static_root/assets/group-tab-lamd9pcq.604a78bd4e4f.js.br +0 -0
  175. codex/static_root/assets/group-tab-lamd9pcq.604a78bd4e4f.js.gz +0 -0
  176. codex/static_root/assets/{group-tab-B0ASBB3_.js → group-tab-lamd9pcq.js} +1 -1
  177. codex/static_root/assets/group-tab-lamd9pcq.js.br +0 -0
  178. codex/static_root/assets/group-tab-lamd9pcq.js.gz +0 -0
  179. codex/static_root/assets/{http-error-BP-mMZsK.72c4d00b40d2.js → http-error-DRYA5ir1.46f4babacf15.js} +1 -1
  180. codex/static_root/assets/http-error-DRYA5ir1.46f4babacf15.js.br +0 -0
  181. codex/static_root/assets/http-error-DRYA5ir1.46f4babacf15.js.gz +0 -0
  182. codex/static_root/assets/{http-error-BP-mMZsK.js → http-error-DRYA5ir1.js} +1 -1
  183. codex/static_root/assets/http-error-DRYA5ir1.js.br +0 -0
  184. codex/static_root/assets/http-error-DRYA5ir1.js.gz +0 -0
  185. codex/static_root/assets/{index-Cu9nQXJD.49795921eada.js → index-Cl7tPJIx.c0a239cf7069.js} +1 -1
  186. codex/static_root/assets/index-Cl7tPJIx.c0a239cf7069.js.br +0 -0
  187. codex/static_root/assets/index-Cl7tPJIx.c0a239cf7069.js.gz +0 -0
  188. codex/static_root/assets/{index-Cu9nQXJD.js → index-Cl7tPJIx.js} +1 -1
  189. codex/static_root/assets/index-Cl7tPJIx.js.br +0 -0
  190. codex/static_root/assets/index-Cl7tPJIx.js.gz +0 -0
  191. codex/static_root/assets/library-tab-2UucZZAW.f4541a086231.js +1 -0
  192. codex/static_root/assets/library-tab-2UucZZAW.f4541a086231.js.br +0 -0
  193. codex/static_root/assets/library-tab-2UucZZAW.f4541a086231.js.gz +0 -0
  194. codex/static_root/assets/library-tab-2UucZZAW.js +1 -0
  195. codex/static_root/assets/library-tab-2UucZZAW.js.br +0 -0
  196. codex/static_root/assets/library-tab-2UucZZAW.js.gz +0 -0
  197. codex/static_root/assets/{library-tab-D9lxhAqv.02f7064c20f3.css → library-tab-5StL67ei.0fad8998a237.css} +1 -1
  198. codex/static_root/assets/library-tab-5StL67ei.0fad8998a237.css.br +0 -0
  199. codex/static_root/assets/library-tab-5StL67ei.0fad8998a237.css.gz +0 -0
  200. codex/static_root/assets/{library-tab-D9lxhAqv.css → library-tab-5StL67ei.css} +1 -1
  201. codex/static_root/assets/library-tab-5StL67ei.css.br +0 -0
  202. codex/static_root/assets/library-tab-5StL67ei.css.gz +0 -0
  203. codex/static_root/assets/main-BX4TjIpG.dc79406e2a7b.js +39 -0
  204. codex/static_root/assets/main-BX4TjIpG.dc79406e2a7b.js.br +0 -0
  205. codex/static_root/assets/main-BX4TjIpG.dc79406e2a7b.js.gz +0 -0
  206. codex/static_root/assets/main-BX4TjIpG.js +39 -0
  207. codex/static_root/assets/main-BX4TjIpG.js.br +0 -0
  208. codex/static_root/assets/main-BX4TjIpG.js.gz +0 -0
  209. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js +1 -0
  210. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js.br +0 -0
  211. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js.gz +0 -0
  212. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js +1 -0
  213. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js.br +0 -0
  214. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js.gz +0 -0
  215. codex/static_root/assets/{pagination-toolbar-DGfRDeRW.c3f463ad6edd.js → pagination-toolbar-48pwYEe_.892375c5aa51.js} +1 -1
  216. codex/static_root/assets/pagination-toolbar-48pwYEe_.892375c5aa51.js.br +0 -0
  217. codex/static_root/assets/pagination-toolbar-48pwYEe_.892375c5aa51.js.gz +0 -0
  218. codex/static_root/assets/{pagination-toolbar-DGfRDeRW.js → pagination-toolbar-48pwYEe_.js} +1 -1
  219. codex/static_root/assets/pagination-toolbar-48pwYEe_.js.br +0 -0
  220. codex/static_root/assets/pagination-toolbar-48pwYEe_.js.gz +0 -0
  221. codex/static_root/assets/{pdf-doc-D6Meu4vZ.91b43d057670.js → pdf-doc-GyrCvyP5.54b26ba8d93c.js} +14 -14
  222. codex/static_root/assets/pdf-doc-GyrCvyP5.54b26ba8d93c.js.br +0 -0
  223. codex/static_root/assets/pdf-doc-GyrCvyP5.54b26ba8d93c.js.gz +0 -0
  224. codex/static_root/assets/{pdf-doc-D6Meu4vZ.js → pdf-doc-GyrCvyP5.js} +14 -14
  225. codex/static_root/assets/pdf-doc-GyrCvyP5.js.br +0 -0
  226. codex/static_root/assets/pdf-doc-GyrCvyP5.js.gz +0 -0
  227. codex/static_root/assets/{reader-LwL05rgA.c022ad3b7b94.css → reader-HE07eoaG.8626eeb7c718.css} +1 -1
  228. codex/static_root/assets/reader-HE07eoaG.8626eeb7c718.css.br +0 -0
  229. codex/static_root/assets/reader-HE07eoaG.8626eeb7c718.css.gz +0 -0
  230. codex/static_root/assets/{reader-LwL05rgA.css → reader-HE07eoaG.css} +1 -1
  231. codex/static_root/assets/reader-HE07eoaG.css.br +0 -0
  232. codex/static_root/assets/reader-HE07eoaG.css.gz +0 -0
  233. codex/static_root/assets/reader-lmk4MiSj.9239243e1be1.js +2 -0
  234. codex/static_root/assets/reader-lmk4MiSj.9239243e1be1.js.br +0 -0
  235. codex/static_root/assets/reader-lmk4MiSj.9239243e1be1.js.gz +0 -0
  236. codex/static_root/assets/reader-lmk4MiSj.js +2 -0
  237. codex/static_root/assets/reader-lmk4MiSj.js.br +0 -0
  238. codex/static_root/assets/reader-lmk4MiSj.js.gz +0 -0
  239. codex/static_root/assets/{relation-chips-CAXZIswb.e991a259ce59.js → relation-chips-Dgb6LQdZ.c028ab2df979.js} +1 -1
  240. codex/static_root/assets/relation-chips-Dgb6LQdZ.c028ab2df979.js.br +0 -0
  241. codex/static_root/assets/relation-chips-Dgb6LQdZ.c028ab2df979.js.gz +0 -0
  242. codex/static_root/assets/{relation-chips-CAXZIswb.js → relation-chips-Dgb6LQdZ.js} +1 -1
  243. codex/static_root/assets/relation-chips-Dgb6LQdZ.js.br +0 -0
  244. codex/static_root/assets/relation-chips-Dgb6LQdZ.js.gz +0 -0
  245. codex/static_root/assets/{settings-drawer-B4gD41g6.js → settings-drawer-CRmLEncr.6937d45e18af.js} +2 -2
  246. codex/static_root/assets/settings-drawer-CRmLEncr.6937d45e18af.js.br +0 -0
  247. codex/static_root/assets/settings-drawer-CRmLEncr.6937d45e18af.js.gz +0 -0
  248. codex/static_root/assets/{settings-drawer-B4gD41g6.82718694498e.js → settings-drawer-CRmLEncr.js} +2 -2
  249. codex/static_root/assets/settings-drawer-CRmLEncr.js.br +0 -0
  250. codex/static_root/assets/settings-drawer-CRmLEncr.js.gz +0 -0
  251. codex/static_root/assets/{ssrBoot-O6yTJ_UV.7180d77d283e.js → ssrBoot-CCKPlpgB.c90fa83e0817.js} +1 -1
  252. codex/static_root/assets/ssrBoot-CCKPlpgB.c90fa83e0817.js.br +0 -0
  253. codex/static_root/assets/ssrBoot-CCKPlpgB.c90fa83e0817.js.gz +0 -0
  254. codex/static_root/assets/{ssrBoot-O6yTJ_UV.js → ssrBoot-CCKPlpgB.js} +1 -1
  255. codex/static_root/assets/ssrBoot-CCKPlpgB.js.br +0 -0
  256. codex/static_root/assets/ssrBoot-CCKPlpgB.js.gz +0 -0
  257. codex/static_root/assets/{stats-tab-BZjOg19A.afb2e6b0d648.js → stats-tab-CrU_p2gC.e12768f9423d.js} +1 -1
  258. codex/static_root/assets/stats-tab-CrU_p2gC.e12768f9423d.js.br +0 -0
  259. codex/static_root/assets/stats-tab-CrU_p2gC.e12768f9423d.js.gz +0 -0
  260. codex/static_root/assets/{stats-tab-BZjOg19A.js → stats-tab-CrU_p2gC.js} +1 -1
  261. codex/static_root/assets/stats-tab-CrU_p2gC.js.br +0 -0
  262. codex/static_root/assets/stats-tab-CrU_p2gC.js.gz +0 -0
  263. codex/static_root/assets/task-tab-Bp0wsH4V.2a5135c30818.js +1 -0
  264. codex/static_root/assets/task-tab-Bp0wsH4V.2a5135c30818.js.br +0 -0
  265. codex/static_root/assets/task-tab-Bp0wsH4V.2a5135c30818.js.gz +0 -0
  266. codex/static_root/assets/task-tab-Bp0wsH4V.js +1 -0
  267. codex/static_root/assets/task-tab-Bp0wsH4V.js.br +0 -0
  268. codex/static_root/assets/task-tab-Bp0wsH4V.js.gz +0 -0
  269. codex/static_root/assets/{unauthorized-Bo3ThIrX.12d2efd95d7d.js → unauthorized-DObmibd6.b47434919de7.js} +1 -1
  270. codex/static_root/assets/unauthorized-DObmibd6.b47434919de7.js.br +0 -0
  271. codex/static_root/assets/unauthorized-DObmibd6.b47434919de7.js.gz +0 -0
  272. codex/static_root/assets/{unauthorized-Bo3ThIrX.js → unauthorized-DObmibd6.js} +1 -1
  273. codex/static_root/assets/unauthorized-DObmibd6.js.br +0 -0
  274. codex/static_root/assets/unauthorized-DObmibd6.js.gz +0 -0
  275. codex/static_root/assets/{user-tab-BQ82qBg3.17190dc83452.js → user-tab-DedY8MbN.624af3a6a978.js} +1 -1
  276. codex/static_root/assets/user-tab-DedY8MbN.624af3a6a978.js.br +0 -0
  277. codex/static_root/assets/user-tab-DedY8MbN.624af3a6a978.js.gz +0 -0
  278. codex/static_root/assets/{user-tab-BQ82qBg3.js → user-tab-DedY8MbN.js} +1 -1
  279. codex/static_root/assets/user-tab-DedY8MbN.js.br +0 -0
  280. codex/static_root/assets/user-tab-DedY8MbN.js.gz +0 -0
  281. codex/static_root/{manifest.0dc91d0dee6d.json → manifest.4217bf6f9edb.json} +313 -313
  282. codex/static_root/manifest.4217bf6f9edb.json.br +0 -0
  283. codex/static_root/manifest.4217bf6f9edb.json.gz +0 -0
  284. codex/static_root/manifest.json +313 -313
  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.0a3.dist-info}/METADATA +2 -2
  294. {codex-1.8.0a2.dist-info → codex-1.8.0a3.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.0a3.dist-info}/WHEEL +0 -0
  476. {codex-1.8.0a2.dist-info → codex-1.8.0a3.dist-info}/entry_points.txt +0 -0
  477. {codex-1.8.0a2.dist-info → codex-1.8.0a3.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/confirm-dialog-q6RAb_qs.js": "assets/confirm-dialog-q6RAb_qs.120460c84883.js", "assets/change-password-dialog-yLNkzMp9.js": "assets/change-password-dialog-yLNkzMp9.50da9f352709.js", "assets/VWindowItem-CuDwxsEy.js": "assets/VWindowItem-CuDwxsEy.4d68002250ae.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/admin-U3AawSbo.js": "assets/admin-U3AawSbo.f171316d0a93.js", "assets/relation-chips-CcFgPQOM.css": "assets/relation-chips-CcFgPQOM.0b468249b62e.css", "assets/group-tab-lamd9pcq.js": "assets/group-tab-lamd9pcq.604a78bd4e4f.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/admin-BZQmoFts.js": "assets/admin-BZQmoFts.d8e6303f8aee.js", "assets/VCombobox-BRJRW2px.js": "assets/VCombobox-BRJRW2px.369544360b22.js", "assets/pager-full-pdf-KI4NQUMe.js": "assets/pager-full-pdf-KI4NQUMe.762b6bef9373.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/settings-drawer-CpS_aX4Z.css": "assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css", "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/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/flag-tab-D0Z4uhsg.js": "assets/flag-tab-D0Z4uhsg.06e720e71319.js", "assets/VCheckboxBtn-BeZZDumo.js": "assets/VCheckboxBtn-BeZZDumo.59731a32657e.js", "assets/unauthorized-DObmibd6.js": "assets/unauthorized-DObmibd6.b47434919de7.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/admin-settings-button-progress-DwWq9uM1.js": "assets/admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js", "assets/VDialog-D_vkvatj.js": "assets/VDialog-D_vkvatj.83e078fa850c.js", "assets/VTable-BDxzw_rH.js": "assets/VTable-BDxzw_rH.24ce227e6076.js", "assets/main-B8_0rUnw.css": "assets/main-B8_0rUnw.a9be0875ae25.css", "assets/filter-r_zFj-tS.js": "assets/filter-r_zFj-tS.161a85ef1860.js", "assets/browser-DFM_JsAK.js": "assets/browser-DFM_JsAK.bffd4eb259d8.js", "assets/pagination-toolbar-741OafNw.css": "assets/pagination-toolbar-741OafNw.4f9155469274.css", "assets/admin-menu-D9RDVBlr.js": "assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js", "assets/task-tab-Bp0wsH4V.js": "assets/task-tab-Bp0wsH4V.2a5135c30818.js", "assets/stats-tab-Dpqh5pF9.css": "assets/stats-tab-Dpqh5pF9.8dba36f90032.css", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VSelectionControl-CmXEFw20.js": "assets/VSelectionControl-CmXEFw20.e256f0d0f97d.js", "assets/library-tab-5StL67ei.css": "assets/library-tab-5StL67ei.0fad8998a237.css", "assets/forwardRefs-Nj5UEeg5.js": "assets/forwardRefs-Nj5UEeg5.50a55d7d8b68.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/VExpansionPanels-Ccv4gBFD.js": "assets/VExpansionPanels-Ccv4gBFD.ed063db2e518.js", "assets/relation-chips-Dgb6LQdZ.js": "assets/relation-chips-Dgb6LQdZ.c028ab2df979.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/library-tab-2UucZZAW.js": "assets/library-tab-2UucZZAW.f4541a086231.js", "assets/reader-lmk4MiSj.js": "assets/reader-lmk4MiSj.9239243e1be1.js", "assets/VForm-S5eiHGJ0.js": "assets/VForm-S5eiHGJ0.d304a07dc6d1.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/pdf-doc-GyrCvyP5.js": "assets/pdf-doc-GyrCvyP5.54b26ba8d93c.js", "assets/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/http-error-DRYA5ir1.js": "assets/http-error-DRYA5ir1.46f4babacf15.js", "assets/admin-settings-button-progress-Cks9_KN-.css": "assets/admin-settings-button-progress-Cks9_KN-.a592809d4008.css", "assets/VDivider-BH2Oj58Z.js": "assets/VDivider-BH2Oj58Z.83d2c907faff.js", "assets/datetime-column-HJ5dvW99.js": "assets/datetime-column-HJ5dvW99.ba0a30b3fc0d.js", "assets/pagination-toolbar-48pwYEe_.js": "assets/pagination-toolbar-48pwYEe_.892375c5aa51.js", "assets/VRadioGroup-CyCYk3Z_.js": "assets/VRadioGroup-CyCYk3Z_.4309dbf0173c.js", "assets/ssrBoot-CCKPlpgB.js": "assets/ssrBoot-CCKPlpgB.c90fa83e0817.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/index-Cl7tPJIx.js": "assets/index-Cl7tPJIx.c0a239cf7069.js", "assets/VCheckbox-DOvv8UEO.js": "assets/VCheckbox-DOvv8UEO.e3653c1670c8.js", "assets/settings-drawer-CRmLEncr.js": "assets/settings-drawer-CRmLEncr.6937d45e18af.js", "assets/reader-HE07eoaG.css": "assets/reader-HE07eoaG.8626eeb7c718.css", "assets/main-BX4TjIpG.js": "assets/main-BX4TjIpG.dc79406e2a7b.js", "assets/user-tab-DedY8MbN.js": "assets/user-tab-DedY8MbN.624af3a6a978.js", "assets/unauthorized-BBwsmi0O.css": "assets/unauthorized-BBwsmi0O.19d4882b821d.css", "assets/VSelect-BOhtkCV1.js": "assets/VSelect-BOhtkCV1.057479737b7f.js", "assets/stats-tab-CrU_p2gC.js": "assets/stats-tab-CrU_p2gC.e12768f9423d.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.4217bf6f9edb.json"}, "version": "1.1", "hash": "1635bcdaa054"}
@@ -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.0a3
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