codex 1.7.12__py3-none-any.whl → 1.7.13__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 (614) hide show
  1. codex/choices/choices_to_json.py +1 -1
  2. codex/migrations/0013_int_issue_count_longer_charfields.py +1 -1
  3. codex/run.py +1 -1
  4. codex/serializers/route.py +3 -1
  5. codex/settings/settings.py +1 -0
  6. codex/startup.py +1 -2
  7. codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js +1 -0
  8. codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js.br +0 -0
  9. codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js.gz +0 -0
  10. codex/static_root/assets/VCheckbox-CmDJN2RH.js +1 -0
  11. codex/static_root/assets/VCheckbox-CmDJN2RH.js.br +0 -0
  12. codex/static_root/assets/VCheckbox-CmDJN2RH.js.gz +0 -0
  13. codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js +1 -0
  14. codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js.br +0 -0
  15. codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js.gz +0 -0
  16. codex/static_root/assets/VCheckboxBtn-07Vspsxn.js +1 -0
  17. codex/static_root/assets/VCheckboxBtn-07Vspsxn.js.br +0 -0
  18. codex/static_root/assets/VCheckboxBtn-07Vspsxn.js.gz +0 -0
  19. codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js +1 -0
  20. codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js.br +0 -0
  21. codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js.gz +0 -0
  22. codex/static_root/assets/VCombobox-CuTDA3lY.js +1 -0
  23. codex/static_root/assets/VCombobox-CuTDA3lY.js.br +0 -0
  24. codex/static_root/assets/VCombobox-CuTDA3lY.js.gz +0 -0
  25. codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css +1 -0
  26. codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css.br +0 -0
  27. codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css.gz +0 -0
  28. codex/static_root/assets/VCombobox-DHFthaP6.css +1 -0
  29. codex/static_root/assets/VCombobox-DHFthaP6.css.br +0 -0
  30. codex/static_root/assets/VCombobox-DHFthaP6.css.gz +0 -0
  31. codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js +1 -0
  32. codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js.br +0 -0
  33. codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js.gz +0 -0
  34. codex/static_root/assets/VDialog-DRj4eBrO.js +1 -0
  35. codex/static_root/assets/VDialog-DRj4eBrO.js.br +0 -0
  36. codex/static_root/assets/VDialog-DRj4eBrO.js.gz +0 -0
  37. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css +1 -0
  38. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.br +0 -0
  39. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.gz +0 -0
  40. codex/static_root/assets/VDialog-DYkXmPin.css +1 -0
  41. codex/static_root/assets/VDialog-DYkXmPin.css.br +0 -0
  42. codex/static_root/assets/VDialog-DYkXmPin.css.gz +0 -0
  43. codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js +1 -0
  44. codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js.br +0 -0
  45. codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js.gz +0 -0
  46. codex/static_root/assets/VDivider-D1t2hkjV.js +1 -0
  47. codex/static_root/assets/VDivider-D1t2hkjV.js.br +0 -0
  48. codex/static_root/assets/VDivider-D1t2hkjV.js.gz +0 -0
  49. codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js +1 -0
  50. codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js.br +0 -0
  51. codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js.gz +0 -0
  52. codex/static_root/assets/VExpansionPanels-B-5dXRRB.js +1 -0
  53. codex/static_root/assets/VExpansionPanels-B-5dXRRB.js.br +0 -0
  54. codex/static_root/assets/VExpansionPanels-B-5dXRRB.js.gz +0 -0
  55. codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js +1 -0
  56. codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js.br +0 -0
  57. codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js.gz +0 -0
  58. codex/static_root/assets/VForm-Be9DdO0x.js +1 -0
  59. codex/static_root/assets/VForm-Be9DdO0x.js.br +0 -0
  60. codex/static_root/assets/VForm-Be9DdO0x.js.gz +0 -0
  61. codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js +1 -0
  62. codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js.br +0 -0
  63. codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js.gz +0 -0
  64. codex/static_root/assets/VRadioGroup-_mPqHM3O.js +1 -0
  65. codex/static_root/assets/VRadioGroup-_mPqHM3O.js.br +0 -0
  66. codex/static_root/assets/VRadioGroup-_mPqHM3O.js.gz +0 -0
  67. codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js +1 -0
  68. codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js.br +0 -0
  69. codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js.gz +0 -0
  70. codex/static_root/assets/VSelect-BbT1aJkP.js +1 -0
  71. codex/static_root/assets/VSelect-BbT1aJkP.js.br +0 -0
  72. codex/static_root/assets/VSelect-BbT1aJkP.js.gz +0 -0
  73. codex/static_root/assets/{VSelect-CBNrI-XP.f03b50289345.css → VSelect-CKXqRkBF.a8be1e193eba.css} +1 -1
  74. codex/static_root/assets/VSelect-CKXqRkBF.a8be1e193eba.css.br +0 -0
  75. codex/static_root/assets/VSelect-CKXqRkBF.a8be1e193eba.css.gz +0 -0
  76. codex/static_root/assets/{VSelect-CBNrI-XP.css → VSelect-CKXqRkBF.css} +1 -1
  77. codex/static_root/assets/VSelect-CKXqRkBF.css.br +0 -0
  78. codex/static_root/assets/VSelect-CKXqRkBF.css.gz +0 -0
  79. codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js +1 -0
  80. codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js.br +0 -0
  81. codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js.gz +0 -0
  82. codex/static_root/assets/VSelectionControl-DbdMme4i.js +1 -0
  83. codex/static_root/assets/VSelectionControl-DbdMme4i.js.br +0 -0
  84. codex/static_root/assets/VSelectionControl-DbdMme4i.js.gz +0 -0
  85. codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js +1 -0
  86. codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js.br +0 -0
  87. codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js.gz +0 -0
  88. codex/static_root/assets/VTable-C7Pj2AU0.js +1 -0
  89. codex/static_root/assets/VTable-C7Pj2AU0.js.br +0 -0
  90. codex/static_root/assets/VTable-C7Pj2AU0.js.gz +0 -0
  91. codex/static_root/assets/{VTable-BnxSZ_W5.c36f0a6a30cf.css → VTable-CHRVGI94.0a75643f6486.css} +1 -1
  92. codex/static_root/assets/VTable-CHRVGI94.0a75643f6486.css.br +0 -0
  93. codex/static_root/assets/VTable-CHRVGI94.0a75643f6486.css.gz +0 -0
  94. codex/static_root/assets/{VTable-BnxSZ_W5.css → VTable-CHRVGI94.css} +1 -1
  95. codex/static_root/assets/VTable-CHRVGI94.css.br +0 -0
  96. codex/static_root/assets/VTable-CHRVGI94.css.gz +0 -0
  97. codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js +1 -0
  98. codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js.br +0 -0
  99. codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js.gz +0 -0
  100. codex/static_root/assets/VWindowItem-B9xi23cd.js +1 -0
  101. codex/static_root/assets/VWindowItem-B9xi23cd.js.br +0 -0
  102. codex/static_root/assets/VWindowItem-B9xi23cd.js.gz +0 -0
  103. codex/static_root/assets/{admin-BpE7-fB4.8c4508dad617.js → admin-C78J3iIT.e0499821711c.js} +1 -1
  104. codex/static_root/assets/admin-C78J3iIT.e0499821711c.js.br +0 -0
  105. codex/static_root/assets/admin-C78J3iIT.e0499821711c.js.gz +0 -0
  106. codex/static_root/assets/{admin-BpE7-fB4.js → admin-C78J3iIT.js} +1 -1
  107. codex/static_root/assets/admin-C78J3iIT.js.br +0 -0
  108. codex/static_root/assets/admin-C78J3iIT.js.gz +0 -0
  109. codex/static_root/assets/admin-DycvhYet.33740bd797c9.js +1 -0
  110. codex/static_root/assets/admin-DycvhYet.33740bd797c9.js.br +0 -0
  111. codex/static_root/assets/admin-DycvhYet.33740bd797c9.js.gz +0 -0
  112. codex/static_root/assets/admin-DycvhYet.js +1 -0
  113. codex/static_root/assets/admin-DycvhYet.js.br +0 -0
  114. codex/static_root/assets/admin-DycvhYet.js.gz +0 -0
  115. codex/static_root/assets/admin-klMr_GZK.3784e4f1d624.css +1 -0
  116. codex/static_root/assets/admin-klMr_GZK.3784e4f1d624.css.br +0 -0
  117. codex/static_root/assets/admin-klMr_GZK.3784e4f1d624.css.gz +0 -0
  118. codex/static_root/assets/admin-klMr_GZK.css +1 -0
  119. codex/static_root/assets/admin-klMr_GZK.css.br +0 -0
  120. codex/static_root/assets/admin-klMr_GZK.css.gz +0 -0
  121. codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js +1 -0
  122. codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js.br +0 -0
  123. codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js.gz +0 -0
  124. codex/static_root/assets/admin-menu-g8qk-zrV.js +1 -0
  125. codex/static_root/assets/admin-menu-g8qk-zrV.js.br +0 -0
  126. codex/static_root/assets/admin-menu-g8qk-zrV.js.gz +0 -0
  127. codex/static_root/assets/{admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js → admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js} +1 -1
  128. codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js.br +0 -0
  129. codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js.gz +0 -0
  130. codex/static_root/assets/{admin-settings-button-progress-wIXv-9g2.js → admin-settings-button-progress-CPzM-FJJ.js} +1 -1
  131. codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.js.br +0 -0
  132. codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.js.gz +0 -0
  133. codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js +1 -0
  134. codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js.br +0 -0
  135. codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js.gz +0 -0
  136. codex/static_root/assets/browser-DJgssiJu.js +1 -0
  137. codex/static_root/assets/browser-DJgssiJu.js.br +0 -0
  138. codex/static_root/assets/browser-DJgssiJu.js.gz +0 -0
  139. codex/static_root/assets/{browser-ClPcbrsf.c8620affa34d.css → browser-sNm790x9.305a6a4f38fd.css} +1 -1
  140. codex/static_root/assets/browser-sNm790x9.305a6a4f38fd.css.br +0 -0
  141. codex/static_root/assets/browser-sNm790x9.305a6a4f38fd.css.gz +0 -0
  142. codex/static_root/assets/{browser-ClPcbrsf.css → browser-sNm790x9.css} +1 -1
  143. codex/static_root/assets/browser-sNm790x9.css.br +0 -0
  144. codex/static_root/assets/browser-sNm790x9.css.gz +0 -0
  145. codex/static_root/assets/{change-password-dialog-DOioR_QK.75126226aeee.js → change-password-dialog-CNWUpsff.2a6249951bb6.js} +1 -1
  146. codex/static_root/assets/change-password-dialog-CNWUpsff.2a6249951bb6.js.br +0 -0
  147. codex/static_root/assets/change-password-dialog-CNWUpsff.2a6249951bb6.js.gz +0 -0
  148. codex/static_root/assets/{change-password-dialog-DOioR_QK.js → change-password-dialog-CNWUpsff.js} +1 -1
  149. codex/static_root/assets/change-password-dialog-CNWUpsff.js.br +0 -0
  150. codex/static_root/assets/change-password-dialog-CNWUpsff.js.gz +0 -0
  151. codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js +1 -0
  152. codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js.br +0 -0
  153. codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js.gz +0 -0
  154. codex/static_root/assets/confirm-dialog-B4fmqtXn.js +1 -0
  155. codex/static_root/assets/confirm-dialog-B4fmqtXn.js.br +0 -0
  156. codex/static_root/assets/confirm-dialog-B4fmqtXn.js.gz +0 -0
  157. codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js +1 -0
  158. codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js.br +0 -0
  159. codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js.gz +0 -0
  160. codex/static_root/assets/datetime-column-BC6Dncpu.js +1 -0
  161. codex/static_root/assets/datetime-column-BC6Dncpu.js.br +0 -0
  162. codex/static_root/assets/datetime-column-BC6Dncpu.js.gz +0 -0
  163. codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js +1 -0
  164. codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js.br +0 -0
  165. codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js.gz +0 -0
  166. codex/static_root/assets/filter-wbh_0cB-.js +1 -0
  167. codex/static_root/assets/filter-wbh_0cB-.js.br +0 -0
  168. codex/static_root/assets/filter-wbh_0cB-.js.gz +0 -0
  169. codex/static_root/assets/{flag-tab-kMgSs3vx.7ca3ec2db15e.js → flag-tab-BhehN8hQ.584e909ecdd6.js} +1 -1
  170. codex/static_root/assets/flag-tab-BhehN8hQ.584e909ecdd6.js.br +0 -0
  171. codex/static_root/assets/flag-tab-BhehN8hQ.584e909ecdd6.js.gz +0 -0
  172. codex/static_root/assets/{flag-tab-kMgSs3vx.js → flag-tab-BhehN8hQ.js} +1 -1
  173. codex/static_root/assets/flag-tab-BhehN8hQ.js.br +0 -0
  174. codex/static_root/assets/flag-tab-BhehN8hQ.js.gz +0 -0
  175. codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css +1 -0
  176. codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css.br +0 -0
  177. codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css.gz +0 -0
  178. codex/static_root/assets/forwardRefs-CXZy2GSt.css +1 -0
  179. codex/static_root/assets/forwardRefs-CXZy2GSt.css.br +0 -0
  180. codex/static_root/assets/forwardRefs-CXZy2GSt.css.gz +0 -0
  181. codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js +1 -0
  182. codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js.br +0 -0
  183. codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js.gz +0 -0
  184. codex/static_root/assets/forwardRefs-DG6cgrKs.js +1 -0
  185. codex/static_root/assets/forwardRefs-DG6cgrKs.js.br +0 -0
  186. codex/static_root/assets/forwardRefs-DG6cgrKs.js.gz +0 -0
  187. codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js +1 -0
  188. codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js.br +0 -0
  189. codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js.gz +0 -0
  190. codex/static_root/assets/group-tab-BZExFXC-.js +1 -0
  191. codex/static_root/assets/group-tab-BZExFXC-.js.br +0 -0
  192. codex/static_root/assets/group-tab-BZExFXC-.js.gz +0 -0
  193. codex/static_root/assets/http-error-BHy1v31U.516903532e16.js +1 -0
  194. codex/static_root/assets/http-error-BHy1v31U.516903532e16.js.br +0 -0
  195. codex/static_root/assets/http-error-BHy1v31U.516903532e16.js.gz +0 -0
  196. codex/static_root/assets/http-error-BHy1v31U.js +1 -0
  197. codex/static_root/assets/http-error-BHy1v31U.js.br +0 -0
  198. codex/static_root/assets/http-error-BHy1v31U.js.gz +0 -0
  199. codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js +1 -0
  200. codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js.br +0 -0
  201. codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js.gz +0 -0
  202. codex/static_root/assets/index-BxnlX5gb.js +1 -0
  203. codex/static_root/assets/index-BxnlX5gb.js.br +0 -0
  204. codex/static_root/assets/index-BxnlX5gb.js.gz +0 -0
  205. codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js +1 -0
  206. codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js.br +0 -0
  207. codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js.gz +0 -0
  208. codex/static_root/assets/library-tab-Cq-D776f.js +1 -0
  209. codex/static_root/assets/library-tab-Cq-D776f.js.br +0 -0
  210. codex/static_root/assets/library-tab-Cq-D776f.js.gz +0 -0
  211. codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js +39 -0
  212. codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js.br +0 -0
  213. codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js.gz +0 -0
  214. codex/static_root/assets/main-NV7Sm4nK.js +39 -0
  215. codex/static_root/assets/main-NV7Sm4nK.js.br +0 -0
  216. codex/static_root/assets/main-NV7Sm4nK.js.gz +0 -0
  217. codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js +1 -0
  218. codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js.br +0 -0
  219. codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js.gz +0 -0
  220. codex/static_root/assets/pager-full-pdf-DOYtfHYl.js +1 -0
  221. codex/static_root/assets/pager-full-pdf-DOYtfHYl.js.br +0 -0
  222. codex/static_root/assets/pager-full-pdf-DOYtfHYl.js.gz +0 -0
  223. codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js +1 -0
  224. codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js.br +0 -0
  225. codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js.gz +0 -0
  226. codex/static_root/assets/pagination-toolbar-BpWqCTpI.js +1 -0
  227. codex/static_root/assets/pagination-toolbar-BpWqCTpI.js.br +0 -0
  228. codex/static_root/assets/pagination-toolbar-BpWqCTpI.js.gz +0 -0
  229. codex/static_root/assets/{pagination-toolbar-DkYjhdVb.css → pagination-toolbar-aHRrdz48.2cbd38f9256c.css} +1 -1
  230. codex/static_root/assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css.br +0 -0
  231. codex/static_root/assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css.gz +0 -0
  232. codex/static_root/assets/{pagination-toolbar-DkYjhdVb.d431a5b140aa.css → pagination-toolbar-aHRrdz48.css} +1 -1
  233. codex/static_root/assets/pagination-toolbar-aHRrdz48.css.br +0 -0
  234. codex/static_root/assets/pagination-toolbar-aHRrdz48.css.gz +0 -0
  235. codex/static_root/assets/{pdf-doc-HpDB0I3q.a991cdc377eb.js → pdf-doc-DAUp5U7y.821d344d6401.js} +1 -1
  236. codex/static_root/assets/pdf-doc-DAUp5U7y.821d344d6401.js.br +0 -0
  237. codex/static_root/assets/pdf-doc-DAUp5U7y.821d344d6401.js.gz +0 -0
  238. codex/static_root/assets/{pdf-doc-HpDB0I3q.js → pdf-doc-DAUp5U7y.js} +1 -1
  239. codex/static_root/assets/pdf-doc-DAUp5U7y.js.br +0 -0
  240. codex/static_root/assets/pdf-doc-DAUp5U7y.js.gz +0 -0
  241. codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js +2 -0
  242. codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js.br +0 -0
  243. codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js.gz +0 -0
  244. codex/static_root/assets/reader-BjIgRfH2.js +2 -0
  245. codex/static_root/assets/reader-BjIgRfH2.js.br +0 -0
  246. codex/static_root/assets/reader-BjIgRfH2.js.gz +0 -0
  247. codex/static_root/assets/{reader-BIqif2zL.755da5eee67d.css → reader-D7Bx0Vcv.34af07084fcb.css} +1 -1
  248. codex/static_root/assets/reader-D7Bx0Vcv.34af07084fcb.css.br +0 -0
  249. codex/static_root/assets/reader-D7Bx0Vcv.34af07084fcb.css.gz +0 -0
  250. codex/static_root/assets/{reader-BIqif2zL.css → reader-D7Bx0Vcv.css} +1 -1
  251. codex/static_root/assets/reader-D7Bx0Vcv.css.br +0 -0
  252. codex/static_root/assets/reader-D7Bx0Vcv.css.gz +0 -0
  253. codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js +1 -0
  254. codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js.br +0 -0
  255. codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js.gz +0 -0
  256. codex/static_root/assets/relation-chips-Bp-GmsDz.js +1 -0
  257. codex/static_root/assets/relation-chips-Bp-GmsDz.js.br +0 -0
  258. codex/static_root/assets/relation-chips-Bp-GmsDz.js.gz +0 -0
  259. codex/static_root/assets/relation-chips-DvAOMwcd.css +1 -0
  260. codex/static_root/assets/relation-chips-DvAOMwcd.css.br +0 -0
  261. codex/static_root/assets/relation-chips-DvAOMwcd.css.gz +0 -0
  262. codex/static_root/assets/relation-chips-DvAOMwcd.ebc505834f81.css +1 -0
  263. codex/static_root/assets/relation-chips-DvAOMwcd.ebc505834f81.css.br +0 -0
  264. codex/static_root/assets/relation-chips-DvAOMwcd.ebc505834f81.css.gz +0 -0
  265. codex/static_root/assets/settings-drawer-WyG6HLH-.css +1 -0
  266. codex/static_root/assets/settings-drawer-WyG6HLH-.css.br +0 -0
  267. codex/static_root/assets/settings-drawer-WyG6HLH-.css.gz +0 -0
  268. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css +1 -0
  269. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.br +0 -0
  270. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.gz +0 -0
  271. codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js +2 -0
  272. codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js.br +0 -0
  273. codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js.gz +0 -0
  274. codex/static_root/assets/settings-drawer-ynpXH44c.js +2 -0
  275. codex/static_root/assets/settings-drawer-ynpXH44c.js.br +0 -0
  276. codex/static_root/assets/settings-drawer-ynpXH44c.js.gz +0 -0
  277. codex/static_root/assets/{ssrBoot-B73_e82Z.3d5063c17c68.js → ssrBoot-CTyNesCO.03ec3bf85a27.js} +1 -1
  278. codex/static_root/assets/ssrBoot-CTyNesCO.03ec3bf85a27.js.br +0 -0
  279. codex/static_root/assets/ssrBoot-CTyNesCO.03ec3bf85a27.js.gz +0 -0
  280. codex/static_root/assets/{ssrBoot-B73_e82Z.js → ssrBoot-CTyNesCO.js} +1 -1
  281. codex/static_root/assets/ssrBoot-CTyNesCO.js.br +0 -0
  282. codex/static_root/assets/ssrBoot-CTyNesCO.js.gz +0 -0
  283. codex/static_root/assets/{stats-tab-Kt45gqtN.858a124412d0.js → stats-tab-ZfoK3F_k.7565c9bbd336.js} +1 -1
  284. codex/static_root/assets/stats-tab-ZfoK3F_k.7565c9bbd336.js.br +0 -0
  285. codex/static_root/assets/stats-tab-ZfoK3F_k.7565c9bbd336.js.gz +0 -0
  286. codex/static_root/assets/{stats-tab-Kt45gqtN.js → stats-tab-ZfoK3F_k.js} +1 -1
  287. codex/static_root/assets/stats-tab-ZfoK3F_k.js.br +0 -0
  288. codex/static_root/assets/stats-tab-ZfoK3F_k.js.gz +0 -0
  289. codex/static_root/assets/{task-tab-DDKv2JN0.ea54c5cf8e0f.js → task-tab-DNGSwaO3.273261947a02.js} +1 -1
  290. codex/static_root/assets/task-tab-DNGSwaO3.273261947a02.js.br +0 -0
  291. codex/static_root/assets/task-tab-DNGSwaO3.273261947a02.js.gz +0 -0
  292. codex/static_root/assets/{task-tab-DDKv2JN0.js → task-tab-DNGSwaO3.js} +1 -1
  293. codex/static_root/assets/task-tab-DNGSwaO3.js.br +0 -0
  294. codex/static_root/assets/task-tab-DNGSwaO3.js.gz +0 -0
  295. codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css +1 -0
  296. codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css.br +0 -0
  297. codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css.gz +0 -0
  298. codex/static_root/assets/unauthorized-DE63n2Pi.css +1 -0
  299. codex/static_root/assets/unauthorized-DE63n2Pi.css.br +0 -0
  300. codex/static_root/assets/unauthorized-DE63n2Pi.css.gz +0 -0
  301. codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js +1 -0
  302. codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js.br +0 -0
  303. codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js.gz +0 -0
  304. codex/static_root/assets/unauthorized-bi5K10vQ.js +1 -0
  305. codex/static_root/assets/unauthorized-bi5K10vQ.js.br +0 -0
  306. codex/static_root/assets/unauthorized-bi5K10vQ.js.gz +0 -0
  307. codex/static_root/assets/{user-tab-77Bjv-sy.994ac66245a1.js → user-tab-BASy3q9X.3a7f9fc383e1.js} +1 -1
  308. codex/static_root/assets/user-tab-BASy3q9X.3a7f9fc383e1.js.br +0 -0
  309. codex/static_root/assets/user-tab-BASy3q9X.3a7f9fc383e1.js.gz +0 -0
  310. codex/static_root/assets/{user-tab-77Bjv-sy.js → user-tab-BASy3q9X.js} +1 -1
  311. codex/static_root/assets/user-tab-BASy3q9X.js.br +0 -0
  312. codex/static_root/assets/user-tab-BASy3q9X.js.gz +0 -0
  313. codex/static_root/manifest.3057b90c8c8c.json +757 -0
  314. codex/static_root/manifest.3057b90c8c8c.json.br +0 -0
  315. codex/static_root/manifest.3057b90c8c8c.json.gz +0 -0
  316. codex/static_root/manifest.json +335 -335
  317. codex/static_root/manifest.json.br +0 -0
  318. codex/static_root/manifest.json.gz +0 -0
  319. codex/static_root/staticfiles.json +1 -1
  320. codex/views/browser/breadcrumbs.py +8 -3
  321. codex/views/browser/browser.py +1 -1
  322. codex/views/browser/filters/search/parse.py +1 -1
  323. codex/views/browser/paginate.py +1 -1
  324. codex/views/const.py +0 -1
  325. codex/views/opds/v1/feed.py +1 -2
  326. codex/views/opds/v2/feed.py +1 -1
  327. codex/views/reader/books.py +1 -1
  328. codex/views/util.py +10 -11
  329. {codex-1.7.12.dist-info → codex-1.7.13.dist-info}/METADATA +2 -2
  330. {codex-1.7.12.dist-info → codex-1.7.13.dist-info}/RECORD +333 -333
  331. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js +0 -1
  332. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.br +0 -0
  333. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.gz +0 -0
  334. codex/static_root/assets/VCheckbox-DtuP7Cwl.js +0 -1
  335. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.br +0 -0
  336. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.gz +0 -0
  337. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js +0 -1
  338. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.br +0 -0
  339. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.gz +0 -0
  340. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js +0 -1
  341. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.br +0 -0
  342. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.gz +0 -0
  343. codex/static_root/assets/VCombobox-Ckm4HgDu.css +0 -1
  344. codex/static_root/assets/VCombobox-Ckm4HgDu.css.br +0 -0
  345. codex/static_root/assets/VCombobox-Ckm4HgDu.css.gz +0 -0
  346. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css +0 -1
  347. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.br +0 -0
  348. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.gz +0 -0
  349. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js +0 -1
  350. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.br +0 -0
  351. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.gz +0 -0
  352. codex/static_root/assets/VCombobox-Da-CC3-D.js +0 -1
  353. codex/static_root/assets/VCombobox-Da-CC3-D.js.br +0 -0
  354. codex/static_root/assets/VCombobox-Da-CC3-D.js.gz +0 -0
  355. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css +0 -1
  356. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.br +0 -0
  357. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.gz +0 -0
  358. codex/static_root/assets/VDialog-Cj6z437E.css +0 -1
  359. codex/static_root/assets/VDialog-Cj6z437E.css.br +0 -0
  360. codex/static_root/assets/VDialog-Cj6z437E.css.gz +0 -0
  361. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js +0 -1
  362. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.br +0 -0
  363. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.gz +0 -0
  364. codex/static_root/assets/VDialog-CoOMSEbM.js +0 -1
  365. codex/static_root/assets/VDialog-CoOMSEbM.js.br +0 -0
  366. codex/static_root/assets/VDialog-CoOMSEbM.js.gz +0 -0
  367. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js +0 -1
  368. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.br +0 -0
  369. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.gz +0 -0
  370. codex/static_root/assets/VDivider-BXrVdmrm.js +0 -1
  371. codex/static_root/assets/VDivider-BXrVdmrm.js.br +0 -0
  372. codex/static_root/assets/VDivider-BXrVdmrm.js.gz +0 -0
  373. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js +0 -1
  374. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.br +0 -0
  375. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.gz +0 -0
  376. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js +0 -1
  377. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.br +0 -0
  378. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.gz +0 -0
  379. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js +0 -1
  380. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.br +0 -0
  381. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.gz +0 -0
  382. codex/static_root/assets/VForm-DXrmSq46.js +0 -1
  383. codex/static_root/assets/VForm-DXrmSq46.js.br +0 -0
  384. codex/static_root/assets/VForm-DXrmSq46.js.gz +0 -0
  385. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js +0 -1
  386. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.br +0 -0
  387. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.gz +0 -0
  388. codex/static_root/assets/VRadioGroup-DgtijQjG.js +0 -1
  389. codex/static_root/assets/VRadioGroup-DgtijQjG.js.br +0 -0
  390. codex/static_root/assets/VRadioGroup-DgtijQjG.js.gz +0 -0
  391. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js +0 -1
  392. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.br +0 -0
  393. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.gz +0 -0
  394. codex/static_root/assets/VSelect-BpkoCPsm.js +0 -1
  395. codex/static_root/assets/VSelect-BpkoCPsm.js.br +0 -0
  396. codex/static_root/assets/VSelect-BpkoCPsm.js.gz +0 -0
  397. codex/static_root/assets/VSelect-CBNrI-XP.css.br +0 -0
  398. codex/static_root/assets/VSelect-CBNrI-XP.css.gz +0 -0
  399. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.br +0 -0
  400. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.gz +0 -0
  401. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js +0 -1
  402. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.br +0 -0
  403. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.gz +0 -0
  404. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js +0 -1
  405. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.br +0 -0
  406. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.gz +0 -0
  407. codex/static_root/assets/VTable-BnxSZ_W5.c36f0a6a30cf.css.br +0 -0
  408. codex/static_root/assets/VTable-BnxSZ_W5.c36f0a6a30cf.css.gz +0 -0
  409. codex/static_root/assets/VTable-BnxSZ_W5.css.br +0 -0
  410. codex/static_root/assets/VTable-BnxSZ_W5.css.gz +0 -0
  411. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js +0 -1
  412. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.br +0 -0
  413. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.gz +0 -0
  414. codex/static_root/assets/VTable-DbFt9lJE.js +0 -1
  415. codex/static_root/assets/VTable-DbFt9lJE.js.br +0 -0
  416. codex/static_root/assets/VTable-DbFt9lJE.js.gz +0 -0
  417. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js +0 -1
  418. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.br +0 -0
  419. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.gz +0 -0
  420. codex/static_root/assets/VWindowItem-rXg83yw2.js +0 -1
  421. codex/static_root/assets/VWindowItem-rXg83yw2.js.br +0 -0
  422. codex/static_root/assets/VWindowItem-rXg83yw2.js.gz +0 -0
  423. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js +0 -1
  424. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.br +0 -0
  425. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.gz +0 -0
  426. codex/static_root/assets/admin--bDFN8Oq.js +0 -1
  427. codex/static_root/assets/admin--bDFN8Oq.js.br +0 -0
  428. codex/static_root/assets/admin--bDFN8Oq.js.gz +0 -0
  429. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css +0 -1
  430. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.br +0 -0
  431. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.gz +0 -0
  432. codex/static_root/assets/admin-BNNYZVYA.css +0 -1
  433. codex/static_root/assets/admin-BNNYZVYA.css.br +0 -0
  434. codex/static_root/assets/admin-BNNYZVYA.css.gz +0 -0
  435. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.br +0 -0
  436. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.gz +0 -0
  437. codex/static_root/assets/admin-BpE7-fB4.js.br +0 -0
  438. codex/static_root/assets/admin-BpE7-fB4.js.gz +0 -0
  439. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js +0 -1
  440. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.br +0 -0
  441. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.gz +0 -0
  442. codex/static_root/assets/admin-menu-DEQXJH4i.js +0 -1
  443. codex/static_root/assets/admin-menu-DEQXJH4i.js.br +0 -0
  444. codex/static_root/assets/admin-menu-DEQXJH4i.js.gz +0 -0
  445. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.br +0 -0
  446. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.gz +0 -0
  447. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.br +0 -0
  448. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.gz +0 -0
  449. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js +0 -1
  450. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.br +0 -0
  451. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.gz +0 -0
  452. codex/static_root/assets/browser-Bu37CzsR.js +0 -1
  453. codex/static_root/assets/browser-Bu37CzsR.js.br +0 -0
  454. codex/static_root/assets/browser-Bu37CzsR.js.gz +0 -0
  455. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.br +0 -0
  456. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.gz +0 -0
  457. codex/static_root/assets/browser-ClPcbrsf.css.br +0 -0
  458. codex/static_root/assets/browser-ClPcbrsf.css.gz +0 -0
  459. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.br +0 -0
  460. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.gz +0 -0
  461. codex/static_root/assets/change-password-dialog-DOioR_QK.js.br +0 -0
  462. codex/static_root/assets/change-password-dialog-DOioR_QK.js.gz +0 -0
  463. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js +0 -1
  464. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.br +0 -0
  465. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.gz +0 -0
  466. codex/static_root/assets/confirm-dialog-BRUkbajJ.js +0 -1
  467. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.br +0 -0
  468. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.gz +0 -0
  469. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js +0 -1
  470. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.br +0 -0
  471. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.gz +0 -0
  472. codex/static_root/assets/datetime-column-CdYfgPon.js +0 -1
  473. codex/static_root/assets/datetime-column-CdYfgPon.js.br +0 -0
  474. codex/static_root/assets/datetime-column-CdYfgPon.js.gz +0 -0
  475. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js +0 -1
  476. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.br +0 -0
  477. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.gz +0 -0
  478. codex/static_root/assets/filter-D-aPctKp.js +0 -1
  479. codex/static_root/assets/filter-D-aPctKp.js.br +0 -0
  480. codex/static_root/assets/filter-D-aPctKp.js.gz +0 -0
  481. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.br +0 -0
  482. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.gz +0 -0
  483. codex/static_root/assets/flag-tab-kMgSs3vx.js.br +0 -0
  484. codex/static_root/assets/flag-tab-kMgSs3vx.js.gz +0 -0
  485. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css +0 -1
  486. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.br +0 -0
  487. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.gz +0 -0
  488. codex/static_root/assets/forwardRefs-BhPKpkYY.css +0 -1
  489. codex/static_root/assets/forwardRefs-BhPKpkYY.css.br +0 -0
  490. codex/static_root/assets/forwardRefs-BhPKpkYY.css.gz +0 -0
  491. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js +0 -1
  492. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.br +0 -0
  493. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.gz +0 -0
  494. codex/static_root/assets/forwardRefs-BxFNqo8E.js +0 -1
  495. codex/static_root/assets/forwardRefs-BxFNqo8E.js.br +0 -0
  496. codex/static_root/assets/forwardRefs-BxFNqo8E.js.gz +0 -0
  497. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js +0 -1
  498. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.br +0 -0
  499. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.gz +0 -0
  500. codex/static_root/assets/group-tab-DK0pQx_6.js +0 -1
  501. codex/static_root/assets/group-tab-DK0pQx_6.js.br +0 -0
  502. codex/static_root/assets/group-tab-DK0pQx_6.js.gz +0 -0
  503. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js +0 -1
  504. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.br +0 -0
  505. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.gz +0 -0
  506. codex/static_root/assets/http-error-D4kgjRm6.js +0 -1
  507. codex/static_root/assets/http-error-D4kgjRm6.js.br +0 -0
  508. codex/static_root/assets/http-error-D4kgjRm6.js.gz +0 -0
  509. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js +0 -1
  510. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.br +0 -0
  511. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.gz +0 -0
  512. codex/static_root/assets/index-D3gnYqT3.js +0 -1
  513. codex/static_root/assets/index-D3gnYqT3.js.br +0 -0
  514. codex/static_root/assets/index-D3gnYqT3.js.gz +0 -0
  515. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js +0 -1
  516. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.br +0 -0
  517. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.gz +0 -0
  518. codex/static_root/assets/library-tab-MhD2T2Fw.js +0 -1
  519. codex/static_root/assets/library-tab-MhD2T2Fw.js.br +0 -0
  520. codex/static_root/assets/library-tab-MhD2T2Fw.js.gz +0 -0
  521. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js +0 -35
  522. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.br +0 -0
  523. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.gz +0 -0
  524. codex/static_root/assets/main-JUy8mnXG.js +0 -35
  525. codex/static_root/assets/main-JUy8mnXG.js.br +0 -0
  526. codex/static_root/assets/main-JUy8mnXG.js.gz +0 -0
  527. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js +0 -1
  528. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.br +0 -0
  529. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.gz +0 -0
  530. codex/static_root/assets/pager-full-pdf-CcORwqD4.js +0 -1
  531. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.br +0 -0
  532. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.gz +0 -0
  533. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js +0 -1
  534. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.br +0 -0
  535. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.gz +0 -0
  536. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js +0 -1
  537. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.br +0 -0
  538. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.gz +0 -0
  539. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.br +0 -0
  540. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.gz +0 -0
  541. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.br +0 -0
  542. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.gz +0 -0
  543. codex/static_root/assets/pdf-doc-HpDB0I3q.a991cdc377eb.js.br +0 -0
  544. codex/static_root/assets/pdf-doc-HpDB0I3q.a991cdc377eb.js.gz +0 -0
  545. codex/static_root/assets/pdf-doc-HpDB0I3q.js.br +0 -0
  546. codex/static_root/assets/pdf-doc-HpDB0I3q.js.gz +0 -0
  547. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.br +0 -0
  548. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.gz +0 -0
  549. codex/static_root/assets/reader-BIqif2zL.css.br +0 -0
  550. codex/static_root/assets/reader-BIqif2zL.css.gz +0 -0
  551. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js +0 -2
  552. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.br +0 -0
  553. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.gz +0 -0
  554. codex/static_root/assets/reader-CgmGRxud.js +0 -2
  555. codex/static_root/assets/reader-CgmGRxud.js.br +0 -0
  556. codex/static_root/assets/reader-CgmGRxud.js.gz +0 -0
  557. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js +0 -1
  558. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.br +0 -0
  559. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.gz +0 -0
  560. codex/static_root/assets/relation-chips-CV_iMj1X.js +0 -1
  561. codex/static_root/assets/relation-chips-CV_iMj1X.js.br +0 -0
  562. codex/static_root/assets/relation-chips-CV_iMj1X.js.gz +0 -0
  563. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css +0 -1
  564. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.br +0 -0
  565. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.gz +0 -0
  566. codex/static_root/assets/relation-chips-D7i-g7Zv.css +0 -1
  567. codex/static_root/assets/relation-chips-D7i-g7Zv.css.br +0 -0
  568. codex/static_root/assets/relation-chips-D7i-g7Zv.css.gz +0 -0
  569. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css +0 -1
  570. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.br +0 -0
  571. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.gz +0 -0
  572. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css +0 -1
  573. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.br +0 -0
  574. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.gz +0 -0
  575. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js +0 -2
  576. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.br +0 -0
  577. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.gz +0 -0
  578. codex/static_root/assets/settings-drawer-p6ZjyJ07.js +0 -2
  579. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.br +0 -0
  580. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.gz +0 -0
  581. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.br +0 -0
  582. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.gz +0 -0
  583. codex/static_root/assets/ssrBoot-B73_e82Z.js.br +0 -0
  584. codex/static_root/assets/ssrBoot-B73_e82Z.js.gz +0 -0
  585. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.br +0 -0
  586. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.gz +0 -0
  587. codex/static_root/assets/stats-tab-Kt45gqtN.js.br +0 -0
  588. codex/static_root/assets/stats-tab-Kt45gqtN.js.gz +0 -0
  589. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.br +0 -0
  590. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.gz +0 -0
  591. codex/static_root/assets/task-tab-DDKv2JN0.js.br +0 -0
  592. codex/static_root/assets/task-tab-DDKv2JN0.js.gz +0 -0
  593. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js +0 -1
  594. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.br +0 -0
  595. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.gz +0 -0
  596. codex/static_root/assets/unauthorized-CvdCW-Cq.js +0 -1
  597. codex/static_root/assets/unauthorized-CvdCW-Cq.js.br +0 -0
  598. codex/static_root/assets/unauthorized-CvdCW-Cq.js.gz +0 -0
  599. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css +0 -1
  600. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.br +0 -0
  601. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.gz +0 -0
  602. codex/static_root/assets/unauthorized-DeuhBNVr.css +0 -1
  603. codex/static_root/assets/unauthorized-DeuhBNVr.css.br +0 -0
  604. codex/static_root/assets/unauthorized-DeuhBNVr.css.gz +0 -0
  605. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.br +0 -0
  606. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.gz +0 -0
  607. codex/static_root/assets/user-tab-77Bjv-sy.js.br +0 -0
  608. codex/static_root/assets/user-tab-77Bjv-sy.js.gz +0 -0
  609. codex/static_root/manifest.800f1750bf03.json +0 -757
  610. codex/static_root/manifest.800f1750bf03.json.br +0 -0
  611. codex/static_root/manifest.800f1750bf03.json.gz +0 -0
  612. {codex-1.7.12.dist-info → codex-1.7.13.dist-info}/LICENSE +0 -0
  613. {codex-1.7.12.dist-info → codex-1.7.13.dist-info}/WHEEL +0 -0
  614. {codex-1.7.12.dist-info → codex-1.7.13.dist-info}/entry_points.txt +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.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/group-tab-DK0pQx_6.js": "assets/group-tab-DK0pQx_6.e02dab76e8e6.js", "assets/flag-tab-kMgSs3vx.js": "assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js", "assets/forwardRefs-BxFNqo8E.js": "assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js", "assets/VCombobox-Da-CC3-D.js": "assets/VCombobox-Da-CC3-D.7ce605203632.js", "assets/VTable-DbFt9lJE.js": "assets/VTable-DbFt9lJE.9ef6aa0ef98b.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/pagination-toolbar-DkYjhdVb.css": "assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css", "assets/forwardRefs-BhPKpkYY.css": "assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/group-tab-Bi681uR0.css": "assets/group-tab-Bi681uR0.3246ac0f7cec.css", "assets/VDialog-CoOMSEbM.js": "assets/VDialog-CoOMSEbM.ef9258719fe6.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/ssrBoot-B73_e82Z.js": "assets/ssrBoot-B73_e82Z.3d5063c17c68.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.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/VSelect-BpkoCPsm.js": "assets/VSelect-BpkoCPsm.b9086059c2ef.js", "assets/VForm-DXrmSq46.js": "assets/VForm-DXrmSq46.940c782abacb.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/admin-BNNYZVYA.css": "assets/admin-BNNYZVYA.4628d2f169aa.css", "assets/VSelectionControl-DvYb3Pi4.js": "assets/VSelectionControl-DvYb3Pi4.39440575ef06.js", "assets/reader-CgmGRxud.js": "assets/reader-CgmGRxud.dd7fceeb36e4.js", "assets/VCheckbox-DtuP7Cwl.js": "assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js", "assets/unauthorized-DeuhBNVr.css": "assets/unauthorized-DeuhBNVr.6261a283874e.css", "assets/VRadioGroup-DgtijQjG.js": "assets/VRadioGroup-DgtijQjG.a3093b0a1608.js", "assets/unauthorized-CvdCW-Cq.js": "assets/unauthorized-CvdCW-Cq.a7bd69980089.js", "assets/pager-full-pdf-CcORwqD4.js": "assets/pager-full-pdf-CcORwqD4.78c861366624.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/user-tab-77Bjv-sy.js": "assets/user-tab-77Bjv-sy.994ac66245a1.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/admin-settings-button-progress-wIXv-9g2.js": "assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/VExpansionPanels-BvZsXmp0.js": "assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/pdf-doc-HpDB0I3q.js": "assets/pdf-doc-HpDB0I3q.a991cdc377eb.js", "assets/main-JUy8mnXG.js": "assets/main-JUy8mnXG.d8a52b6ef508.js", "assets/admin--bDFN8Oq.js": "assets/admin--bDFN8Oq.a4abe921cf7c.js", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/VDivider-BXrVdmrm.js": "assets/VDivider-BXrVdmrm.94f80a82fabf.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/change-password-dialog-DOioR_QK.js": "assets/change-password-dialog-DOioR_QK.75126226aeee.js", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/http-error-D4kgjRm6.js": "assets/http-error-D4kgjRm6.71e8ec284567.js", "assets/stats-tab-CGY8r-es.css": "assets/stats-tab-CGY8r-es.b06c55bdaeaa.css", "assets/library-tab-MhD2T2Fw.js": "assets/library-tab-MhD2T2Fw.052fe1d43941.js", "assets/VCombobox-Ckm4HgDu.css": "assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css", "assets/VSelect-CBNrI-XP.css": "assets/VSelect-CBNrI-XP.f03b50289345.css", "assets/settings-drawer-Cz7dC3Ew.css": "assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css", "assets/VCheckboxBtn-D8jQ_2In.js": "assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js", "assets/VWindowItem-rXg83yw2.js": "assets/VWindowItem-rXg83yw2.0fd72e50001d.js", "assets/filter-D-aPctKp.js": "assets/filter-D-aPctKp.c9b14ffd360c.js", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/pagination-toolbar-Cufj0Rqv.js": "assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js", "assets/task-tab-DDKv2JN0.js": "assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js", "assets/admin-menu-DEQXJH4i.js": "assets/admin-menu-DEQXJH4i.bac02d0bea36.js", "assets/confirm-dialog-BRUkbajJ.js": "assets/confirm-dialog-BRUkbajJ.9670ca0df005.js", "assets/settings-drawer-p6ZjyJ07.js": "assets/settings-drawer-p6ZjyJ07.128e2c761104.js", "assets/relation-chips-CV_iMj1X.js": "assets/relation-chips-CV_iMj1X.de28053775a6.js", "assets/reader-BIqif2zL.css": "assets/reader-BIqif2zL.755da5eee67d.css", "assets/relation-chips-D7i-g7Zv.css": "assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css", "assets/index-D3gnYqT3.js": "assets/index-D3gnYqT3.c326544f2853.js", "assets/datetime-column-CdYfgPon.js": "assets/datetime-column-CdYfgPon.662194dbed49.js", "assets/VDialog-Cj6z437E.css": "assets/VDialog-Cj6z437E.cf3163940528.css", "assets/browser-ClPcbrsf.css": "assets/browser-ClPcbrsf.c8620affa34d.css", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/browser-Bu37CzsR.js": "assets/browser-Bu37CzsR.483b0af62dd4.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/admin-BpE7-fB4.js": "assets/admin-BpE7-fB4.8c4508dad617.js", "assets/main-Of3aYkZ7.css": "assets/main-Of3aYkZ7.91c75c4fbaa6.css", "assets/stats-tab-Kt45gqtN.js": "assets/stats-tab-Kt45gqtN.858a124412d0.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.800f1750bf03.json"}, "version": "1.1", "hash": "8453836e75e7"}
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.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/index-BxnlX5gb.js": "assets/index-BxnlX5gb.b6443a0b48e3.js", "assets/VWindowItem-B9xi23cd.js": "assets/VWindowItem-B9xi23cd.ee96259ae03d.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/admin-klMr_GZK.css": "assets/admin-klMr_GZK.3784e4f1d624.css", "assets/VSelectionControl-DbdMme4i.js": "assets/VSelectionControl-DbdMme4i.c547026ebdce.js", "assets/VForm-Be9DdO0x.js": "assets/VForm-Be9DdO0x.0b54c0d9e7ff.js", "assets/flag-tab-BhehN8hQ.js": "assets/flag-tab-BhehN8hQ.584e909ecdd6.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VDialog-DYkXmPin.css": "assets/VDialog-DYkXmPin.3991696c6a81.css", "assets/change-password-dialog-CNWUpsff.js": "assets/change-password-dialog-CNWUpsff.2a6249951bb6.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-aHRrdz48.css": "assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css", "assets/filter-wbh_0cB-.js": "assets/filter-wbh_0cB-.a2b2422906d8.js", "assets/library-tab-Cq-D776f.js": "assets/library-tab-Cq-D776f.89f410e10a27.js", "assets/group-tab-Bi681uR0.css": "assets/group-tab-Bi681uR0.3246ac0f7cec.css", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/browser-sNm790x9.css": "assets/browser-sNm790x9.305a6a4f38fd.css", "assets/http-error-BHy1v31U.js": "assets/http-error-BHy1v31U.516903532e16.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/main-NV7Sm4nK.js": "assets/main-NV7Sm4nK.ef4ca8f0fd9f.js", "assets/VRadioGroup-_mPqHM3O.js": "assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.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/VTable-CHRVGI94.css": "assets/VTable-CHRVGI94.0a75643f6486.css", "assets/VExpansionPanels-B-5dXRRB.js": "assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js", "assets/reader-BjIgRfH2.js": "assets/reader-BjIgRfH2.e9fae80f3d09.js", "assets/VSelect-BbT1aJkP.js": "assets/VSelect-BbT1aJkP.ab9bbb187356.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/datetime-column-BC6Dncpu.js": "assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js", "assets/forwardRefs-CXZy2GSt.css": "assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css", "assets/ssrBoot-CTyNesCO.js": "assets/ssrBoot-CTyNesCO.03ec3bf85a27.js", "assets/pagination-toolbar-BpWqCTpI.js": "assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js", "assets/admin-settings-button-progress-CPzM-FJJ.js": "assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VDialog-DRj4eBrO.js": "assets/VDialog-DRj4eBrO.e2ce5d20029b.js", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/unauthorized-bi5K10vQ.js": "assets/unauthorized-bi5K10vQ.32373df36436.js", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/admin-C78J3iIT.js": "assets/admin-C78J3iIT.e0499821711c.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/forwardRefs-DG6cgrKs.js": "assets/forwardRefs-DG6cgrKs.63214695fc2a.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/browser-DJgssiJu.js": "assets/browser-DJgssiJu.018d043b36a0.js", "assets/user-tab-BASy3q9X.js": "assets/user-tab-BASy3q9X.3a7f9fc383e1.js", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/VCheckboxBtn-07Vspsxn.js": "assets/VCheckboxBtn-07Vspsxn.377350162ca6.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/settings-drawer-ynpXH44c.js": "assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js", "assets/VCombobox-CuTDA3lY.js": "assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js", "assets/pager-full-pdf-DOYtfHYl.js": "assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js", "assets/VTable-C7Pj2AU0.js": "assets/VTable-C7Pj2AU0.9358b74f1ec2.js", "assets/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/stats-tab-CGY8r-es.css": "assets/stats-tab-CGY8r-es.b06c55bdaeaa.css", "assets/confirm-dialog-B4fmqtXn.js": "assets/confirm-dialog-B4fmqtXn.d78277f0b265.js", "assets/settings-drawer-WyG6HLH-.css": "assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css", "assets/reader-D7Bx0Vcv.css": "assets/reader-D7Bx0Vcv.34af07084fcb.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/unauthorized-DE63n2Pi.css": "assets/unauthorized-DE63n2Pi.b0357009b13d.css", "assets/task-tab-DNGSwaO3.js": "assets/task-tab-DNGSwaO3.273261947a02.js", "assets/VSelect-CKXqRkBF.css": "assets/VSelect-CKXqRkBF.a8be1e193eba.css", "assets/admin-menu-g8qk-zrV.js": "assets/admin-menu-g8qk-zrV.945e67b971e8.js", "assets/relation-chips-Bp-GmsDz.js": "assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js", "assets/VDivider-D1t2hkjV.js": "assets/VDivider-D1t2hkjV.a9cd2d5b286a.js", "assets/group-tab-BZExFXC-.js": "assets/group-tab-BZExFXC-.e99510b0aa5e.js", "assets/stats-tab-ZfoK3F_k.js": "assets/stats-tab-ZfoK3F_k.7565c9bbd336.js", "assets/admin-DycvhYet.js": "assets/admin-DycvhYet.33740bd797c9.js", "assets/pdf-doc-DAUp5U7y.js": "assets/pdf-doc-DAUp5U7y.821d344d6401.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/relation-chips-DvAOMwcd.css": "assets/relation-chips-DvAOMwcd.ebc505834f81.css", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/VCheckbox-CmDJN2RH.js": "assets/VCheckbox-CmDJN2RH.c0c8660af177.js", "assets/main-Of3aYkZ7.css": "assets/main-Of3aYkZ7.91c75c4fbaa6.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.3057b90c8c8c.json"}, "version": "1.1", "hash": "4a113430ec0c"}
@@ -1,6 +1,7 @@
1
1
  """Browser breadcrumbs calculations."""
