codex 1.8.3__py3-none-any.whl → 1.8.5__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 (421) hide show
  1. codex/librarian/scribe/importer/read/extract.py +5 -3
  2. codex/librarian/status.py +1 -1
  3. codex/librarian/status_controller.py +17 -9
  4. codex/librarian/watchdog/emitter.py +2 -3
  5. codex/serializers/browser/settings.py +0 -1
  6. codex/static_root/assets/{VCheckbox-D_XyTZ4u.462bf6bac369.js → VCheckbox-DxJUMufz.9a175cfa72c8.js} +1 -1
  7. codex/static_root/assets/VCheckbox-DxJUMufz.9a175cfa72c8.js.br +0 -0
  8. codex/static_root/assets/VCheckbox-DxJUMufz.9a175cfa72c8.js.gz +0 -0
  9. codex/static_root/assets/{VCheckbox-D_XyTZ4u.js → VCheckbox-DxJUMufz.js} +1 -1
  10. codex/static_root/assets/VCheckbox-DxJUMufz.js.br +0 -0
  11. codex/static_root/assets/VCheckbox-DxJUMufz.js.gz +0 -0
  12. codex/static_root/assets/{VCheckboxBtn-BfvjNP65.a0bab3a9f68b.js → VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js} +1 -1
  13. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js.br +0 -0
  14. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js.gz +0 -0
  15. codex/static_root/assets/{VCheckboxBtn-BfvjNP65.js → VCheckboxBtn-BE6yrQ80.js} +1 -1
  16. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.js.br +0 -0
  17. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.js.gz +0 -0
  18. codex/static_root/assets/{VCombobox-BbwYSLBR.2f7146fa1ffd.js → VCombobox-Bfyp0szs.b51553d29c8c.js} +1 -1
  19. codex/static_root/assets/VCombobox-Bfyp0szs.b51553d29c8c.js.br +0 -0
  20. codex/static_root/assets/VCombobox-Bfyp0szs.b51553d29c8c.js.gz +0 -0
  21. codex/static_root/assets/{VCombobox-BbwYSLBR.js → VCombobox-Bfyp0szs.js} +1 -1
  22. codex/static_root/assets/VCombobox-Bfyp0szs.js.br +0 -0
  23. codex/static_root/assets/VCombobox-Bfyp0szs.js.gz +0 -0
  24. codex/static_root/assets/{VDialog-B0Jacmz7.68a94eee024a.js → VDialog-Cy6wFjb9.9253a3f54f22.js} +1 -1
  25. codex/static_root/assets/VDialog-Cy6wFjb9.9253a3f54f22.js.br +0 -0
  26. codex/static_root/assets/VDialog-Cy6wFjb9.9253a3f54f22.js.gz +0 -0
  27. codex/static_root/assets/{VDialog-B0Jacmz7.js → VDialog-Cy6wFjb9.js} +1 -1
  28. codex/static_root/assets/VDialog-Cy6wFjb9.js.br +0 -0
  29. codex/static_root/assets/VDialog-Cy6wFjb9.js.gz +0 -0
  30. codex/static_root/assets/{VDivider-CTBs-b0b.d0689e7d49d3.js → VDivider-BEpvozL4.c9fd95940cb5.js} +1 -1
  31. codex/static_root/assets/VDivider-BEpvozL4.c9fd95940cb5.js.br +0 -0
  32. codex/static_root/assets/VDivider-BEpvozL4.c9fd95940cb5.js.gz +0 -0
  33. codex/static_root/assets/{VDivider-CTBs-b0b.js → VDivider-BEpvozL4.js} +1 -1
  34. codex/static_root/assets/VDivider-BEpvozL4.js.br +0 -0
  35. codex/static_root/assets/VDivider-BEpvozL4.js.gz +0 -0
  36. codex/static_root/assets/{VExpansionPanels-ConOnIoK.a2f51811651b.js → VExpansionPanels-BzyHQUL4.7e54cedf021c.js} +1 -1
  37. codex/static_root/assets/VExpansionPanels-BzyHQUL4.7e54cedf021c.js.br +0 -0
  38. codex/static_root/assets/VExpansionPanels-BzyHQUL4.7e54cedf021c.js.gz +0 -0
  39. codex/static_root/assets/{VExpansionPanels-ConOnIoK.js → VExpansionPanels-BzyHQUL4.js} +1 -1
  40. codex/static_root/assets/VExpansionPanels-BzyHQUL4.js.br +0 -0
  41. codex/static_root/assets/VExpansionPanels-BzyHQUL4.js.gz +0 -0
  42. codex/static_root/assets/{VForm-BIO5K7ci.2e61c9435367.js → VForm-CmVlbmJK.887eb47d3534.js} +1 -1
  43. codex/static_root/assets/VForm-CmVlbmJK.887eb47d3534.js.br +0 -0
  44. codex/static_root/assets/VForm-CmVlbmJK.887eb47d3534.js.gz +0 -0
  45. codex/static_root/assets/{VForm-BIO5K7ci.js → VForm-CmVlbmJK.js} +1 -1
  46. codex/static_root/assets/VForm-CmVlbmJK.js.br +0 -0
  47. codex/static_root/assets/VForm-CmVlbmJK.js.gz +0 -0
  48. codex/static_root/assets/{VRadioGroup-RHrJKa0c.1fdc29fcda3d.js → VRadioGroup-DWzKkq9W.daaabd353889.js} +1 -1
  49. codex/static_root/assets/VRadioGroup-DWzKkq9W.daaabd353889.js.br +0 -0
  50. codex/static_root/assets/VRadioGroup-DWzKkq9W.daaabd353889.js.gz +0 -0
  51. codex/static_root/assets/{VRadioGroup-RHrJKa0c.js → VRadioGroup-DWzKkq9W.js} +1 -1
  52. codex/static_root/assets/VRadioGroup-DWzKkq9W.js.br +0 -0
  53. codex/static_root/assets/VRadioGroup-DWzKkq9W.js.gz +0 -0
  54. codex/static_root/assets/{VSelect-CfpKJejR.72a85cc6f066.js → VSelect-Cqjdw0PV.ab01020c5ef4.js} +1 -1
  55. codex/static_root/assets/VSelect-Cqjdw0PV.ab01020c5ef4.js.br +0 -0
  56. codex/static_root/assets/VSelect-Cqjdw0PV.ab01020c5ef4.js.gz +0 -0
  57. codex/static_root/assets/{VSelect-CfpKJejR.js → VSelect-Cqjdw0PV.js} +1 -1
  58. codex/static_root/assets/VSelect-Cqjdw0PV.js.br +0 -0
  59. codex/static_root/assets/VSelect-Cqjdw0PV.js.gz +0 -0
  60. codex/static_root/assets/{VSelectionControl-gIR5jZDY.fd0da30d68c7.js → VSelectionControl-Dk52iIPb.fe2504c50db4.js} +1 -1
  61. codex/static_root/assets/VSelectionControl-Dk52iIPb.fe2504c50db4.js.br +0 -0
  62. codex/static_root/assets/VSelectionControl-Dk52iIPb.fe2504c50db4.js.gz +0 -0
  63. codex/static_root/assets/{VSelectionControl-gIR5jZDY.js → VSelectionControl-Dk52iIPb.js} +1 -1
  64. codex/static_root/assets/VSelectionControl-Dk52iIPb.js.br +0 -0
  65. codex/static_root/assets/VSelectionControl-Dk52iIPb.js.gz +0 -0
  66. codex/static_root/assets/{VTable-DzpeXwjm.7435f1aea6f5.js → VTable-Ch5ZSNsk.c38a2cb589fa.js} +1 -1
  67. codex/static_root/assets/VTable-Ch5ZSNsk.c38a2cb589fa.js.br +0 -0
  68. codex/static_root/assets/VTable-Ch5ZSNsk.c38a2cb589fa.js.gz +0 -0
  69. codex/static_root/assets/{VTable-DzpeXwjm.js → VTable-Ch5ZSNsk.js} +1 -1
  70. codex/static_root/assets/VTable-Ch5ZSNsk.js.br +0 -0
  71. codex/static_root/assets/VTable-Ch5ZSNsk.js.gz +0 -0
  72. codex/static_root/assets/{VWindowItem-TQGw1ubw.9b4f22d58ee9.js → VWindowItem-DBU8ce0X.4bbcffa75b9a.js} +1 -1
  73. codex/static_root/assets/VWindowItem-DBU8ce0X.4bbcffa75b9a.js.br +0 -0
  74. codex/static_root/assets/VWindowItem-DBU8ce0X.4bbcffa75b9a.js.gz +0 -0
  75. codex/static_root/assets/{VWindowItem-TQGw1ubw.js → VWindowItem-DBU8ce0X.js} +1 -1
  76. codex/static_root/assets/VWindowItem-DBU8ce0X.js.br +0 -0
  77. codex/static_root/assets/VWindowItem-DBU8ce0X.js.gz +0 -0
  78. codex/static_root/assets/{admin-BTr0-CtZ.4bb52847aaff.js → admin-Bt81XU3H.ca36b1a1b799.js} +1 -1
  79. codex/static_root/assets/admin-Bt81XU3H.ca36b1a1b799.js.br +0 -0
  80. codex/static_root/assets/admin-Bt81XU3H.ca36b1a1b799.js.gz +0 -0
  81. codex/static_root/assets/{admin-BTr0-CtZ.js → admin-Bt81XU3H.js} +1 -1
  82. codex/static_root/assets/admin-Bt81XU3H.js.br +0 -0
  83. codex/static_root/assets/admin-Bt81XU3H.js.gz +0 -0
  84. codex/static_root/assets/{admin-DHwj2Jb3.f8bfa0dfd940.js → admin-CfqMNEyt.bebc609836d0.js} +1 -1
  85. codex/static_root/assets/admin-CfqMNEyt.bebc609836d0.js.br +0 -0
  86. codex/static_root/assets/admin-CfqMNEyt.bebc609836d0.js.gz +0 -0
  87. codex/static_root/assets/{admin-DHwj2Jb3.js → admin-CfqMNEyt.js} +1 -1
  88. codex/static_root/assets/admin-CfqMNEyt.js.br +0 -0
  89. codex/static_root/assets/admin-CfqMNEyt.js.gz +0 -0
  90. codex/static_root/assets/{admin-menu-BJlDRSiM.6a930ab3f184.js → admin-menu-Db5b3nba.09d034934b88.js} +1 -1
  91. codex/static_root/assets/admin-menu-Db5b3nba.09d034934b88.js.br +0 -0
  92. codex/static_root/assets/admin-menu-Db5b3nba.09d034934b88.js.gz +0 -0
  93. codex/static_root/assets/{admin-menu-BJlDRSiM.js → admin-menu-Db5b3nba.js} +1 -1
  94. codex/static_root/assets/admin-menu-Db5b3nba.js.br +0 -0
  95. codex/static_root/assets/admin-menu-Db5b3nba.js.gz +0 -0
  96. codex/static_root/assets/{admin-settings-button-progress-CiAb3cc6.3cbd997daa51.js → admin-settings-button-progress-BPQGNinn.53e05963f557.js} +1 -1
  97. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.53e05963f557.js.br +0 -0
  98. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.53e05963f557.js.gz +0 -0
  99. codex/static_root/assets/{admin-settings-button-progress-CiAb3cc6.js → admin-settings-button-progress-BPQGNinn.js} +1 -1
  100. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.js.br +0 -0
  101. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.js.gz +0 -0
  102. codex/static_root/assets/{browser-CP7xkxBf.958314414cee.js → browser-C19hTg9r.9b5d0eadd6d4.js} +1 -1
  103. codex/static_root/assets/browser-C19hTg9r.9b5d0eadd6d4.js.br +0 -0
  104. codex/static_root/assets/browser-C19hTg9r.9b5d0eadd6d4.js.gz +0 -0
  105. codex/static_root/assets/{browser-CP7xkxBf.js → browser-C19hTg9r.js} +1 -1
  106. codex/static_root/assets/browser-C19hTg9r.js.br +0 -0
  107. codex/static_root/assets/browser-C19hTg9r.js.gz +0 -0
  108. codex/static_root/assets/{change-password-dialog-BBUWNZ9T.9a4b4651aaca.js → change-password-dialog-DPAIPGJa.7c4c436e259e.js} +1 -1
  109. codex/static_root/assets/change-password-dialog-DPAIPGJa.7c4c436e259e.js.br +0 -0
  110. codex/static_root/assets/change-password-dialog-DPAIPGJa.7c4c436e259e.js.gz +0 -0
  111. codex/static_root/assets/{change-password-dialog-BBUWNZ9T.js → change-password-dialog-DPAIPGJa.js} +1 -1
  112. codex/static_root/assets/change-password-dialog-DPAIPGJa.js.br +0 -0
  113. codex/static_root/assets/change-password-dialog-DPAIPGJa.js.gz +0 -0
  114. codex/static_root/assets/{confirm-dialog-DigFSpih.c5546a032b3a.js → confirm-dialog-CgSU27R5.0127ce62d24c.js} +1 -1
  115. codex/static_root/assets/confirm-dialog-CgSU27R5.0127ce62d24c.js.br +0 -0
  116. codex/static_root/assets/confirm-dialog-CgSU27R5.0127ce62d24c.js.gz +0 -0
  117. codex/static_root/assets/{confirm-dialog-DigFSpih.js → confirm-dialog-CgSU27R5.js} +1 -1
  118. codex/static_root/assets/confirm-dialog-CgSU27R5.js.br +0 -0
  119. codex/static_root/assets/confirm-dialog-CgSU27R5.js.gz +0 -0
  120. codex/static_root/assets/{datetime-column-BJhx2yEd.ce37d39e8ade.js → datetime-column-Dw9zxZLR.cd8791cda91b.js} +1 -1
  121. codex/static_root/assets/datetime-column-Dw9zxZLR.cd8791cda91b.js.br +0 -0
  122. codex/static_root/assets/datetime-column-Dw9zxZLR.cd8791cda91b.js.gz +0 -0
  123. codex/static_root/assets/{datetime-column-BJhx2yEd.js → datetime-column-Dw9zxZLR.js} +1 -1
  124. codex/static_root/assets/datetime-column-Dw9zxZLR.js.br +0 -0
  125. codex/static_root/assets/datetime-column-Dw9zxZLR.js.gz +0 -0
  126. codex/static_root/assets/{filter-bK1TFeXf.2ae19e25d2c7.js → filter-BNTCrH8l.c00298a8fccf.js} +1 -1
  127. codex/static_root/assets/filter-BNTCrH8l.c00298a8fccf.js.br +0 -0
  128. codex/static_root/assets/filter-BNTCrH8l.c00298a8fccf.js.gz +0 -0
  129. codex/static_root/assets/{filter-bK1TFeXf.js → filter-BNTCrH8l.js} +1 -1
  130. codex/static_root/assets/filter-BNTCrH8l.js.br +0 -0
  131. codex/static_root/assets/filter-BNTCrH8l.js.gz +0 -0
  132. codex/static_root/assets/{flag-tab-GqwAPkVR.4225f535406e.js → flag-tab-Xpq_xAF5.3f14de61afcc.js} +1 -1
  133. codex/static_root/assets/flag-tab-Xpq_xAF5.3f14de61afcc.js.br +0 -0
  134. codex/static_root/assets/flag-tab-Xpq_xAF5.3f14de61afcc.js.gz +0 -0
  135. codex/static_root/assets/{flag-tab-GqwAPkVR.js → flag-tab-Xpq_xAF5.js} +1 -1
  136. codex/static_root/assets/flag-tab-Xpq_xAF5.js.br +0 -0
  137. codex/static_root/assets/flag-tab-Xpq_xAF5.js.gz +0 -0
  138. codex/static_root/assets/{forwardRefs-B7vVpHcB.js → forwardRefs-fUake9mW.12c1018cd1e3.js} +1 -1
  139. codex/static_root/assets/forwardRefs-fUake9mW.12c1018cd1e3.js.br +0 -0
  140. codex/static_root/assets/forwardRefs-fUake9mW.12c1018cd1e3.js.gz +0 -0
  141. codex/static_root/assets/{forwardRefs-B7vVpHcB.54db12a092c1.js → forwardRefs-fUake9mW.js} +1 -1
  142. codex/static_root/assets/forwardRefs-fUake9mW.js.br +0 -0
  143. codex/static_root/assets/forwardRefs-fUake9mW.js.gz +0 -0
  144. codex/static_root/assets/{group-tab-oymKtTnn.708975542a01.js → group-tab-E_R0glEI.82e1d92be747.js} +1 -1
  145. codex/static_root/assets/group-tab-E_R0glEI.82e1d92be747.js.br +0 -0
  146. codex/static_root/assets/group-tab-E_R0glEI.82e1d92be747.js.gz +0 -0
  147. codex/static_root/assets/{group-tab-oymKtTnn.js → group-tab-E_R0glEI.js} +1 -1
  148. codex/static_root/assets/group-tab-E_R0glEI.js.br +0 -0
  149. codex/static_root/assets/group-tab-E_R0glEI.js.gz +0 -0
  150. codex/static_root/assets/{http-error-C4gic9U4.bcffc12035d6.js → http-error-C6bKTzfv.168d047d5219.js} +1 -1
  151. codex/static_root/assets/http-error-C6bKTzfv.168d047d5219.js.br +5 -0
  152. codex/static_root/assets/http-error-C6bKTzfv.168d047d5219.js.gz +0 -0
  153. codex/static_root/assets/{http-error-C4gic9U4.js → http-error-C6bKTzfv.js} +1 -1
  154. codex/static_root/assets/http-error-C6bKTzfv.js.br +5 -0
  155. codex/static_root/assets/http-error-C6bKTzfv.js.gz +0 -0
  156. codex/static_root/assets/{index-Dky_UT4Y.f36cc3d3bb8e.js → index-j9jeRHe0.294b614eaea1.js} +1 -1
  157. codex/static_root/assets/index-j9jeRHe0.294b614eaea1.js.br +0 -0
  158. codex/static_root/assets/index-j9jeRHe0.294b614eaea1.js.gz +0 -0
  159. codex/static_root/assets/{index-Dky_UT4Y.js → index-j9jeRHe0.js} +1 -1
  160. codex/static_root/assets/index-j9jeRHe0.js.br +0 -0
  161. codex/static_root/assets/index-j9jeRHe0.js.gz +0 -0
  162. codex/static_root/assets/{library-tab-RwAOFygt.098c3757576f.js → library-tab-DPYjRIWp.58e434354594.js} +1 -1
  163. codex/static_root/assets/library-tab-DPYjRIWp.58e434354594.js.br +0 -0
  164. codex/static_root/assets/library-tab-DPYjRIWp.58e434354594.js.gz +0 -0
  165. codex/static_root/assets/{library-tab-RwAOFygt.js → library-tab-DPYjRIWp.js} +1 -1
  166. codex/static_root/assets/library-tab-DPYjRIWp.js.br +0 -0
  167. codex/static_root/assets/library-tab-DPYjRIWp.js.gz +0 -0
  168. codex/static_root/assets/main-Cnq2ldv_.1c0766500281.js +39 -0
  169. codex/static_root/assets/main-Cnq2ldv_.1c0766500281.js.br +0 -0
  170. codex/static_root/assets/main-Cnq2ldv_.1c0766500281.js.gz +0 -0
  171. codex/static_root/assets/main-Cnq2ldv_.js +39 -0
  172. codex/static_root/assets/main-Cnq2ldv_.js.br +0 -0
  173. codex/static_root/assets/main-Cnq2ldv_.js.gz +0 -0
  174. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js +1 -0
  175. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js.br +0 -0
  176. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js.gz +0 -0
  177. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js +1 -0
  178. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js.br +0 -0
  179. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js.gz +0 -0
  180. codex/static_root/assets/{pagination-toolbar-CpAEGtyx.74e38bf209bf.js → pagination-toolbar-BFBKOWOc.3355103910ff.js} +1 -1
  181. codex/static_root/assets/pagination-toolbar-BFBKOWOc.3355103910ff.js.br +0 -0
  182. codex/static_root/assets/pagination-toolbar-BFBKOWOc.3355103910ff.js.gz +0 -0
  183. codex/static_root/assets/{pagination-toolbar-CpAEGtyx.js → pagination-toolbar-BFBKOWOc.js} +1 -1
  184. codex/static_root/assets/pagination-toolbar-BFBKOWOc.js.br +0 -0
  185. codex/static_root/assets/pagination-toolbar-BFBKOWOc.js.gz +0 -0
  186. codex/static_root/assets/{pdf-doc-CVUu9wQx.bd34445a5869.js → pdf-doc-XAg2nqnS.5a33f918a28a.js} +1 -1
  187. codex/static_root/assets/pdf-doc-XAg2nqnS.5a33f918a28a.js.br +0 -0
  188. codex/static_root/assets/pdf-doc-XAg2nqnS.5a33f918a28a.js.gz +0 -0
  189. codex/static_root/assets/{pdf-doc-CVUu9wQx.js → pdf-doc-XAg2nqnS.js} +1 -1
  190. codex/static_root/assets/pdf-doc-XAg2nqnS.js.br +0 -0
  191. codex/static_root/assets/pdf-doc-XAg2nqnS.js.gz +0 -0
  192. codex/static_root/assets/{reader-BZ9Q9Yrx.js → reader-BZ4Dp-_5.ecd9d42077af.js} +2 -2
  193. codex/static_root/assets/reader-BZ4Dp-_5.ecd9d42077af.js.br +0 -0
  194. codex/static_root/assets/reader-BZ4Dp-_5.ecd9d42077af.js.gz +0 -0
  195. codex/static_root/assets/{reader-BZ9Q9Yrx.42934791915d.js → reader-BZ4Dp-_5.js} +2 -2
  196. codex/static_root/assets/reader-BZ4Dp-_5.js.br +0 -0
  197. codex/static_root/assets/reader-BZ4Dp-_5.js.gz +0 -0
  198. codex/static_root/assets/{relation-chips-TyU5GyFW.36e631c7bac7.js → relation-chips-B_z9ixOK.8f144f1cf119.js} +1 -1
  199. codex/static_root/assets/relation-chips-B_z9ixOK.8f144f1cf119.js.br +0 -0
  200. codex/static_root/assets/relation-chips-B_z9ixOK.8f144f1cf119.js.gz +0 -0
  201. codex/static_root/assets/{relation-chips-TyU5GyFW.js → relation-chips-B_z9ixOK.js} +1 -1
  202. codex/static_root/assets/relation-chips-B_z9ixOK.js.br +0 -0
  203. codex/static_root/assets/relation-chips-B_z9ixOK.js.gz +0 -0
  204. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js +2 -0
  205. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js.br +0 -0
  206. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js.gz +0 -0
  207. codex/static_root/assets/settings-drawer-Cd3M0s-h.js +2 -0
  208. codex/static_root/assets/settings-drawer-Cd3M0s-h.js.br +0 -0
  209. codex/static_root/assets/settings-drawer-Cd3M0s-h.js.gz +0 -0
  210. codex/static_root/assets/{ssrBoot-0yd0wSvu.3c07b95bc7f3.js → ssrBoot-CoIsTnhp.ab2c4669478d.js} +1 -1
  211. codex/static_root/assets/ssrBoot-CoIsTnhp.ab2c4669478d.js.br +0 -0
  212. codex/static_root/assets/ssrBoot-CoIsTnhp.ab2c4669478d.js.gz +0 -0
  213. codex/static_root/assets/{ssrBoot-0yd0wSvu.js → ssrBoot-CoIsTnhp.js} +1 -1
  214. codex/static_root/assets/ssrBoot-CoIsTnhp.js.br +0 -0
  215. codex/static_root/assets/ssrBoot-CoIsTnhp.js.gz +0 -0
  216. codex/static_root/assets/{stats-tab-C9D50kqm.f1e98f0bf24f.js → stats-tab-Bncgetpc.94f90b6a111b.js} +1 -1
  217. codex/static_root/assets/stats-tab-Bncgetpc.94f90b6a111b.js.br +0 -0
  218. codex/static_root/assets/stats-tab-Bncgetpc.94f90b6a111b.js.gz +0 -0
  219. codex/static_root/assets/{stats-tab-C9D50kqm.js → stats-tab-Bncgetpc.js} +1 -1
  220. codex/static_root/assets/stats-tab-Bncgetpc.js.br +0 -0
  221. codex/static_root/assets/stats-tab-Bncgetpc.js.gz +0 -0
  222. codex/static_root/assets/{task-tab-iGPDuIqU.e15ed42d4130.js → task-tab-BWkw24-u.0e981a767773.js} +1 -1
  223. codex/static_root/assets/task-tab-BWkw24-u.0e981a767773.js.br +0 -0
  224. codex/static_root/assets/task-tab-BWkw24-u.0e981a767773.js.gz +0 -0
  225. codex/static_root/assets/{task-tab-iGPDuIqU.js → task-tab-BWkw24-u.js} +1 -1
  226. codex/static_root/assets/task-tab-BWkw24-u.js.br +0 -0
  227. codex/static_root/assets/task-tab-BWkw24-u.js.gz +0 -0
  228. codex/static_root/assets/{unauthorized-CjsSfde4.07229ba5ed8d.js → unauthorized-IXAh-oLS.be484d21eb2a.js} +1 -1
  229. codex/static_root/assets/unauthorized-IXAh-oLS.be484d21eb2a.js.br +0 -0
  230. codex/static_root/assets/unauthorized-IXAh-oLS.be484d21eb2a.js.gz +0 -0
  231. codex/static_root/assets/{unauthorized-CjsSfde4.js → unauthorized-IXAh-oLS.js} +1 -1
  232. codex/static_root/assets/unauthorized-IXAh-oLS.js.br +0 -0
  233. codex/static_root/assets/unauthorized-IXAh-oLS.js.gz +0 -0
  234. codex/static_root/assets/{user-tab-e-oyoq4f.caaaf9f927f2.js → user-tab-CtQh6PJE.6b9a1d0e733a.js} +1 -1
  235. codex/static_root/assets/user-tab-CtQh6PJE.6b9a1d0e733a.js.br +0 -0
  236. codex/static_root/assets/user-tab-CtQh6PJE.6b9a1d0e733a.js.gz +0 -0
  237. codex/static_root/assets/{user-tab-e-oyoq4f.js → user-tab-CtQh6PJE.js} +1 -1
  238. codex/static_root/assets/user-tab-CtQh6PJE.js.br +0 -0
  239. codex/static_root/assets/user-tab-CtQh6PJE.js.gz +0 -0
  240. codex/static_root/{manifest.33bfa3b55246.json → manifest.92b1b461eee2.json} +295 -295
  241. codex/static_root/manifest.92b1b461eee2.json.br +0 -0
  242. codex/static_root/manifest.92b1b461eee2.json.gz +0 -0
  243. codex/static_root/manifest.json +295 -295
  244. codex/static_root/manifest.json.br +0 -0
  245. codex/static_root/manifest.json.gz +0 -0
  246. codex/static_root/staticfiles.json +1 -1
  247. codex/views/browser/bookmark.py +12 -0
  248. codex/views/browser/params.py +1 -21
  249. codex/views/browser/settings.py +3 -17
  250. codex/views/reader/params.py +1 -2
  251. codex/views/session.py +33 -3
  252. codex/views/settings.py +1 -0
  253. {codex-1.8.3.dist-info → codex-1.8.5.dist-info}/METADATA +2 -2
  254. {codex-1.8.3.dist-info → codex-1.8.5.dist-info}/RECORD +257 -257
  255. codex/static_root/assets/VCheckbox-D_XyTZ4u.462bf6bac369.js.br +0 -0
  256. codex/static_root/assets/VCheckbox-D_XyTZ4u.462bf6bac369.js.gz +0 -0
  257. codex/static_root/assets/VCheckbox-D_XyTZ4u.js.br +0 -0
  258. codex/static_root/assets/VCheckbox-D_XyTZ4u.js.gz +0 -0
  259. codex/static_root/assets/VCheckboxBtn-BfvjNP65.a0bab3a9f68b.js.br +0 -0
  260. codex/static_root/assets/VCheckboxBtn-BfvjNP65.a0bab3a9f68b.js.gz +0 -0
  261. codex/static_root/assets/VCheckboxBtn-BfvjNP65.js.br +0 -0
  262. codex/static_root/assets/VCheckboxBtn-BfvjNP65.js.gz +0 -0
  263. codex/static_root/assets/VCombobox-BbwYSLBR.2f7146fa1ffd.js.br +0 -0
  264. codex/static_root/assets/VCombobox-BbwYSLBR.2f7146fa1ffd.js.gz +0 -0
  265. codex/static_root/assets/VCombobox-BbwYSLBR.js.br +0 -0
  266. codex/static_root/assets/VCombobox-BbwYSLBR.js.gz +0 -0
  267. codex/static_root/assets/VDialog-B0Jacmz7.68a94eee024a.js.br +0 -0
  268. codex/static_root/assets/VDialog-B0Jacmz7.68a94eee024a.js.gz +0 -0
  269. codex/static_root/assets/VDialog-B0Jacmz7.js.br +0 -0
  270. codex/static_root/assets/VDialog-B0Jacmz7.js.gz +0 -0
  271. codex/static_root/assets/VDivider-CTBs-b0b.d0689e7d49d3.js.br +0 -0
  272. codex/static_root/assets/VDivider-CTBs-b0b.d0689e7d49d3.js.gz +0 -0
  273. codex/static_root/assets/VDivider-CTBs-b0b.js.br +0 -0
  274. codex/static_root/assets/VDivider-CTBs-b0b.js.gz +0 -0
  275. codex/static_root/assets/VExpansionPanels-ConOnIoK.a2f51811651b.js.br +0 -0
  276. codex/static_root/assets/VExpansionPanels-ConOnIoK.a2f51811651b.js.gz +0 -0
  277. codex/static_root/assets/VExpansionPanels-ConOnIoK.js.br +0 -0
  278. codex/static_root/assets/VExpansionPanels-ConOnIoK.js.gz +0 -0
  279. codex/static_root/assets/VForm-BIO5K7ci.2e61c9435367.js.br +0 -0
  280. codex/static_root/assets/VForm-BIO5K7ci.2e61c9435367.js.gz +0 -0
  281. codex/static_root/assets/VForm-BIO5K7ci.js.br +0 -0
  282. codex/static_root/assets/VForm-BIO5K7ci.js.gz +0 -0
  283. codex/static_root/assets/VRadioGroup-RHrJKa0c.1fdc29fcda3d.js.br +0 -0
  284. codex/static_root/assets/VRadioGroup-RHrJKa0c.1fdc29fcda3d.js.gz +0 -0
  285. codex/static_root/assets/VRadioGroup-RHrJKa0c.js.br +0 -0
  286. codex/static_root/assets/VRadioGroup-RHrJKa0c.js.gz +0 -0
  287. codex/static_root/assets/VSelect-CfpKJejR.72a85cc6f066.js.br +0 -0
  288. codex/static_root/assets/VSelect-CfpKJejR.72a85cc6f066.js.gz +0 -0
  289. codex/static_root/assets/VSelect-CfpKJejR.js.br +0 -0
  290. codex/static_root/assets/VSelect-CfpKJejR.js.gz +0 -0
  291. codex/static_root/assets/VSelectionControl-gIR5jZDY.fd0da30d68c7.js.br +0 -0
  292. codex/static_root/assets/VSelectionControl-gIR5jZDY.fd0da30d68c7.js.gz +0 -0
  293. codex/static_root/assets/VSelectionControl-gIR5jZDY.js.br +0 -0
  294. codex/static_root/assets/VSelectionControl-gIR5jZDY.js.gz +0 -0
  295. codex/static_root/assets/VTable-DzpeXwjm.7435f1aea6f5.js.br +0 -0
  296. codex/static_root/assets/VTable-DzpeXwjm.7435f1aea6f5.js.gz +0 -0
  297. codex/static_root/assets/VTable-DzpeXwjm.js.br +0 -0
  298. codex/static_root/assets/VTable-DzpeXwjm.js.gz +0 -0
  299. codex/static_root/assets/VWindowItem-TQGw1ubw.9b4f22d58ee9.js.br +0 -0
  300. codex/static_root/assets/VWindowItem-TQGw1ubw.9b4f22d58ee9.js.gz +0 -0
  301. codex/static_root/assets/VWindowItem-TQGw1ubw.js.br +0 -0
  302. codex/static_root/assets/VWindowItem-TQGw1ubw.js.gz +0 -0
  303. codex/static_root/assets/admin-BTr0-CtZ.4bb52847aaff.js.br +0 -0
  304. codex/static_root/assets/admin-BTr0-CtZ.4bb52847aaff.js.gz +0 -0
  305. codex/static_root/assets/admin-BTr0-CtZ.js.br +0 -0
  306. codex/static_root/assets/admin-BTr0-CtZ.js.gz +0 -0
  307. codex/static_root/assets/admin-DHwj2Jb3.f8bfa0dfd940.js.br +0 -0
  308. codex/static_root/assets/admin-DHwj2Jb3.f8bfa0dfd940.js.gz +0 -0
  309. codex/static_root/assets/admin-DHwj2Jb3.js.br +0 -0
  310. codex/static_root/assets/admin-DHwj2Jb3.js.gz +0 -0
  311. codex/static_root/assets/admin-menu-BJlDRSiM.6a930ab3f184.js.br +0 -0
  312. codex/static_root/assets/admin-menu-BJlDRSiM.6a930ab3f184.js.gz +0 -0
  313. codex/static_root/assets/admin-menu-BJlDRSiM.js.br +0 -0
  314. codex/static_root/assets/admin-menu-BJlDRSiM.js.gz +0 -0
  315. codex/static_root/assets/admin-settings-button-progress-CiAb3cc6.3cbd997daa51.js.br +0 -0
  316. codex/static_root/assets/admin-settings-button-progress-CiAb3cc6.3cbd997daa51.js.gz +0 -0
  317. codex/static_root/assets/admin-settings-button-progress-CiAb3cc6.js.br +0 -0
  318. codex/static_root/assets/admin-settings-button-progress-CiAb3cc6.js.gz +0 -0
  319. codex/static_root/assets/browser-CP7xkxBf.958314414cee.js.br +0 -0
  320. codex/static_root/assets/browser-CP7xkxBf.958314414cee.js.gz +0 -0
  321. codex/static_root/assets/browser-CP7xkxBf.js.br +0 -0
  322. codex/static_root/assets/browser-CP7xkxBf.js.gz +0 -0
  323. codex/static_root/assets/change-password-dialog-BBUWNZ9T.9a4b4651aaca.js.br +0 -0
  324. codex/static_root/assets/change-password-dialog-BBUWNZ9T.9a4b4651aaca.js.gz +0 -0
  325. codex/static_root/assets/change-password-dialog-BBUWNZ9T.js.br +0 -0
  326. codex/static_root/assets/change-password-dialog-BBUWNZ9T.js.gz +0 -0
  327. codex/static_root/assets/confirm-dialog-DigFSpih.c5546a032b3a.js.br +0 -0
  328. codex/static_root/assets/confirm-dialog-DigFSpih.c5546a032b3a.js.gz +0 -0
  329. codex/static_root/assets/confirm-dialog-DigFSpih.js.br +0 -0
  330. codex/static_root/assets/confirm-dialog-DigFSpih.js.gz +0 -0
  331. codex/static_root/assets/datetime-column-BJhx2yEd.ce37d39e8ade.js.br +0 -0
  332. codex/static_root/assets/datetime-column-BJhx2yEd.ce37d39e8ade.js.gz +0 -0
  333. codex/static_root/assets/datetime-column-BJhx2yEd.js.br +0 -0
  334. codex/static_root/assets/datetime-column-BJhx2yEd.js.gz +0 -0
  335. codex/static_root/assets/filter-bK1TFeXf.2ae19e25d2c7.js.br +0 -0
  336. codex/static_root/assets/filter-bK1TFeXf.2ae19e25d2c7.js.gz +0 -0
  337. codex/static_root/assets/filter-bK1TFeXf.js.br +0 -0
  338. codex/static_root/assets/filter-bK1TFeXf.js.gz +0 -0
  339. codex/static_root/assets/flag-tab-GqwAPkVR.4225f535406e.js.br +0 -0
  340. codex/static_root/assets/flag-tab-GqwAPkVR.4225f535406e.js.gz +0 -0
  341. codex/static_root/assets/flag-tab-GqwAPkVR.js.br +0 -0
  342. codex/static_root/assets/flag-tab-GqwAPkVR.js.gz +0 -0
  343. codex/static_root/assets/forwardRefs-B7vVpHcB.54db12a092c1.js.br +0 -0
  344. codex/static_root/assets/forwardRefs-B7vVpHcB.54db12a092c1.js.gz +0 -0
  345. codex/static_root/assets/forwardRefs-B7vVpHcB.js.br +0 -0
  346. codex/static_root/assets/forwardRefs-B7vVpHcB.js.gz +0 -0
  347. codex/static_root/assets/group-tab-oymKtTnn.708975542a01.js.br +0 -0
  348. codex/static_root/assets/group-tab-oymKtTnn.708975542a01.js.gz +0 -0
  349. codex/static_root/assets/group-tab-oymKtTnn.js.br +0 -0
  350. codex/static_root/assets/group-tab-oymKtTnn.js.gz +0 -0
  351. codex/static_root/assets/http-error-C4gic9U4.bcffc12035d6.js.br +0 -0
  352. codex/static_root/assets/http-error-C4gic9U4.bcffc12035d6.js.gz +0 -0
  353. codex/static_root/assets/http-error-C4gic9U4.js.br +0 -0
  354. codex/static_root/assets/http-error-C4gic9U4.js.gz +0 -0
  355. codex/static_root/assets/index-Dky_UT4Y.f36cc3d3bb8e.js.br +0 -0
  356. codex/static_root/assets/index-Dky_UT4Y.f36cc3d3bb8e.js.gz +0 -0
  357. codex/static_root/assets/index-Dky_UT4Y.js.br +0 -0
  358. codex/static_root/assets/index-Dky_UT4Y.js.gz +0 -0
  359. codex/static_root/assets/library-tab-RwAOFygt.098c3757576f.js.br +0 -0
  360. codex/static_root/assets/library-tab-RwAOFygt.098c3757576f.js.gz +0 -0
  361. codex/static_root/assets/library-tab-RwAOFygt.js.br +0 -0
  362. codex/static_root/assets/library-tab-RwAOFygt.js.gz +0 -0
  363. codex/static_root/assets/main-Clr8M5Ax.a4556fc120b9.js +0 -39
  364. codex/static_root/assets/main-Clr8M5Ax.a4556fc120b9.js.br +0 -0
  365. codex/static_root/assets/main-Clr8M5Ax.a4556fc120b9.js.gz +0 -0
  366. codex/static_root/assets/main-Clr8M5Ax.js +0 -39
  367. codex/static_root/assets/main-Clr8M5Ax.js.br +0 -0
  368. codex/static_root/assets/main-Clr8M5Ax.js.gz +0 -0
  369. codex/static_root/assets/pager-full-pdf-DD65irUx.5cea0807966c.js +0 -1
  370. codex/static_root/assets/pager-full-pdf-DD65irUx.5cea0807966c.js.br +0 -0
  371. codex/static_root/assets/pager-full-pdf-DD65irUx.5cea0807966c.js.gz +0 -0
  372. codex/static_root/assets/pager-full-pdf-DD65irUx.js +0 -1
  373. codex/static_root/assets/pager-full-pdf-DD65irUx.js.br +0 -0
  374. codex/static_root/assets/pager-full-pdf-DD65irUx.js.gz +0 -0
  375. codex/static_root/assets/pagination-toolbar-CpAEGtyx.74e38bf209bf.js.br +0 -0
  376. codex/static_root/assets/pagination-toolbar-CpAEGtyx.74e38bf209bf.js.gz +0 -0
  377. codex/static_root/assets/pagination-toolbar-CpAEGtyx.js.br +0 -0
  378. codex/static_root/assets/pagination-toolbar-CpAEGtyx.js.gz +0 -0
  379. codex/static_root/assets/pdf-doc-CVUu9wQx.bd34445a5869.js.br +0 -0
  380. codex/static_root/assets/pdf-doc-CVUu9wQx.bd34445a5869.js.gz +0 -0
  381. codex/static_root/assets/pdf-doc-CVUu9wQx.js.br +0 -0
  382. codex/static_root/assets/pdf-doc-CVUu9wQx.js.gz +0 -0
  383. codex/static_root/assets/reader-BZ9Q9Yrx.42934791915d.js.br +0 -0
  384. codex/static_root/assets/reader-BZ9Q9Yrx.42934791915d.js.gz +0 -0
  385. codex/static_root/assets/reader-BZ9Q9Yrx.js.br +0 -0
  386. codex/static_root/assets/reader-BZ9Q9Yrx.js.gz +0 -0
  387. codex/static_root/assets/relation-chips-TyU5GyFW.36e631c7bac7.js.br +0 -0
  388. codex/static_root/assets/relation-chips-TyU5GyFW.36e631c7bac7.js.gz +0 -0
  389. codex/static_root/assets/relation-chips-TyU5GyFW.js.br +0 -0
  390. codex/static_root/assets/relation-chips-TyU5GyFW.js.gz +0 -0
  391. codex/static_root/assets/settings-drawer-Cc97G_LR.7dd1ad60fd73.js +0 -2
  392. codex/static_root/assets/settings-drawer-Cc97G_LR.7dd1ad60fd73.js.br +0 -0
  393. codex/static_root/assets/settings-drawer-Cc97G_LR.7dd1ad60fd73.js.gz +0 -0
  394. codex/static_root/assets/settings-drawer-Cc97G_LR.js +0 -2
  395. codex/static_root/assets/settings-drawer-Cc97G_LR.js.br +0 -0
  396. codex/static_root/assets/settings-drawer-Cc97G_LR.js.gz +0 -0
  397. codex/static_root/assets/ssrBoot-0yd0wSvu.3c07b95bc7f3.js.br +0 -0
  398. codex/static_root/assets/ssrBoot-0yd0wSvu.3c07b95bc7f3.js.gz +0 -0
  399. codex/static_root/assets/ssrBoot-0yd0wSvu.js.br +0 -0
  400. codex/static_root/assets/ssrBoot-0yd0wSvu.js.gz +0 -0
  401. codex/static_root/assets/stats-tab-C9D50kqm.f1e98f0bf24f.js.br +0 -0
  402. codex/static_root/assets/stats-tab-C9D50kqm.f1e98f0bf24f.js.gz +0 -0
  403. codex/static_root/assets/stats-tab-C9D50kqm.js.br +0 -0
  404. codex/static_root/assets/stats-tab-C9D50kqm.js.gz +0 -0
  405. codex/static_root/assets/task-tab-iGPDuIqU.e15ed42d4130.js.br +0 -0
  406. codex/static_root/assets/task-tab-iGPDuIqU.e15ed42d4130.js.gz +0 -0
  407. codex/static_root/assets/task-tab-iGPDuIqU.js.br +0 -0
  408. codex/static_root/assets/task-tab-iGPDuIqU.js.gz +0 -0
  409. codex/static_root/assets/unauthorized-CjsSfde4.07229ba5ed8d.js.br +0 -0
  410. codex/static_root/assets/unauthorized-CjsSfde4.07229ba5ed8d.js.gz +0 -0
  411. codex/static_root/assets/unauthorized-CjsSfde4.js.br +0 -0
  412. codex/static_root/assets/unauthorized-CjsSfde4.js.gz +0 -0
  413. codex/static_root/assets/user-tab-e-oyoq4f.caaaf9f927f2.js.br +0 -0
  414. codex/static_root/assets/user-tab-e-oyoq4f.caaaf9f927f2.js.gz +0 -0
  415. codex/static_root/assets/user-tab-e-oyoq4f.js.br +0 -0
  416. codex/static_root/assets/user-tab-e-oyoq4f.js.gz +0 -0
  417. codex/static_root/manifest.33bfa3b55246.json.br +0 -0
  418. codex/static_root/manifest.33bfa3b55246.json.gz +0 -0
  419. {codex-1.8.3.dist-info → codex-1.8.5.dist-info}/WHEEL +0 -0
  420. {codex-1.8.3.dist-info → codex-1.8.5.dist-info}/entry_points.txt +0 -0
  421. {codex-1.8.3.dist-info → codex-1.8.5.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/VForm-BIO5K7ci.js": "assets/VForm-BIO5K7ci.2e61c9435367.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/change-password-dialog-BBUWNZ9T.js": "assets/change-password-dialog-BBUWNZ9T.9a4b4651aaca.js", "assets/admin-BTr0-CtZ.js": "assets/admin-BTr0-CtZ.4bb52847aaff.js", "assets/VDivider-CTBs-b0b.js": "assets/VDivider-CTBs-b0b.d0689e7d49d3.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/forwardRefs-B7vVpHcB.js": "assets/forwardRefs-B7vVpHcB.54db12a092c1.js", "assets/relation-chips-CcFgPQOM.css": "assets/relation-chips-CcFgPQOM.0b468249b62e.css", "assets/reader-BZ9Q9Yrx.js": "assets/reader-BZ9Q9Yrx.42934791915d.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/confirm-dialog-DigFSpih.js": "assets/confirm-dialog-DigFSpih.c5546a032b3a.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/pdf-doc-CVUu9wQx.js": "assets/pdf-doc-CVUu9wQx.bd34445a5869.js", "assets/settings-drawer-CpS_aX4Z.css": "assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css", "assets/browser-Cdi7U5ku.css": "assets/browser-Cdi7U5ku.bab9fccf0326.css", "assets/VSelectionControl-gIR5jZDY.js": "assets/VSelectionControl-gIR5jZDY.fd0da30d68c7.js", "assets/VDialog-CpWjrJ0R.css": "assets/VDialog-CpWjrJ0R.610ffc6302d4.css", "assets/VDialog-B0Jacmz7.js": "assets/VDialog-B0Jacmz7.68a94eee024a.js", "assets/forwardRefs-B_sUWZn6.css": "assets/forwardRefs-B_sUWZn6.5114f206ca9c.css", "assets/index-Dky_UT4Y.js": "assets/index-Dky_UT4Y.f36cc3d3bb8e.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/library-tab-RwAOFygt.js": "assets/library-tab-RwAOFygt.098c3757576f.js", "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/relation-chips-TyU5GyFW.js": "assets/relation-chips-TyU5GyFW.36e631c7bac7.js", "assets/VCheckboxBtn-BfvjNP65.js": "assets/VCheckboxBtn-BfvjNP65.a0bab3a9f68b.js", "assets/settings-drawer-Cc97G_LR.js": "assets/settings-drawer-Cc97G_LR.7dd1ad60fd73.js", "assets/pager-full-pdf-DD65irUx.js": "assets/pager-full-pdf-DD65irUx.5cea0807966c.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/ssrBoot-0yd0wSvu.js": "assets/ssrBoot-0yd0wSvu.3c07b95bc7f3.js", "assets/main-B8_0rUnw.css": "assets/main-B8_0rUnw.a9be0875ae25.css", "assets/pagination-toolbar-CpAEGtyx.js": "assets/pagination-toolbar-CpAEGtyx.74e38bf209bf.js", "assets/pagination-toolbar-741OafNw.css": "assets/pagination-toolbar-741OafNw.4f9155469274.css", "assets/stats-tab-Dpqh5pF9.css": "assets/stats-tab-Dpqh5pF9.8dba36f90032.css", "assets/VRadioGroup-RHrJKa0c.js": "assets/VRadioGroup-RHrJKa0c.1fdc29fcda3d.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VExpansionPanels-ConOnIoK.js": "assets/VExpansionPanels-ConOnIoK.a2f51811651b.js", "assets/library-tab-5StL67ei.css": "assets/library-tab-5StL67ei.0fad8998a237.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/task-tab-iGPDuIqU.js": "assets/task-tab-iGPDuIqU.e15ed42d4130.js", "assets/admin-menu-hpyUS8ku.css": "assets/admin-menu-hpyUS8ku.18284a11084d.css", "assets/admin-menu-BJlDRSiM.js": "assets/admin-menu-BJlDRSiM.6a930ab3f184.js", "assets/admin-DJCVf2PA.css": "assets/admin-DJCVf2PA.7ba26fd73264.css", "assets/VSelect-DQPZyfSb.css": "assets/VSelect-DQPZyfSb.57477277e7dd.css", "assets/admin-DHwj2Jb3.js": "assets/admin-DHwj2Jb3.f8bfa0dfd940.js", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/stats-tab-C9D50kqm.js": "assets/stats-tab-C9D50kqm.f1e98f0bf24f.js", "assets/user-tab-e-oyoq4f.js": "assets/user-tab-e-oyoq4f.caaaf9f927f2.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/group-tab-oymKtTnn.js": "assets/group-tab-oymKtTnn.708975542a01.js", "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/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/VWindowItem-TQGw1ubw.js": "assets/VWindowItem-TQGw1ubw.9b4f22d58ee9.js", "assets/VCombobox-BbwYSLBR.js": "assets/VCombobox-BbwYSLBR.2f7146fa1ffd.js", "assets/unauthorized-CjsSfde4.js": "assets/unauthorized-CjsSfde4.07229ba5ed8d.js", "assets/VTable-DzpeXwjm.js": "assets/VTable-DzpeXwjm.7435f1aea6f5.js", "assets/admin-settings-button-progress-Cks9_KN-.css": "assets/admin-settings-button-progress-Cks9_KN-.a592809d4008.css", "assets/admin-settings-button-progress-CiAb3cc6.js": "assets/admin-settings-button-progress-CiAb3cc6.3cbd997daa51.js", "assets/VCheckbox-D_XyTZ4u.js": "assets/VCheckbox-D_XyTZ4u.462bf6bac369.js", "assets/filter-bK1TFeXf.js": "assets/filter-bK1TFeXf.2ae19e25d2c7.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/reader-HE07eoaG.css": "assets/reader-HE07eoaG.8626eeb7c718.css", "assets/main-Clr8M5Ax.js": "assets/main-Clr8M5Ax.a4556fc120b9.js", "assets/VSelect-CfpKJejR.js": "assets/VSelect-CfpKJejR.72a85cc6f066.js", "assets/browser-CP7xkxBf.js": "assets/browser-CP7xkxBf.958314414cee.js", "assets/unauthorized-BBwsmi0O.css": "assets/unauthorized-BBwsmi0O.19d4882b821d.css", "assets/http-error-C4gic9U4.js": "assets/http-error-C4gic9U4.bcffc12035d6.js", "assets/datetime-column-BJhx2yEd.js": "assets/datetime-column-BJhx2yEd.ce37d39e8ade.js", "assets/flag-tab-GqwAPkVR.js": "assets/flag-tab-GqwAPkVR.4225f535406e.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.33bfa3b55246.json"}, "version": "1.1", "hash": "418aa8144f98"}
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/VExpansionPanels-BzyHQUL4.js": "assets/VExpansionPanels-BzyHQUL4.7e54cedf021c.js", "assets/main-Cnq2ldv_.js": "assets/main-Cnq2ldv_.1c0766500281.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/user-tab-CtQh6PJE.js": "assets/user-tab-CtQh6PJE.6b9a1d0e733a.js", "assets/relation-chips-CcFgPQOM.css": "assets/relation-chips-CcFgPQOM.0b468249b62e.css", "assets/VForm-CmVlbmJK.js": "assets/VForm-CmVlbmJK.887eb47d3534.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/library-tab-DPYjRIWp.js": "assets/library-tab-DPYjRIWp.58e434354594.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/VDialog-Cy6wFjb9.js": "assets/VDialog-Cy6wFjb9.9253a3f54f22.js", "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/admin-settings-button-progress-BPQGNinn.js": "assets/admin-settings-button-progress-BPQGNinn.53e05963f557.js", "assets/browser-Cdi7U5ku.css": "assets/browser-Cdi7U5ku.bab9fccf0326.css", "assets/relation-chips-B_z9ixOK.js": "assets/relation-chips-B_z9ixOK.8f144f1cf119.js", "assets/VDialog-CpWjrJ0R.css": "assets/VDialog-CpWjrJ0R.610ffc6302d4.css", "assets/browser-C19hTg9r.js": "assets/browser-C19hTg9r.9b5d0eadd6d4.js", "assets/pagination-toolbar-BFBKOWOc.js": "assets/pagination-toolbar-BFBKOWOc.3355103910ff.js", "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/VCombobox-Bfyp0szs.js": "assets/VCombobox-Bfyp0szs.b51553d29c8c.js", "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/pager-full-pdf-CdHAL6P3.js": "assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js", "assets/settings-drawer-Cd3M0s-h.js": "assets/settings-drawer-Cd3M0s-h.c5216209feb4.js", "assets/VSelectionControl-Dk52iIPb.js": "assets/VSelectionControl-Dk52iIPb.fe2504c50db4.js", "assets/flag-tab-Xpq_xAF5.js": "assets/flag-tab-Xpq_xAF5.3f14de61afcc.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/admin-Bt81XU3H.js": "assets/admin-Bt81XU3H.ca36b1a1b799.js", "assets/main-B8_0rUnw.css": "assets/main-B8_0rUnw.a9be0875ae25.css", "assets/forwardRefs-fUake9mW.js": "assets/forwardRefs-fUake9mW.12c1018cd1e3.js", "assets/pagination-toolbar-741OafNw.css": "assets/pagination-toolbar-741OafNw.4f9155469274.css", "assets/stats-tab-Dpqh5pF9.css": "assets/stats-tab-Dpqh5pF9.8dba36f90032.css", "assets/datetime-column-Dw9zxZLR.js": "assets/datetime-column-Dw9zxZLR.cd8791cda91b.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VRadioGroup-DWzKkq9W.js": "assets/VRadioGroup-DWzKkq9W.daaabd353889.js", "assets/library-tab-5StL67ei.css": "assets/library-tab-5StL67ei.0fad8998a237.css", "assets/unauthorized-IXAh-oLS.js": "assets/unauthorized-IXAh-oLS.be484d21eb2a.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/index-j9jeRHe0.js": "assets/index-j9jeRHe0.294b614eaea1.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/filter-BNTCrH8l.js": "assets/filter-BNTCrH8l.c00298a8fccf.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/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/confirm-dialog-CgSU27R5.js": "assets/confirm-dialog-CgSU27R5.0127ce62d24c.js", "assets/pdf-doc-XAg2nqnS.js": "assets/pdf-doc-XAg2nqnS.5a33f918a28a.js", "assets/admin-settings-button-progress-Cks9_KN-.css": "assets/admin-settings-button-progress-Cks9_KN-.a592809d4008.css", "assets/VCheckboxBtn-BE6yrQ80.js": "assets/VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js", "assets/stats-tab-Bncgetpc.js": "assets/stats-tab-Bncgetpc.94f90b6a111b.js", "assets/http-error-C6bKTzfv.js": "assets/http-error-C6bKTzfv.168d047d5219.js", "assets/VWindowItem-DBU8ce0X.js": "assets/VWindowItem-DBU8ce0X.4bbcffa75b9a.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/VSelect-Cqjdw0PV.js": "assets/VSelect-Cqjdw0PV.ab01020c5ef4.js", "assets/reader-HE07eoaG.css": "assets/reader-HE07eoaG.8626eeb7c718.css", "assets/VDivider-BEpvozL4.js": "assets/VDivider-BEpvozL4.c9fd95940cb5.js", "assets/VCheckbox-DxJUMufz.js": "assets/VCheckbox-DxJUMufz.9a175cfa72c8.js", "assets/unauthorized-BBwsmi0O.css": "assets/unauthorized-BBwsmi0O.19d4882b821d.css", "assets/task-tab-BWkw24-u.js": "assets/task-tab-BWkw24-u.0e981a767773.js", "assets/VTable-Ch5ZSNsk.js": "assets/VTable-Ch5ZSNsk.c38a2cb589fa.js", "assets/ssrBoot-CoIsTnhp.js": "assets/ssrBoot-CoIsTnhp.ab2c4669478d.js", "assets/admin-CfqMNEyt.js": "assets/admin-CfqMNEyt.bebc609836d0.js", "assets/reader-BZ4Dp-_5.js": "assets/reader-BZ4Dp-_5.ecd9d42077af.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/change-password-dialog-DPAIPGJa.js": "assets/change-password-dialog-DPAIPGJa.7c4c436e259e.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/admin-menu-Db5b3nba.js": "assets/admin-menu-Db5b3nba.09d034934b88.js", "assets/group-tab-E_R0glEI.js": "assets/group-tab-E_R0glEI.82e1d92be747.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.92b1b461eee2.json"}, "version": "1.1", "hash": "77b7286a36d6"}
@@ -1,8 +1,11 @@
1
1
  """Bookmark view."""
2
2
 
3
+ from types import MappingProxyType
4
+
3
5
  from drf_spectacular.utils import extend_schema
4
6
  from rest_framework.response import Response
5
7
  from rest_framework.serializers import BaseSerializer
8
+ from typing_extensions import override
6
9
 
7
10
  from codex.librarian.bookmark.update import BookmarkUpdateMixin
8
11
  from codex.models.comic import Comic
@@ -56,3 +59,12 @@ class BookmarkView(BookmarkUpdateMixin, BookmarkAuthMixin, BrowserFilterView):
56
59
 
57
60
  self.update_bookmarks(auth_filter, comic_qs, updates)
58
61
  return Response()
62
+
63
+ @property
64
+ @override
65
+ def params(self):
66
+ """Retrieve params but don't save them."""
67
+ if self._params is None:
68
+ params = self.load_params_from_session()
69
+ self._params = MappingProxyType(params)
70
+ return self._params
@@ -4,8 +4,6 @@ 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
8
- from codex.views.const import FOLDER_GROUP, STORY_ARC_GROUP
9
7
  from codex.views.session import SessionView
10
8
 
11
9
 
@@ -19,31 +17,13 @@ class BrowserParamsView(SessionView):
19
17
  super().__init__(*args, **kwargs)
20
18
  self._params: MappingProxyType[str, Any] | None = None