2
2
 
3
3
  from contextlib import suppress
4
+ from dataclasses import asdict
4
5
  from types import MappingProxyType
5
6
  from typing import TYPE_CHECKING
6
7
 
@@ -23,6 +24,8 @@ from codex.views.const import (
23
24
  from codex.views.util import Route
24
25
 
25
26
  if TYPE_CHECKING:
27
+ from collections.abc import Mapping
28
+
26
29
  from codex.models.groups import Folder
27
30
 
28
31
  LOG = get_logger(__name__)
@@ -89,11 +92,13 @@ class BrowserBreadcrumbsView(BrowserPaginateView):
89
92
  group_query = model.objects.none()
90
93
  group_instance: BrowserGroupModel | None = group_query.first()
91
94
  self._group_instance = group_instance
92
- return self._group_instance # type: ignore[reportReturnType]
95
+ return self._group_instance # pyright: ignore[reportReturnType]
93
96
 
94
97
  def _init_breadcrumbs(self, valid_groups):
95
98
  """Load breadcrumbs and determine if they should be searched for a graft."""
96
- breadcrumbs: list[Route] = list(self.params.get("breadcrumbs", []))
99
+ breadcrumbs: tuple[Mapping[str, str | tuple[int, ...] | int], ...] = tuple(
100
+ self.params.get("breadcrumbs", ())
101
+ )
97
102
  old_breadcrumbs = [Route(**crumb) for crumb in breadcrumbs]
98
103
  invalid = not old_breadcrumbs or old_breadcrumbs[-1].group not in valid_groups
99
104
  if invalid:
@@ -103,7 +108,7 @@ class BrowserBreadcrumbsView(BrowserPaginateView):
103
108
  def _breadcrumbs_save(self, breadcrumbs):
104
109
  """Save the breadcrumbs to params."""
105
110
  params = dict(self.params)
106
- params["breadcrumbs"] = tuple(crumb.dict() for crumb in breadcrumbs)
111
+ params["breadcrumbs"] = tuple(asdict(crumb) for crumb in breadcrumbs)
107
112
  # The only place I rewrite params
108
113
  self._params = MappingProxyType(params)
109
114
 
@@ -16,11 +16,11 @@ from codex.models import (
16
16
  Library,
17
17
  )
18
18
  from codex.serializers.browser.page import BrowserPageSerializer
19
+ from codex.settings.settings import MAX_OBJ_PER_PAGE
19
20
  from codex.views.browser.title import BrowserTitleView
20
21
  from codex.views.const import (
21
22
  COMIC_GROUP,
22
23
  FOLDER_GROUP,
23
- MAX_OBJ_PER_PAGE,
24
24
  STORY_ARC_GROUP,
25
25
  )
26
26
 
@@ -8,9 +8,9 @@ from django.db.models.query import Q
8
8
  from codex.logger.logger import get_logger
9
9
  from codex.models import AdminFlag
10
10
  from codex.models.comic import ComicFTS
11
+ from codex.settings.settings import MAX_OBJ_PER_PAGE
11
12
  from codex.views.browser.filters.search.aliases import ALIAS_FIELD_MAP
12
13
  from codex.views.browser.filters.search.fts import BrowserFTSFilter
13
- from codex.views.const import MAX_OBJ_PER_PAGE
14
14
 
15
15
  LOG = get_logger(__name__)
16
16
  _FTS_COLUMNS = frozenset(
@@ -5,8 +5,8 @@ from math import ceil
5
5
  from django.core.paginator import EmptyPage, Paginator
6
6
 
7
7
  from codex.logger.logger import get_logger
8
+ from codex.settings.settings import MAX_OBJ_PER_PAGE
8
9
  from codex.views.browser.page_in_bounds import BrowserPageInBoundsView
9
- from codex.views.const import MAX_OBJ_PER_PAGE
10
10
 
11
11
  LOG = get_logger(__name__)
12
12
 
codex/views/const.py CHANGED
@@ -147,7 +147,6 @@ CONFIG_MODELS = (
147
147
  Group,
148
148
  Session,
149
149
  )
150
- MAX_OBJ_PER_PAGE = 100
151
150
  GROUP_MTIME_MODEL_MAP = MappingProxyType({"r": Publisher, "a": StoryArc, "f": Folder})
152
151
  EPOCH_START = datetime.fromtimestamp(0, tz=timezone.utc)
153
152
  ONE_INTEGERFIELD = Value(1, PositiveSmallIntegerField())
@@ -13,8 +13,7 @@ from codex.serializers.browser.settings import OPDSSettingsSerializer
13
13
  from codex.serializers.opds.v1 import (
14
14
  OPDS1TemplateSerializer,
15
15
  )
16
- from codex.settings.settings import FALSY
17
- from codex.views.const import MAX_OBJ_PER_PAGE
16
+ from codex.settings.settings import FALSY, MAX_OBJ_PER_PAGE
18
17
  from codex.views.mixins import UserActiveViewMixin
19
18
  from codex.views.opds.auth import OPDSTemplateView
20
19
  from codex.views.opds.const import BLANK_TITLE
@@ -9,7 +9,7 @@ from codex.logger.logger import get_logger
9
9
  from codex.models import AdminFlag
10
10
  from codex.serializers.browser.settings import OPDSSettingsSerializer
11
11
  from codex.serializers.opds.v2.feed import OPDS2FeedSerializer
12
- from codex.views.const import MAX_OBJ_PER_PAGE
12
+ from codex.settings.settings import MAX_OBJ_PER_PAGE
13
13
  from codex.views.mixins import UserActiveViewMixin
14
14
  from codex.views.opds.auth import OPDSAuthMixin
15
15
  from codex.views.opds.const import BLANK_TITLE
@@ -34,7 +34,7 @@ _COMIC_FIELDS = (
34
34
  )
35
35
 
36
36
 
37
- class ReaderBooksView(SharedAnnotationsMixin, BookmarkAuthMixin, ReaderParamsView):
37
+ class ReaderBooksView(ReaderParamsView, SharedAnnotationsMixin, BookmarkAuthMixin):
38
38
  """Get Books methods."""
39
39
 
40
40
  def _get_reader_arc_pks(
codex/views/util.py CHANGED
@@ -3,7 +3,7 @@
3
3
  import json
4
4
  from collections.abc import Mapping
5
5
  from contextlib import suppress
6
- from dataclasses import asdict, dataclass
6
+ from dataclasses import dataclass
7
7
  from json.decoder import JSONDecodeError
8
8
  from typing import Any
9
9
  from urllib.parse import unquote_plus
@@ -15,8 +15,8 @@ from djangorestframework_camel_case.util import underscoreize
15
15
  DEFAULT_CHUNK_SIZE = 64 * 1024 # 64 Kb
16
16
 
17
17
 
18
- @dataclass()
19
- class Route(dict):
18
+ @dataclass
19
+ class Route:
20
20
  """Breadcrumb, like a route."""
21
21
 
22
22
  group: str
@@ -24,14 +24,15 @@ class Route(dict):
24
24
  page: int = 1
25
25
  name: str = ""
26
26
 
27
+ def __hash__(self):
28
+ """Breadcrumb hash."""
29
+ pk_parts = tuple(sorted(set(self.pks)))
30
+ parts = (self.group, pk_parts, self.page)
31
+ return hash(parts)
32
+
27
33
  def __eq__(self, cmp):
28
34
  """Breadcrumb equality."""
29
- return (
30
- bool(cmp is not None)
31
- and (self.group == cmp.group)
32
- and (set(self.pks) == set(cmp.pks))
33
- and (self.page == cmp.page)
34
- )
35
+ return cmp and hash(self) == hash(cmp)
35
36
 
36
37
  def __and__(self, cmp):
37
38
  """Breadcrumb intersection."""
@@ -41,8 +42,6 @@ class Route(dict):
41
42
  and (self.pks == cmp.pks or (set(self.pks) & set(cmp.pks)))
42
43
  )
43
44
 
44
- dict = asdict
45
-
46
45
 
47
46
  def reparse_json_query_params(query_params, keys) -> dict[str, Any]:
48
47
  """Reparse JSON encoded query_params."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codex
3
- Version: 1.7.12
3
+ Version: 1.7.13
4
4
  Summary: A comic archive web server.
5
5
  License: GPL-3.0-only
6
6
  Keywords: comic,cbz,cbr,cbt,pdf
@@ -39,7 +39,7 @@ Requires-Dist: django-vite (>=3.0.1,<4.0.0)
39
39
  Requires-Dist: djangorestframework (>=3.15.1,<4.0.0)
40
40
  Requires-Dist: djangorestframework-camel-case (>=1.4.2,<2.0.0)
41
41
  Requires-Dist: drf-spectacular (>=0.28.0,<0.29.0)
42
- Requires-Dist: fnvhash (>=0.1,<0.2)
42
+ Requires-Dist: fnvhash (>=0.2.1,<0.3.0)
43
43
  Requires-Dist: humanfriendly (>=10.0,<11.0)
44
44
  Requires-Dist: humanize (>=4.0.0,<5.0.0)
45
45
  Requires-Dist: hypercorn[h3] (>=0.17.3,<0.18.0)