21
19
 
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
-
37
20
  @property
38
21
  def params(self):
39
22
  """Validate submitted settings and apply them over the session settings."""
40
23
  if self._params is None:
41
24
  serializer = self.input_serializer_class(data=self.request.GET)
42
25
  serializer.is_valid(raise_exception=True)
43
-
44
- params = mapping_to_dict(self.SESSION_DEFAULTS[self.SESSION_KEY])
45
- if order_defaults := self._get_order_defaults():
46
- params.update(order_defaults)
26
+ params = self.get_param_defaults()
47
27
  if serializer.validated_data:
48
28
  params.update(serializer.validated_data)
49
29
  self.save_params_to_session(params)
@@ -21,19 +21,6 @@ class BrowserSettingsView(SettingsView):
21
21
 
22
22
  SESSION_KEY: str = SettingsView.BROWSER_SESSION_KEY
23
23
 
24
- @staticmethod
25
- def _strip_breadcrumb_names(params):
26
- """Remove names from breadcrumbs."""
27
- breadcrumbs = params.get("breadcrumbs")
28
- if not breadcrumbs:
29
- return params
30
- nameless_breadcrumbs = []
31
- for crumb in breadcrumbs:
32
- crumb.pop("name", None)
33
- nameless_breadcrumbs.append(crumb)
34
- params["breadcrumbs"] = nameless_breadcrumbs
35
- return params
36
-
37
24
  @staticmethod
38
25
  def _validate_browse_top_group(params, group, top_group):
39
26
  """Validate top group for browse groups."""
@@ -65,13 +52,12 @@ class BrowserSettingsView(SettingsView):
65
52
  @override
66
53
  def validate_settings_get(self, validated_data, params):
67
54
  """Change bad settings."""
55
+ # This is a micro version of browser/validate.py
56
+ # It would be ideal to combine them but browser validate does redirects so maybe later.
57
+ # Bookmark is also a browser view, but it's patch() doesn't actually use top group, I think.
68
58
  top_group = params["top_group"]
69
59
  group = validated_data.get("group", "r") if validated_data else "r"
70
60
  self._validate_top_group(params, group, top_group)
71
-
72
- if not validated_data.get("breadcrumb_names", True):
73
- params = self._strip_breadcrumb_names(params)
74
-
75
61
  return params
76
62
 
77
63
  @override
@@ -7,7 +7,6 @@ from loguru import logger
7
7
 
8
8
  from codex.serializers.fields.reader import VALID_ARC_GROUPS
9
9
  from codex.serializers.reader import ReaderViewInputSerializer
10
- from codex.util import mapping_to_dict
11
10
  from codex.views.session import SessionView
12
11
 
13
12
 
@@ -59,7 +58,7 @@ class ReaderParamsView(SessionView):
59
58
  serializer = self.input_serializer_class(data=self.request.GET)
60
59
  serializer.is_valid(raise_exception=True)
61
60
 
62
- params = mapping_to_dict(dict(self.SESSION_DEFAULTS[self.SESSION_KEY]))
61
+ params = self.get_param_defaults()
63
62
  if serializer.validated_data:
64
63
  params.update(serializer.validated_data)
65
64
  self._ensure_arc(params)
codex/views/session.py CHANGED
@@ -3,6 +3,7 @@
3
3
  from abc import ABC
4
4
  from copy import deepcopy
5
5
  from types import MappingProxyType
6
+ from typing import Any
6
7
 
7
8
  from loguru import logger
8
9
 
@@ -10,6 +11,7 @@ from codex.choices.browser import BROWSER_DEFAULTS
10
11
  from codex.choices.reader import READER_DEFAULTS
11
12
  from codex.util import mapping_to_dict
12
13
  from codex.views.auth import AuthFilterGenericAPIView
14
+ from codex.views.const import FOLDER_GROUP, STORY_ARC_GROUP
13
15
  from codex.views.util import pop_name
14
16
 
15
17
  CREDIT_PERSON_UI_FIELD = "credits"
@@ -107,12 +109,27 @@ class SessionView(AuthFilterGenericAPIView, ABC):
107
109
  )
108
110
  return result
109
111
 
110
- def load_params_from_session(self, session_key=None, only=None):
111
- """Get session settings with defaults."""
112
+ def _get_browser_order_defaults(self) -> dict:
113
+ if group := self.kwargs.get("group"):
114
+ # order_by has a dynamic group based default
115
+ order_by = (
116
+ "filename"
117
+ if group == FOLDER_GROUP
118
+ else "story_arc_number"
119
+ if group == STORY_ARC_GROUP
120
+ else "sort_name"
121
+ )
122
+ order_defaults = {"order_by": order_by}
123
+ else:
124
+ order_defaults = {}
125
+ return order_defaults
126
+
127
+ def get_param_defaults(self, session_key: str = "", only: list[str] | None = None):
128
+ """Get default params."""
112
129
  if not session_key:
113
130
  session_key = self.SESSION_KEY
114
131
  if only:
115
- defaults = {}
132
+ defaults: dict[str, Any] = {}
116
133
  for key in only:
117
134
  if key:
118
135
  defaults[key] = mapping_to_dict(
@@ -120,7 +137,20 @@ class SessionView(AuthFilterGenericAPIView, ABC):
120
137
  )
121
138
  else:
122
139
  defaults = mapping_to_dict(self.SESSION_DEFAULTS[session_key])
140
+ if session_key == self.BROWSER_SESSION_KEY:
141
+ # There's no BrowserSession so conditional on session key.
142
+ order_defaults = self._get_browser_order_defaults()
143
+ defaults.update(order_defaults)
144
+ return defaults
145
+
146
+ def load_params_from_session(
147
+ self, session_key: str | None = None, only: list[str] | None = None
148
+ ):
149
+ """Get session settings with defaults."""
150
+ if not session_key:
151
+ session_key = self.SESSION_KEY
123
152
 
153
+ defaults = self.get_param_defaults(session_key, only)
124
154
  session = self.request.session.get(session_key, defaults)
125
155
  return self._get_source_values_or_set_defaults(defaults, session, {})
126
156
 
codex/views/settings.py CHANGED
@@ -36,6 +36,7 @@ class SettingsView(SessionView, ABC):
36
36
  data = self.request.data
37
37
  serializer = self.get_serializer(data=data)
38
38
  serializer.is_valid(raise_exception=True)
39
+ # Reader has arc validation, but not really
39
40
  params = self.load_params_from_session()
40
41
  params.update(serializer.validated_data)
41
42
  self.save_params_to_session(params)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex
3
- Version: 1.8.3
3
+ Version: 1.8.5
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
@@ -85,7 +85,7 @@ border-radius: 128px;
85
85
  - Add custom covers to Folders, Publishers, Imprints, Series, and Story Arcs.
86
86
  - Runs in 1GB of RAM, faster with more.
87
87
 
88
- #### Examples
88
+ ### Examples
89
89
 
90
90
  - _Filter by_ Story Arc and Unread, _Order by_ Publish Date to create an event
91
91
  reading list.