codex 1.7.10__py3-none-any.whl → 1.7.11a0__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 (641) hide show
  1. codex/choices/admin.py +20 -47
  2. codex/choices/reader.py +3 -3
  3. codex/db.py +1 -1
  4. codex/exceptions.py +1 -1
  5. codex/librarian/bookmark/tasks.py +1 -1
  6. codex/librarian/covers/status.py +2 -2
  7. codex/librarian/cron/crond.py +2 -2
  8. codex/librarian/importer/query_covers.py +1 -1
  9. codex/librarian/importer/query_fks.py +1 -1
  10. codex/librarian/importer/status.py +2 -2
  11. codex/librarian/janitor/integrity.py +1 -1
  12. codex/librarian/janitor/status.py +2 -2
  13. codex/librarian/search/status.py +2 -2
  14. codex/librarian/telemeter/stats.py +1 -1
  15. codex/librarian/telemeter/telemeter.py +9 -14
  16. codex/librarian/watchdog/events.py +1 -1
  17. codex/librarian/watchdog/observers.py +1 -1
  18. codex/librarian/watchdog/status.py +2 -2
  19. codex/logger/{logging.py → logger.py} +2 -2
  20. codex/logger_base.py +1 -1
  21. codex/middleware.py +1 -1
  22. codex/migrations/0001_init.py +1 -1
  23. codex/migrations/0033_alter_librarianstatus_status_type.py +68 -0
  24. codex/models/admin.py +6 -15
  25. codex/models/bookmark.py +2 -2
  26. codex/models/comic.py +4 -4
  27. codex/models/groups.py +1 -1
  28. codex/models/named.py +1 -1
  29. codex/models/paths.py +2 -3
  30. codex/run.py +1 -1
  31. codex/serializers/browser/mixins.py +1 -1
  32. codex/serializers/fields/__init__.py +10 -10
  33. codex/serializers/fields/auth.py +1 -1
  34. codex/serializers/fields/browser.py +1 -1
  35. codex/serializers/fields/stats.py +1 -1
  36. codex/serializers/fields/vuetify.py +1 -1
  37. codex/serializers/models/pycountry.py +1 -1
  38. codex/serializers/opds/v2/progression.py +4 -4
  39. codex/signals/django_signals.py +1 -1
  40. codex/signals/os_signals.py +1 -1
  41. codex/startup.py +4 -8
  42. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js +1 -0
  43. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.br +0 -0
  44. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.gz +0 -0
  45. codex/static_root/assets/VCheckbox-t1haz9-P.js +1 -0
  46. codex/static_root/assets/VCheckbox-t1haz9-P.js.br +0 -0
  47. codex/static_root/assets/VCheckbox-t1haz9-P.js.gz +0 -0
  48. codex/static_root/assets/{VCheckboxBtn-BpGCk6Oe.83398b59f314.js → VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js} +1 -1
  49. codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.br +0 -0
  50. codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.gz +0 -0
  51. codex/static_root/assets/{VCheckboxBtn-BpGCk6Oe.js → VCheckboxBtn-1PexCc2F.js} +1 -1
  52. codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.br +0 -0
  53. codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.gz +0 -0
  54. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js +1 -0
  55. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.br +0 -0
  56. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.gz +0 -0
  57. codex/static_root/assets/VCombobox-DpadV2-4.js +1 -0
  58. codex/static_root/assets/VCombobox-DpadV2-4.js.br +0 -0
  59. codex/static_root/assets/VCombobox-DpadV2-4.js.gz +0 -0
  60. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js +1 -0
  61. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.br +0 -0
  62. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.gz +0 -0
  63. codex/static_root/assets/VDialog-BR4MrJeK.js +1 -0
  64. codex/static_root/assets/VDialog-BR4MrJeK.js.br +0 -0
  65. codex/static_root/assets/VDialog-BR4MrJeK.js.gz +0 -0
  66. codex/static_root/assets/{VDialog-BQWGxOC0.557592e1297d.css → VDialog-DYkXmPin.3991696c6a81.css} +1 -1
  67. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.br +0 -0
  68. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.gz +0 -0
  69. codex/static_root/assets/{VDialog-BQWGxOC0.css → VDialog-DYkXmPin.css} +1 -1
  70. codex/static_root/assets/VDialog-DYkXmPin.css.br +0 -0
  71. codex/static_root/assets/VDialog-DYkXmPin.css.gz +0 -0
  72. codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js +1 -0
  73. codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.br +0 -0
  74. codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.gz +0 -0
  75. codex/static_root/assets/VDivider-CGYMLgJf.js +1 -0
  76. codex/static_root/assets/VDivider-CGYMLgJf.js.br +0 -0
  77. codex/static_root/assets/VDivider-CGYMLgJf.js.gz +0 -0
  78. codex/static_root/assets/{VExpansionPanels-DqQbpMgG.ea0fc76e06a3.js → VExpansionPanels-ape8k2o6.235735bba3cc.js} +1 -1
  79. codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.br +0 -0
  80. codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.gz +0 -0
  81. codex/static_root/assets/{VExpansionPanels-DqQbpMgG.js → VExpansionPanels-ape8k2o6.js} +1 -1
  82. codex/static_root/assets/VExpansionPanels-ape8k2o6.js.br +0 -0
  83. codex/static_root/assets/VExpansionPanels-ape8k2o6.js.gz +0 -0
  84. codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js +1 -0
  85. codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.br +0 -0
  86. codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.gz +0 -0
  87. codex/static_root/assets/VForm-ZManiwIB.js +1 -0
  88. codex/static_root/assets/VForm-ZManiwIB.js.br +0 -0
  89. codex/static_root/assets/VForm-ZManiwIB.js.gz +0 -0
  90. codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js +1 -0
  91. codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.br +0 -0
  92. codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.gz +0 -0
  93. codex/static_root/assets/VRadioGroup-BqJIH3Pa.js +1 -0
  94. codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.br +0 -0
  95. codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.gz +0 -0
  96. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js +1 -0
  97. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.br +0 -0
  98. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.gz +0 -0
  99. codex/static_root/assets/VSelect-Bi5KABMc.js +1 -0
  100. codex/static_root/assets/VSelect-Bi5KABMc.js.br +0 -0
  101. codex/static_root/assets/VSelect-Bi5KABMc.js.gz +0 -0
  102. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js +1 -0
  103. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.br +0 -0
  104. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.gz +0 -0
  105. codex/static_root/assets/VSelectionControl-CRVWANOr.js +1 -0
  106. codex/static_root/assets/VSelectionControl-CRVWANOr.js.br +0 -0
  107. codex/static_root/assets/VSelectionControl-CRVWANOr.js.gz +0 -0
  108. codex/static_root/assets/VSelectionControl-DtEh26JD.css +1 -0
  109. codex/static_root/assets/VSelectionControl-DtEh26JD.css.br +0 -0
  110. codex/static_root/assets/VSelectionControl-DtEh26JD.css.gz +0 -0
  111. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css +1 -0
  112. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.br +0 -0
  113. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.gz +0 -0
  114. codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js +1 -0
  115. codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.br +0 -0
  116. codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.gz +0 -0
  117. codex/static_root/assets/VTable-DWCA1lvG.js +1 -0
  118. codex/static_root/assets/VTable-DWCA1lvG.js.br +0 -0
  119. codex/static_root/assets/VTable-DWCA1lvG.js.gz +0 -0
  120. codex/static_root/assets/{VWindowItem-DrdLuzoo.f8bc191fd6cc.js → VWindowItem-DSXaWHkP.89ac2ece629a.js} +1 -1
  121. codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.br +0 -0
  122. codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.gz +0 -0
  123. codex/static_root/assets/{VWindowItem-DrdLuzoo.js → VWindowItem-DSXaWHkP.js} +1 -1
  124. codex/static_root/assets/VWindowItem-DSXaWHkP.js.br +0 -0
  125. codex/static_root/assets/VWindowItem-DSXaWHkP.js.gz +0 -0
  126. codex/static_root/assets/{admin-ef9o9DWy.897300319dcb.js → admin-Bxwc8451.b2a8c85c5c82.js} +1 -1
  127. codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.br +0 -0
  128. codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.gz +0 -0
  129. codex/static_root/assets/{admin-ef9o9DWy.js → admin-Bxwc8451.js} +1 -1
  130. codex/static_root/assets/admin-Bxwc8451.js.br +0 -0
  131. codex/static_root/assets/admin-Bxwc8451.js.gz +0 -0
  132. codex/static_root/assets/{admin-EK-uATBo.4f6bff10b111.js → admin-C81J8xOG.772d05753583.js} +1 -1
  133. codex/static_root/assets/admin-C81J8xOG.772d05753583.js.br +0 -0
  134. codex/static_root/assets/admin-C81J8xOG.772d05753583.js.gz +0 -0
  135. codex/static_root/assets/{admin-EK-uATBo.js → admin-C81J8xOG.js} +1 -1
  136. codex/static_root/assets/admin-C81J8xOG.js.br +0 -0
  137. codex/static_root/assets/admin-C81J8xOG.js.gz +0 -0
  138. codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js +1 -0
  139. codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.br +0 -0
  140. codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.gz +0 -0
  141. codex/static_root/assets/admin-menu-Bts5DypF.js +1 -0
  142. codex/static_root/assets/admin-menu-Bts5DypF.js.br +0 -0
  143. codex/static_root/assets/admin-menu-Bts5DypF.js.gz +0 -0
  144. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js +1 -0
  145. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.br +0 -0
  146. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.gz +0 -0
  147. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js +1 -0
  148. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.br +0 -0
  149. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.gz +0 -0
  150. codex/static_root/assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css +1 -0
  151. codex/static_root/assets/admin-settings-button-progress-XVi7SeHr.css +1 -0
  152. codex/static_root/assets/{browser-CECBMxOy.a750213334d5.css → browser-Bf8JG2CE.3af978c1f766.css} +1 -1
  153. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.br +0 -0
  154. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.gz +0 -0
  155. codex/static_root/assets/{browser-CECBMxOy.css → browser-Bf8JG2CE.css} +1 -1
  156. codex/static_root/assets/browser-Bf8JG2CE.css.br +0 -0
  157. codex/static_root/assets/browser-Bf8JG2CE.css.gz +0 -0
  158. codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js +1 -0
  159. codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.br +0 -0
  160. codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.gz +0 -0
  161. codex/static_root/assets/browser-yJ6Noi8Y.js +1 -0
  162. codex/static_root/assets/browser-yJ6Noi8Y.js.br +0 -0
  163. codex/static_root/assets/browser-yJ6Noi8Y.js.gz +0 -0
  164. codex/static_root/assets/{change-password-dialog-IN09owSO.f993a82b84e6.js → change-password-dialog-Bw5_buVm.d199b40591de.js} +1 -1
  165. codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.br +0 -0
  166. codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.gz +0 -0
  167. codex/static_root/assets/{change-password-dialog-IN09owSO.js → change-password-dialog-Bw5_buVm.js} +1 -1
  168. codex/static_root/assets/change-password-dialog-Bw5_buVm.js.br +0 -0
  169. codex/static_root/assets/change-password-dialog-Bw5_buVm.js.gz +0 -0
  170. codex/static_root/assets/{confirm-dialog-DspoCalP.9541a5fb406d.js → confirm-dialog-CDmsC-9_.cb51658bfb81.js} +1 -1
  171. codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.br +0 -0
  172. codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.gz +0 -0
  173. codex/static_root/assets/{confirm-dialog-DspoCalP.js → confirm-dialog-CDmsC-9_.js} +1 -1
  174. codex/static_root/assets/confirm-dialog-CDmsC-9_.js.br +0 -0
  175. codex/static_root/assets/confirm-dialog-CDmsC-9_.js.gz +0 -0
  176. codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js +1 -0
  177. codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.br +1 -0
  178. codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.gz +0 -0
  179. codex/static_root/assets/datetime-column-PBwaoZso.js +1 -0
  180. codex/static_root/assets/datetime-column-PBwaoZso.js.br +1 -0
  181. codex/static_root/assets/datetime-column-PBwaoZso.js.gz +0 -0
  182. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js +1 -0
  183. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.br +0 -0
  184. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.gz +0 -0
  185. codex/static_root/assets/filter-D2ELuNq3.js +1 -0
  186. codex/static_root/assets/filter-D2ELuNq3.js.br +0 -0
  187. codex/static_root/assets/filter-D2ELuNq3.js.gz +0 -0
  188. codex/static_root/assets/{flag-tab-85Q3KfGH.c891fb5ca239.js → flag-tab-Bfd3wqbW.eb77780e8a45.js} +1 -1
  189. codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.br +0 -0
  190. codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.gz +0 -0
  191. codex/static_root/assets/{flag-tab-85Q3KfGH.js → flag-tab-Bfd3wqbW.js} +1 -1
  192. codex/static_root/assets/flag-tab-Bfd3wqbW.js.br +0 -0
  193. codex/static_root/assets/flag-tab-Bfd3wqbW.js.gz +0 -0
  194. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js +1 -0
  195. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.br +0 -0
  196. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.gz +0 -0
  197. codex/static_root/assets/forwardRefs-Cvn3Vptr.js +1 -0
  198. codex/static_root/assets/forwardRefs-Cvn3Vptr.js.br +0 -0
  199. codex/static_root/assets/forwardRefs-Cvn3Vptr.js.gz +0 -0
  200. codex/static_root/assets/{group-tab-BExnebOf.6e6dd3b38b0b.js → group-tab-J2MqClVb.ff59e8269756.js} +1 -1
  201. codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.br +0 -0
  202. codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.gz +0 -0
  203. codex/static_root/assets/{group-tab-BExnebOf.js → group-tab-J2MqClVb.js} +1 -1
  204. codex/static_root/assets/group-tab-J2MqClVb.js.br +0 -0
  205. codex/static_root/assets/group-tab-J2MqClVb.js.gz +0 -0
  206. codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js +1 -0
  207. codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.br +0 -0
  208. codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.gz +0 -0
  209. codex/static_root/assets/http-error-BYu6Kcz7.js +1 -0
  210. codex/static_root/assets/http-error-BYu6Kcz7.js.br +0 -0
  211. codex/static_root/assets/http-error-BYu6Kcz7.js.gz +0 -0
  212. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js +1 -0
  213. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.br +0 -0
  214. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.gz +0 -0
  215. codex/static_root/assets/index-70Ak1yZF.js +1 -0
  216. codex/static_root/assets/index-70Ak1yZF.js.br +0 -0
  217. codex/static_root/assets/index-70Ak1yZF.js.gz +0 -0
  218. codex/static_root/assets/{library-tab-CEGKyv0F.18c78a7ec9eb.js → library-tab-B5EpvS2Z.ce7f598b989c.js} +1 -1
  219. codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.br +0 -0
  220. codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.gz +0 -0
  221. codex/static_root/assets/{library-tab-CEGKyv0F.js → library-tab-B5EpvS2Z.js} +1 -1
  222. codex/static_root/assets/library-tab-B5EpvS2Z.js.br +0 -0
  223. codex/static_root/assets/library-tab-B5EpvS2Z.js.gz +0 -0
  224. codex/static_root/assets/{library-tab-thTonyXr.58b745660d42.css → library-tab-DLpvMqPW.2989f610950b.css} +1 -1
  225. codex/static_root/assets/library-tab-DLpvMqPW.2989f610950b.css.br +0 -0
  226. codex/static_root/assets/library-tab-DLpvMqPW.2989f610950b.css.gz +0 -0
  227. codex/static_root/assets/{library-tab-thTonyXr.css → library-tab-DLpvMqPW.css} +1 -1
  228. codex/static_root/assets/library-tab-DLpvMqPW.css.br +0 -0
  229. codex/static_root/assets/library-tab-DLpvMqPW.css.gz +0 -0
  230. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js +35 -0
  231. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.br +0 -0
  232. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.gz +0 -0
  233. codex/static_root/assets/main-nb_FhQoD.js +35 -0
  234. codex/static_root/assets/main-nb_FhQoD.js.br +0 -0
  235. codex/static_root/assets/main-nb_FhQoD.js.gz +0 -0
  236. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js +1 -0
  237. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.br +0 -0
  238. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.gz +0 -0
  239. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js +1 -0
  240. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.br +0 -0
  241. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.gz +0 -0
  242. codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js +1 -0
  243. codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.br +0 -0
  244. codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.gz +0 -0
  245. codex/static_root/assets/pagination-toolbar-2endB3w1.js +1 -0
  246. codex/static_root/assets/pagination-toolbar-2endB3w1.js.br +0 -0
  247. codex/static_root/assets/pagination-toolbar-2endB3w1.js.gz +0 -0
  248. codex/static_root/assets/{pagination-toolbar-CpIvhu_T.0e1a1bac9f65.css → pagination-toolbar-CzT9Hc3f.487e647604e2.css} +1 -1
  249. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.br +0 -0
  250. codex/static_root/assets/{pagination-toolbar-CpIvhu_T.0e1a1bac9f65.css.gz → pagination-toolbar-CzT9Hc3f.487e647604e2.css.gz} +0 -0
  251. codex/static_root/assets/{pagination-toolbar-CpIvhu_T.css → pagination-toolbar-CzT9Hc3f.css} +1 -1
  252. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.br +0 -0
  253. codex/static_root/assets/{pagination-toolbar-CpIvhu_T.css.gz → pagination-toolbar-CzT9Hc3f.css.gz} +0 -0
  254. codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js +372 -0
  255. codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js.br +0 -0
  256. codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js.gz +0 -0
  257. codex/static_root/assets/pdf-doc-CW06S-ga.js +372 -0
  258. codex/static_root/assets/pdf-doc-CW06S-ga.js.br +0 -0
  259. codex/static_root/assets/pdf-doc-CW06S-ga.js.gz +0 -0
  260. codex/static_root/assets/pdf-doc-DxqOo2k2.42496ffbf35b.css +1 -0
  261. codex/static_root/assets/pdf-doc-DxqOo2k2.42496ffbf35b.css.br +0 -0
  262. codex/static_root/assets/pdf-doc-DxqOo2k2.42496ffbf35b.css.gz +0 -0
  263. codex/static_root/assets/pdf-doc-DxqOo2k2.css +1 -0
  264. codex/static_root/assets/pdf-doc-DxqOo2k2.css.br +0 -0
  265. codex/static_root/assets/pdf-doc-DxqOo2k2.css.gz +0 -0
  266. codex/static_root/assets/{reader-Bcw698_5.b73e2757553f.css → reader-DdWNjEED.97c15f661faf.css} +1 -1
  267. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.br +0 -0
  268. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.gz +0 -0
  269. codex/static_root/assets/{reader-Bcw698_5.css → reader-DdWNjEED.css} +1 -1
  270. codex/static_root/assets/reader-DdWNjEED.css.br +0 -0
  271. codex/static_root/assets/reader-DdWNjEED.css.gz +0 -0
  272. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js +2 -0
  273. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.br +0 -0
  274. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.gz +0 -0
  275. codex/static_root/assets/reader-myd-70jV.js +2 -0
  276. codex/static_root/assets/reader-myd-70jV.js.br +0 -0
  277. codex/static_root/assets/reader-myd-70jV.js.gz +0 -0
  278. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js +1 -0
  279. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.br +0 -0
  280. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.gz +0 -0
  281. codex/static_root/assets/relation-chips-Bd8Jicbj.js +1 -0
  282. codex/static_root/assets/relation-chips-Bd8Jicbj.js.br +0 -0
  283. codex/static_root/assets/relation-chips-Bd8Jicbj.js.gz +0 -0
  284. codex/static_root/assets/{relation-chips-CifZPloM.css → relation-chips-eQkZvJcT.6b52d3f66aed.css} +1 -1
  285. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.br +0 -0
  286. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.gz +0 -0
  287. codex/static_root/assets/{relation-chips-CifZPloM.e1f40ac9ae8b.css → relation-chips-eQkZvJcT.css} +1 -1
  288. codex/static_root/assets/relation-chips-eQkZvJcT.css.br +0 -0
  289. codex/static_root/assets/relation-chips-eQkZvJcT.css.gz +0 -0
  290. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js +2 -0
  291. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.br +0 -0
  292. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.gz +0 -0
  293. codex/static_root/assets/settings-drawer-DBftv9u0.js +2 -0
  294. codex/static_root/assets/settings-drawer-DBftv9u0.js.br +0 -0
  295. codex/static_root/assets/settings-drawer-DBftv9u0.js.gz +0 -0
  296. codex/static_root/assets/{settings-drawer-Bl-6rF9E.7ace6186c209.css → settings-drawer-WyG6HLH-.css} +1 -1
  297. codex/static_root/assets/settings-drawer-WyG6HLH-.css.br +0 -0
  298. codex/static_root/assets/settings-drawer-WyG6HLH-.css.gz +0 -0
  299. codex/static_root/assets/{settings-drawer-Bl-6rF9E.css → settings-drawer-WyG6HLH-.fe251f6d0a75.css} +1 -1
  300. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.br +0 -0
  301. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.gz +0 -0
  302. codex/static_root/assets/{ssrBoot-DXTtRnkT.4c3cc19af910.js → ssrBoot-B6yWBylJ.27fba7483f5d.js} +1 -1
  303. codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.br +0 -0
  304. codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.gz +0 -0
  305. codex/static_root/assets/{ssrBoot-DXTtRnkT.js → ssrBoot-B6yWBylJ.js} +1 -1
  306. codex/static_root/assets/ssrBoot-B6yWBylJ.js.br +0 -0
  307. codex/static_root/assets/ssrBoot-B6yWBylJ.js.gz +0 -0
  308. codex/static_root/assets/{stats-tab-vsRoMTcW.3897f26bbc29.js → stats-tab-DC24C65C.58280bd367e1.js} +1 -1
  309. codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.br +0 -0
  310. codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.gz +0 -0
  311. codex/static_root/assets/{stats-tab-vsRoMTcW.js → stats-tab-DC24C65C.js} +1 -1
  312. codex/static_root/assets/stats-tab-DC24C65C.js.br +0 -0
  313. codex/static_root/assets/stats-tab-DC24C65C.js.gz +0 -0
  314. codex/static_root/assets/{task-tab-Cdx5-kHu.ab72a338a450.js → task-tab-DI9bXb-m.52aad0736a2b.js} +1 -1
  315. codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.br +0 -0
  316. codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.gz +0 -0
  317. codex/static_root/assets/{task-tab-Cdx5-kHu.js → task-tab-DI9bXb-m.js} +1 -1
  318. codex/static_root/assets/task-tab-DI9bXb-m.js.br +0 -0
  319. codex/static_root/assets/task-tab-DI9bXb-m.js.gz +0 -0
  320. codex/static_root/assets/{unauthorized-BqMMPq6N.bc9ba40a375d.js → unauthorized-C0p00au3.983dc96cbe2b.js} +1 -1
  321. codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.br +0 -0
  322. codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.gz +0 -0
  323. codex/static_root/assets/{unauthorized-BqMMPq6N.js → unauthorized-C0p00au3.js} +1 -1
  324. codex/static_root/assets/unauthorized-C0p00au3.js.br +0 -0
  325. codex/static_root/assets/unauthorized-C0p00au3.js.gz +0 -0
  326. codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js +1 -0
  327. codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.br +0 -0
  328. codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.gz +0 -0
  329. codex/static_root/assets/user-tab-B7e9oz0-.js +1 -0
  330. codex/static_root/assets/user-tab-B7e9oz0-.js.br +0 -0
  331. codex/static_root/assets/user-tab-B7e9oz0-.js.gz +0 -0
  332. codex/static_root/manifest.fd580176863a.json +757 -0
  333. codex/static_root/manifest.fd580176863a.json.br +0 -0
  334. codex/static_root/manifest.fd580176863a.json.gz +0 -0
  335. codex/static_root/manifest.json +341 -341
  336. codex/static_root/manifest.json.br +0 -0
  337. codex/static_root/manifest.json.gz +0 -0
  338. codex/static_root/staticfiles.json +1 -1
  339. codex/templates/pwa/serviceworker-register.js +0 -1
  340. codex/urls/converters.py +1 -1
  341. codex/views/admin/flag.py +1 -1
  342. codex/views/admin/group.py +1 -1
  343. codex/views/admin/library.py +1 -1
  344. codex/views/admin/stats.py +1 -1
  345. codex/views/admin/tasks.py +1 -1
  346. codex/views/admin/user.py +1 -1
  347. codex/views/auth.py +1 -1
  348. codex/views/bookmark.py +2 -2
  349. codex/views/browser/annotate/bookmark.py +1 -1
  350. codex/views/browser/annotate/card.py +1 -1
  351. codex/views/browser/annotate/order.py +1 -1
  352. codex/views/browser/bookmark.py +1 -1
  353. codex/views/browser/breadcrumbs.py +5 -3
  354. codex/views/browser/browser.py +1 -1
  355. codex/views/browser/choices.py +1 -1
  356. codex/views/browser/cover.py +1 -1
  357. codex/views/browser/download.py +1 -1
  358. codex/views/browser/filters/filter.py +1 -1
  359. codex/views/browser/filters/search/field/column.py +1 -1
  360. codex/views/browser/filters/search/field/expression.py +1 -1
  361. codex/views/browser/filters/search/field/filter.py +1 -1
  362. codex/views/browser/filters/search/fts.py +1 -1
  363. codex/views/browser/filters/search/parse.py +2 -2
  364. codex/views/browser/group_mtime.py +1 -1
  365. codex/views/browser/metadata/metadata.py +1 -1
  366. codex/views/browser/mtime.py +1 -1
  367. codex/views/browser/order_by.py +2 -4
  368. codex/views/browser/page_in_bounds.py +1 -1
  369. codex/views/browser/paginate.py +1 -1
  370. codex/views/browser/validate.py +1 -1
  371. codex/views/mixins.py +1 -1
  372. codex/views/opds/v1/entry/entry.py +1 -1
  373. codex/views/opds/v1/entry/links.py +1 -1
  374. codex/views/opds/v1/facets.py +2 -5
  375. codex/views/opds/v1/feed.py +1 -1
  376. codex/views/opds/v1/links.py +1 -1
  377. codex/views/opds/v2/feed.py +1 -1
  378. codex/views/opds/v2/progression.py +1 -1
  379. codex/views/public.py +1 -1
  380. codex/views/reader/page.py +1 -1
  381. codex/views/reader/params.py +1 -1
  382. codex/views/reader/reader.py +1 -1
  383. codex/views/session.py +1 -1
  384. codex/views/timezone.py +1 -1
  385. codex/websockets/consumers.py +1 -1
  386. {codex-1.7.10.dist-info → codex-1.7.11a0.dist-info}/METADATA +17 -8
  387. {codex-1.7.10.dist-info → codex-1.7.11a0.dist-info}/RECORD +392 -391
  388. {codex-1.7.10.dist-info → codex-1.7.11a0.dist-info}/WHEEL +1 -1
  389. codex/static_root/assets/VCheckbox-Bbyc3D9e.6cf9513cf5b9.js +0 -1
  390. codex/static_root/assets/VCheckbox-Bbyc3D9e.6cf9513cf5b9.js.br +0 -0
  391. codex/static_root/assets/VCheckbox-Bbyc3D9e.6cf9513cf5b9.js.gz +0 -0
  392. codex/static_root/assets/VCheckbox-Bbyc3D9e.js +0 -1
  393. codex/static_root/assets/VCheckbox-Bbyc3D9e.js.br +0 -0
  394. codex/static_root/assets/VCheckbox-Bbyc3D9e.js.gz +0 -0
  395. codex/static_root/assets/VCheckboxBtn-BpGCk6Oe.83398b59f314.js.br +0 -0
  396. codex/static_root/assets/VCheckboxBtn-BpGCk6Oe.83398b59f314.js.gz +0 -0
  397. codex/static_root/assets/VCheckboxBtn-BpGCk6Oe.js.br +0 -0
  398. codex/static_root/assets/VCheckboxBtn-BpGCk6Oe.js.gz +0 -0
  399. codex/static_root/assets/VCombobox-D2lMznZJ.b8563f007654.js +0 -1
  400. codex/static_root/assets/VCombobox-D2lMznZJ.b8563f007654.js.br +0 -0
  401. codex/static_root/assets/VCombobox-D2lMznZJ.b8563f007654.js.gz +0 -0
  402. codex/static_root/assets/VCombobox-D2lMznZJ.js +0 -1
  403. codex/static_root/assets/VCombobox-D2lMznZJ.js.br +0 -0
  404. codex/static_root/assets/VCombobox-D2lMznZJ.js.gz +0 -0
  405. codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.br +0 -0
  406. codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.gz +0 -0
  407. codex/static_root/assets/VDialog-BQWGxOC0.css.br +0 -0
  408. codex/static_root/assets/VDialog-BQWGxOC0.css.gz +0 -0
  409. codex/static_root/assets/VDialog-OMVMX5uI.617509c16662.js +0 -1
  410. codex/static_root/assets/VDialog-OMVMX5uI.617509c16662.js.br +0 -0
  411. codex/static_root/assets/VDialog-OMVMX5uI.617509c16662.js.gz +0 -0
  412. codex/static_root/assets/VDialog-OMVMX5uI.js +0 -1
  413. codex/static_root/assets/VDialog-OMVMX5uI.js.br +0 -0
  414. codex/static_root/assets/VDialog-OMVMX5uI.js.gz +0 -0
  415. codex/static_root/assets/VDivider-FBjAmdUU.ea4aecc22bd2.js +0 -1
  416. codex/static_root/assets/VDivider-FBjAmdUU.ea4aecc22bd2.js.br +0 -0
  417. codex/static_root/assets/VDivider-FBjAmdUU.ea4aecc22bd2.js.gz +0 -0
  418. codex/static_root/assets/VDivider-FBjAmdUU.js +0 -1
  419. codex/static_root/assets/VDivider-FBjAmdUU.js.br +0 -0
  420. codex/static_root/assets/VDivider-FBjAmdUU.js.gz +0 -0
  421. codex/static_root/assets/VExpansionPanels-DqQbpMgG.ea0fc76e06a3.js.br +0 -0
  422. codex/static_root/assets/VExpansionPanels-DqQbpMgG.ea0fc76e06a3.js.gz +0 -0
  423. codex/static_root/assets/VExpansionPanels-DqQbpMgG.js.br +0 -0
  424. codex/static_root/assets/VExpansionPanels-DqQbpMgG.js.gz +0 -0
  425. codex/static_root/assets/VForm-NaAcaZEL.3665d62fb59c.js +0 -1
  426. codex/static_root/assets/VForm-NaAcaZEL.3665d62fb59c.js.br +0 -0
  427. codex/static_root/assets/VForm-NaAcaZEL.3665d62fb59c.js.gz +0 -0
  428. codex/static_root/assets/VForm-NaAcaZEL.js +0 -1
  429. codex/static_root/assets/VForm-NaAcaZEL.js.br +0 -0
  430. codex/static_root/assets/VForm-NaAcaZEL.js.gz +0 -0
  431. codex/static_root/assets/VRadioGroup-BJj5637W.19210f0d3f09.js +0 -1
  432. codex/static_root/assets/VRadioGroup-BJj5637W.19210f0d3f09.js.br +0 -0
  433. codex/static_root/assets/VRadioGroup-BJj5637W.19210f0d3f09.js.gz +0 -0
  434. codex/static_root/assets/VRadioGroup-BJj5637W.js +0 -1
  435. codex/static_root/assets/VRadioGroup-BJj5637W.js.br +0 -0
  436. codex/static_root/assets/VRadioGroup-BJj5637W.js.gz +0 -0
  437. codex/static_root/assets/VSelect-13kSkMSw.e2e4f65c015a.js +0 -1
  438. codex/static_root/assets/VSelect-13kSkMSw.e2e4f65c015a.js.br +0 -0
  439. codex/static_root/assets/VSelect-13kSkMSw.e2e4f65c015a.js.gz +0 -0
  440. codex/static_root/assets/VSelect-13kSkMSw.js +0 -1
  441. codex/static_root/assets/VSelect-13kSkMSw.js.br +0 -0
  442. codex/static_root/assets/VSelect-13kSkMSw.js.gz +0 -0
  443. codex/static_root/assets/VSelectionControl-BDXa3gVL.502d2e71aa47.js +0 -1
  444. codex/static_root/assets/VSelectionControl-BDXa3gVL.502d2e71aa47.js.br +0 -0
  445. codex/static_root/assets/VSelectionControl-BDXa3gVL.502d2e71aa47.js.gz +0 -0
  446. codex/static_root/assets/VSelectionControl-BDXa3gVL.js +0 -1
  447. codex/static_root/assets/VSelectionControl-BDXa3gVL.js.br +0 -0
  448. codex/static_root/assets/VSelectionControl-BDXa3gVL.js.gz +0 -0
  449. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css +0 -1
  450. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css.br +0 -0
  451. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css.gz +0 -0
  452. codex/static_root/assets/VSelectionControl-DPpfgCW2.css +0 -1
  453. codex/static_root/assets/VSelectionControl-DPpfgCW2.css.br +0 -0
  454. codex/static_root/assets/VSelectionControl-DPpfgCW2.css.gz +0 -0
  455. codex/static_root/assets/VTable-CrU3TmF5.a0fd0679e37c.js +0 -1
  456. codex/static_root/assets/VTable-CrU3TmF5.a0fd0679e37c.js.br +0 -0
  457. codex/static_root/assets/VTable-CrU3TmF5.a0fd0679e37c.js.gz +0 -0
  458. codex/static_root/assets/VTable-CrU3TmF5.js +0 -1
  459. codex/static_root/assets/VTable-CrU3TmF5.js.br +0 -0
  460. codex/static_root/assets/VTable-CrU3TmF5.js.gz +0 -0
  461. codex/static_root/assets/VWindowItem-DrdLuzoo.f8bc191fd6cc.js.br +0 -0
  462. codex/static_root/assets/VWindowItem-DrdLuzoo.f8bc191fd6cc.js.gz +0 -0
  463. codex/static_root/assets/VWindowItem-DrdLuzoo.js.br +0 -0
  464. codex/static_root/assets/VWindowItem-DrdLuzoo.js.gz +0 -0
  465. codex/static_root/assets/admin-EK-uATBo.4f6bff10b111.js.br +0 -0
  466. codex/static_root/assets/admin-EK-uATBo.4f6bff10b111.js.gz +0 -0
  467. codex/static_root/assets/admin-EK-uATBo.js.br +0 -0
  468. codex/static_root/assets/admin-EK-uATBo.js.gz +0 -0
  469. codex/static_root/assets/admin-ef9o9DWy.897300319dcb.js.br +0 -0
  470. codex/static_root/assets/admin-ef9o9DWy.897300319dcb.js.gz +0 -0
  471. codex/static_root/assets/admin-ef9o9DWy.js.br +0 -0
  472. codex/static_root/assets/admin-ef9o9DWy.js.gz +0 -0
  473. codex/static_root/assets/admin-menu-BGs-QlLU.0af3c53d39b3.js +0 -1
  474. codex/static_root/assets/admin-menu-BGs-QlLU.0af3c53d39b3.js.br +0 -0
  475. codex/static_root/assets/admin-menu-BGs-QlLU.0af3c53d39b3.js.gz +0 -0
  476. codex/static_root/assets/admin-menu-BGs-QlLU.js +0 -1
  477. codex/static_root/assets/admin-menu-BGs-QlLU.js.br +0 -0
  478. codex/static_root/assets/admin-menu-BGs-QlLU.js.gz +0 -0
  479. codex/static_root/assets/admin-settings-button-progress-BGB22oTD.2548c49a853e.css +0 -1
  480. codex/static_root/assets/admin-settings-button-progress-BGB22oTD.css +0 -1
  481. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.e8fc2dcf9c5c.js +0 -1
  482. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.e8fc2dcf9c5c.js.br +0 -0
  483. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.e8fc2dcf9c5c.js.gz +0 -0
  484. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.js +0 -1
  485. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.js.br +0 -0
  486. codex/static_root/assets/admin-settings-button-progress-DjkLly1M.js.gz +0 -0
  487. codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.br +0 -0
  488. codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.gz +0 -0
  489. codex/static_root/assets/browser-CECBMxOy.css.br +0 -0
  490. codex/static_root/assets/browser-CECBMxOy.css.gz +0 -0
  491. codex/static_root/assets/browser-CubzpWpS.71121950620b.js +0 -1
  492. codex/static_root/assets/browser-CubzpWpS.71121950620b.js.br +0 -0
  493. codex/static_root/assets/browser-CubzpWpS.71121950620b.js.gz +0 -0
  494. codex/static_root/assets/browser-CubzpWpS.js +0 -1
  495. codex/static_root/assets/browser-CubzpWpS.js.br +0 -0
  496. codex/static_root/assets/browser-CubzpWpS.js.gz +0 -0
  497. codex/static_root/assets/change-password-dialog-IN09owSO.f993a82b84e6.js.br +0 -0
  498. codex/static_root/assets/change-password-dialog-IN09owSO.f993a82b84e6.js.gz +0 -0
  499. codex/static_root/assets/change-password-dialog-IN09owSO.js.br +0 -0
  500. codex/static_root/assets/change-password-dialog-IN09owSO.js.gz +0 -0
  501. codex/static_root/assets/confirm-dialog-DspoCalP.9541a5fb406d.js.br +0 -0
  502. codex/static_root/assets/confirm-dialog-DspoCalP.9541a5fb406d.js.gz +0 -0
  503. codex/static_root/assets/confirm-dialog-DspoCalP.js.br +0 -0
  504. codex/static_root/assets/confirm-dialog-DspoCalP.js.gz +0 -0
  505. codex/static_root/assets/datetime-column-CoLT0Lnv.21598096323b.js +0 -1
  506. codex/static_root/assets/datetime-column-CoLT0Lnv.21598096323b.js.br +0 -2
  507. codex/static_root/assets/datetime-column-CoLT0Lnv.21598096323b.js.gz +0 -0
  508. codex/static_root/assets/datetime-column-CoLT0Lnv.js +0 -1
  509. codex/static_root/assets/datetime-column-CoLT0Lnv.js.br +0 -2
  510. codex/static_root/assets/datetime-column-CoLT0Lnv.js.gz +0 -0
  511. codex/static_root/assets/filter-C95q4pXo.c664eb9854a5.js +0 -1
  512. codex/static_root/assets/filter-C95q4pXo.c664eb9854a5.js.br +0 -0
  513. codex/static_root/assets/filter-C95q4pXo.c664eb9854a5.js.gz +0 -0
  514. codex/static_root/assets/filter-C95q4pXo.js +0 -1
  515. codex/static_root/assets/filter-C95q4pXo.js.br +0 -0
  516. codex/static_root/assets/filter-C95q4pXo.js.gz +0 -0
  517. codex/static_root/assets/flag-tab-85Q3KfGH.c891fb5ca239.js.br +0 -0
  518. codex/static_root/assets/flag-tab-85Q3KfGH.c891fb5ca239.js.gz +0 -0
  519. codex/static_root/assets/flag-tab-85Q3KfGH.js.br +0 -0
  520. codex/static_root/assets/flag-tab-85Q3KfGH.js.gz +0 -0
  521. codex/static_root/assets/forwardRefs-CIB4pjXm.5006635254e1.js +0 -1
  522. codex/static_root/assets/forwardRefs-CIB4pjXm.5006635254e1.js.br +0 -0
  523. codex/static_root/assets/forwardRefs-CIB4pjXm.5006635254e1.js.gz +0 -0
  524. codex/static_root/assets/forwardRefs-CIB4pjXm.js +0 -1
  525. codex/static_root/assets/forwardRefs-CIB4pjXm.js.br +0 -0
  526. codex/static_root/assets/forwardRefs-CIB4pjXm.js.gz +0 -0
  527. codex/static_root/assets/group-tab-BExnebOf.6e6dd3b38b0b.js.br +0 -0
  528. codex/static_root/assets/group-tab-BExnebOf.6e6dd3b38b0b.js.gz +0 -0
  529. codex/static_root/assets/group-tab-BExnebOf.js.br +0 -0
  530. codex/static_root/assets/group-tab-BExnebOf.js.gz +0 -0
  531. codex/static_root/assets/http-error-7DpB_JPE.182a9b38674a.js +0 -1
  532. codex/static_root/assets/http-error-7DpB_JPE.182a9b38674a.js.br +0 -0
  533. codex/static_root/assets/http-error-7DpB_JPE.182a9b38674a.js.gz +0 -0
  534. codex/static_root/assets/http-error-7DpB_JPE.js +0 -1
  535. codex/static_root/assets/http-error-7DpB_JPE.js.br +0 -0
  536. codex/static_root/assets/http-error-7DpB_JPE.js.gz +0 -0
  537. codex/static_root/assets/index-B356LCQm.e84c2b63a94a.js +0 -1
  538. codex/static_root/assets/index-B356LCQm.e84c2b63a94a.js.br +0 -0
  539. codex/static_root/assets/index-B356LCQm.e84c2b63a94a.js.gz +0 -0
  540. codex/static_root/assets/index-B356LCQm.js +0 -1
  541. codex/static_root/assets/index-B356LCQm.js.br +0 -0
  542. codex/static_root/assets/index-B356LCQm.js.gz +0 -0
  543. codex/static_root/assets/library-tab-CEGKyv0F.18c78a7ec9eb.js.br +0 -0
  544. codex/static_root/assets/library-tab-CEGKyv0F.18c78a7ec9eb.js.gz +0 -0
  545. codex/static_root/assets/library-tab-CEGKyv0F.js.br +0 -0
  546. codex/static_root/assets/library-tab-CEGKyv0F.js.gz +0 -0
  547. codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.br +0 -0
  548. codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.gz +0 -0
  549. codex/static_root/assets/library-tab-thTonyXr.css.br +0 -0
  550. codex/static_root/assets/library-tab-thTonyXr.css.gz +0 -0
  551. codex/static_root/assets/main-BK1Y9SuN.a3e6c13aa952.js +0 -35
  552. codex/static_root/assets/main-BK1Y9SuN.a3e6c13aa952.js.br +0 -0
  553. codex/static_root/assets/main-BK1Y9SuN.a3e6c13aa952.js.gz +0 -0
  554. codex/static_root/assets/main-BK1Y9SuN.js +0 -35
  555. codex/static_root/assets/main-BK1Y9SuN.js.br +0 -0
  556. codex/static_root/assets/main-BK1Y9SuN.js.gz +0 -0
  557. codex/static_root/assets/pager-full-pdf-CfnTqbYu.6b3b92a1a947.js +0 -1
  558. codex/static_root/assets/pager-full-pdf-CfnTqbYu.6b3b92a1a947.js.br +0 -0
  559. codex/static_root/assets/pager-full-pdf-CfnTqbYu.6b3b92a1a947.js.gz +0 -0
  560. codex/static_root/assets/pager-full-pdf-CfnTqbYu.js +0 -1
  561. codex/static_root/assets/pager-full-pdf-CfnTqbYu.js.br +0 -0
  562. codex/static_root/assets/pager-full-pdf-CfnTqbYu.js.gz +0 -0
  563. codex/static_root/assets/pagination-toolbar-CnAUAb4n.dad4c9a35233.js +0 -1
  564. codex/static_root/assets/pagination-toolbar-CnAUAb4n.dad4c9a35233.js.br +0 -0
  565. codex/static_root/assets/pagination-toolbar-CnAUAb4n.dad4c9a35233.js.gz +0 -0
  566. codex/static_root/assets/pagination-toolbar-CnAUAb4n.js +0 -1
  567. codex/static_root/assets/pagination-toolbar-CnAUAb4n.js.br +0 -0
  568. codex/static_root/assets/pagination-toolbar-CnAUAb4n.js.gz +0 -0
  569. codex/static_root/assets/pagination-toolbar-CpIvhu_T.0e1a1bac9f65.css.br +0 -0
  570. codex/static_root/assets/pagination-toolbar-CpIvhu_T.css.br +0 -0
  571. codex/static_root/assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css +0 -1
  572. codex/static_root/assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css.br +0 -1
  573. codex/static_root/assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css.gz +0 -0
  574. codex/static_root/assets/pdf-doc-B4cGW_Hl.css +0 -1
  575. codex/static_root/assets/pdf-doc-B4cGW_Hl.css.br +0 -1
  576. codex/static_root/assets/pdf-doc-B4cGW_Hl.css.gz +0 -0
  577. codex/static_root/assets/pdf-doc-CrlVxFXa.39165d9d32ed.js +0 -348
  578. codex/static_root/assets/pdf-doc-CrlVxFXa.39165d9d32ed.js.br +0 -0
  579. codex/static_root/assets/pdf-doc-CrlVxFXa.39165d9d32ed.js.gz +0 -0
  580. codex/static_root/assets/pdf-doc-CrlVxFXa.js +0 -348
  581. codex/static_root/assets/pdf-doc-CrlVxFXa.js.br +0 -0
  582. codex/static_root/assets/pdf-doc-CrlVxFXa.js.gz +0 -0
  583. codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.br +0 -0
  584. codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.gz +0 -0
  585. codex/static_root/assets/reader-Bcw698_5.css.br +0 -0
  586. codex/static_root/assets/reader-Bcw698_5.css.gz +0 -0
  587. codex/static_root/assets/reader-CxuxsLrc.a98bb63cc4c2.js +0 -2
  588. codex/static_root/assets/reader-CxuxsLrc.a98bb63cc4c2.js.br +0 -0
  589. codex/static_root/assets/reader-CxuxsLrc.a98bb63cc4c2.js.gz +0 -0
  590. codex/static_root/assets/reader-CxuxsLrc.js +0 -2
  591. codex/static_root/assets/reader-CxuxsLrc.js.br +0 -0
  592. codex/static_root/assets/reader-CxuxsLrc.js.gz +0 -0
  593. codex/static_root/assets/relation-chips-CifZPloM.css.br +0 -0
  594. codex/static_root/assets/relation-chips-CifZPloM.css.gz +0 -0
  595. codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.br +0 -0
  596. codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.gz +0 -0
  597. codex/static_root/assets/relation-chips-PLQoRHmS.5dc85e8ea055.js +0 -1
  598. codex/static_root/assets/relation-chips-PLQoRHmS.5dc85e8ea055.js.br +0 -0
  599. codex/static_root/assets/relation-chips-PLQoRHmS.5dc85e8ea055.js.gz +0 -0
  600. codex/static_root/assets/relation-chips-PLQoRHmS.js +0 -1
  601. codex/static_root/assets/relation-chips-PLQoRHmS.js.br +0 -0
  602. codex/static_root/assets/relation-chips-PLQoRHmS.js.gz +0 -0
  603. codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.br +0 -0
  604. codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.gz +0 -0
  605. codex/static_root/assets/settings-drawer-Bl-6rF9E.css.br +0 -0
  606. codex/static_root/assets/settings-drawer-Bl-6rF9E.css.gz +0 -0
  607. codex/static_root/assets/settings-drawer-CD3azBc0.8930f0f3e893.js +0 -2
  608. codex/static_root/assets/settings-drawer-CD3azBc0.8930f0f3e893.js.br +0 -0
  609. codex/static_root/assets/settings-drawer-CD3azBc0.8930f0f3e893.js.gz +0 -0
  610. codex/static_root/assets/settings-drawer-CD3azBc0.js +0 -2
  611. codex/static_root/assets/settings-drawer-CD3azBc0.js.br +0 -0
  612. codex/static_root/assets/settings-drawer-CD3azBc0.js.gz +0 -0
  613. codex/static_root/assets/ssrBoot-DXTtRnkT.4c3cc19af910.js.br +0 -0
  614. codex/static_root/assets/ssrBoot-DXTtRnkT.4c3cc19af910.js.gz +0 -0
  615. codex/static_root/assets/ssrBoot-DXTtRnkT.js.br +0 -0
  616. codex/static_root/assets/ssrBoot-DXTtRnkT.js.gz +0 -0
  617. codex/static_root/assets/stats-tab-vsRoMTcW.3897f26bbc29.js.br +0 -0
  618. codex/static_root/assets/stats-tab-vsRoMTcW.3897f26bbc29.js.gz +0 -0
  619. codex/static_root/assets/stats-tab-vsRoMTcW.js.br +0 -0
  620. codex/static_root/assets/stats-tab-vsRoMTcW.js.gz +0 -0
  621. codex/static_root/assets/task-tab-Cdx5-kHu.ab72a338a450.js.br +0 -0
  622. codex/static_root/assets/task-tab-Cdx5-kHu.ab72a338a450.js.gz +0 -0
  623. codex/static_root/assets/task-tab-Cdx5-kHu.js.br +0 -0
  624. codex/static_root/assets/task-tab-Cdx5-kHu.js.gz +0 -0
  625. codex/static_root/assets/unauthorized-BqMMPq6N.bc9ba40a375d.js.br +0 -0
  626. codex/static_root/assets/unauthorized-BqMMPq6N.bc9ba40a375d.js.gz +0 -0
  627. codex/static_root/assets/unauthorized-BqMMPq6N.js.br +0 -0
  628. codex/static_root/assets/unauthorized-BqMMPq6N.js.gz +0 -0
  629. codex/static_root/assets/user-tab-DdBVh24k.ab7c1bde5840.js +0 -1
  630. codex/static_root/assets/user-tab-DdBVh24k.ab7c1bde5840.js.br +0 -0
  631. codex/static_root/assets/user-tab-DdBVh24k.ab7c1bde5840.js.gz +0 -0
  632. codex/static_root/assets/user-tab-DdBVh24k.js +0 -1
  633. codex/static_root/assets/user-tab-DdBVh24k.js.br +0 -0
  634. codex/static_root/assets/user-tab-DdBVh24k.js.gz +0 -0
  635. codex/static_root/manifest.fcdd5d6fb965.json +0 -757
  636. codex/static_root/manifest.fcdd5d6fb965.json.br +0 -0
  637. codex/static_root/manifest.fcdd5d6fb965.json.gz +0 -0
  638. /codex/librarian/janitor/{time.py → scheduled_time.py} +0 -0
  639. /codex/librarian/telemeter/{time.py → scheduled_time.py} +0 -0
  640. {codex-1.7.10.dist-info → codex-1.7.11a0.dist-info}/LICENSE +0 -0
  641. {codex-1.7.10.dist-info → codex-1.7.11a0.dist-info}/entry_points.txt +0 -0
Binary file
Binary file
@@ -1 +1 @@
1
- {"paths": {"rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "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/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "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/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/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/folder.svg": "img/folder.f28936a3701d.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/series.svg": "img/series.ec8a889b8f95.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VDialog-BQWGxOC0.css": "assets/VDialog-BQWGxOC0.557592e1297d.css", "assets/settings-drawer-CD3azBc0.js": "assets/settings-drawer-CD3azBc0.8930f0f3e893.js", "assets/unauthorized-CtkV01lw.css": "assets/unauthorized-CtkV01lw.8668ffe7b306.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/confirm-dialog-DspoCalP.js": "assets/confirm-dialog-DspoCalP.9541a5fb406d.js", "assets/browser-CECBMxOy.css": "assets/browser-CECBMxOy.a750213334d5.css", "assets/VTable-CrU3TmF5.js": "assets/VTable-CrU3TmF5.a0fd0679e37c.js", "assets/forwardRefs-CIB4pjXm.js": "assets/forwardRefs-CIB4pjXm.5006635254e1.js", "assets/VRadioGroup-BJj5637W.js": "assets/VRadioGroup-BJj5637W.19210f0d3f09.js", "assets/relation-chips-PLQoRHmS.js": "assets/relation-chips-PLQoRHmS.5dc85e8ea055.js", "assets/settings-drawer-Bl-6rF9E.css": "assets/settings-drawer-Bl-6rF9E.7ace6186c209.css", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/change-password-dialog-IN09owSO.js": "assets/change-password-dialog-IN09owSO.f993a82b84e6.js", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/admin-settings-button-progress-DjkLly1M.js": "assets/admin-settings-button-progress-DjkLly1M.e8fc2dcf9c5c.js", "assets/VForm-NaAcaZEL.js": "assets/VForm-NaAcaZEL.3665d62fb59c.js", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/reader-Bcw698_5.css": "assets/reader-Bcw698_5.b73e2757553f.css", "assets/VCombobox-D2lMznZJ.js": "assets/VCombobox-D2lMznZJ.b8563f007654.js", "assets/VDialog-OMVMX5uI.js": "assets/VDialog-OMVMX5uI.617509c16662.js", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/filter-C95q4pXo.js": "assets/filter-C95q4pXo.c664eb9854a5.js", "assets/datetime-column-CoLT0Lnv.js": "assets/datetime-column-CoLT0Lnv.21598096323b.js", "assets/VCheckboxBtn-BpGCk6Oe.js": "assets/VCheckboxBtn-BpGCk6Oe.83398b59f314.js", "assets/pager-full-pdf-CfnTqbYu.js": "assets/pager-full-pdf-CfnTqbYu.6b3b92a1a947.js", "assets/task-tab-Cdx5-kHu.js": "assets/task-tab-Cdx5-kHu.ab72a338a450.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/browser-CubzpWpS.js": "assets/browser-CubzpWpS.71121950620b.js", "assets/admin-menu-BGs-QlLU.js": "assets/admin-menu-BGs-QlLU.0af3c53d39b3.js", "assets/pdf-doc-CrlVxFXa.js": "assets/pdf-doc-CrlVxFXa.39165d9d32ed.js", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/library-tab-thTonyXr.css": "assets/library-tab-thTonyXr.58b745660d42.css", "assets/main-BK1Y9SuN.js": "assets/main-BK1Y9SuN.a3e6c13aa952.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/library-tab-CEGKyv0F.js": "assets/library-tab-CEGKyv0F.18c78a7ec9eb.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VWindowItem-DrdLuzoo.js": "assets/VWindowItem-DrdLuzoo.f8bc191fd6cc.js", "assets/ssrBoot-DXTtRnkT.js": "assets/ssrBoot-DXTtRnkT.4c3cc19af910.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/VSelectionControl-BDXa3gVL.js": "assets/VSelectionControl-BDXa3gVL.502d2e71aa47.js", "assets/index-B356LCQm.js": "assets/index-B356LCQm.e84c2b63a94a.js", "assets/VCheckbox-Bbyc3D9e.js": "assets/VCheckbox-Bbyc3D9e.6cf9513cf5b9.js", "assets/VSelectionControl-DPpfgCW2.css": "assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/reader-CxuxsLrc.js": "assets/reader-CxuxsLrc.a98bb63cc4c2.js", "assets/pagination-toolbar-CnAUAb4n.js": "assets/pagination-toolbar-CnAUAb4n.dad4c9a35233.js", "assets/admin-EK-uATBo.js": "assets/admin-EK-uATBo.4f6bff10b111.js", "assets/flag-tab-85Q3KfGH.js": "assets/flag-tab-85Q3KfGH.c891fb5ca239.js", "assets/admin-ef9o9DWy.js": "assets/admin-ef9o9DWy.897300319dcb.js", "assets/admin-settings-button-progress-BGB22oTD.css": "assets/admin-settings-button-progress-BGB22oTD.2548c49a853e.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/relation-chips-CifZPloM.css": "assets/relation-chips-CifZPloM.e1f40ac9ae8b.css", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/VExpansionPanels-DqQbpMgG.js": "assets/VExpansionPanels-DqQbpMgG.ea0fc76e06a3.js", "assets/http-error-7DpB_JPE.js": "assets/http-error-7DpB_JPE.182a9b38674a.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/unauthorized-BqMMPq6N.js": "assets/unauthorized-BqMMPq6N.bc9ba40a375d.js", "assets/VDivider-FBjAmdUU.js": "assets/VDivider-FBjAmdUU.ea4aecc22bd2.js", "assets/pagination-toolbar-CpIvhu_T.css": "assets/pagination-toolbar-CpIvhu_T.0e1a1bac9f65.css", "assets/stats-tab-vsRoMTcW.js": "assets/stats-tab-vsRoMTcW.3897f26bbc29.js", "assets/pdf-doc-B4cGW_Hl.css": "assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css", "assets/stats-tab-B6L711cO.css": "assets/stats-tab-B6L711cO.b6a42655cd70.css", "assets/group-tab-BExnebOf.js": "assets/group-tab-BExnebOf.6e6dd3b38b0b.js", "assets/user-tab-DdBVh24k.js": "assets/user-tab-DdBVh24k.ab7c1bde5840.js", "assets/VSelect-13kSkMSw.js": "assets/VSelect-13kSkMSw.e2e4f65c015a.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.fcdd5d6fb965.json"}, "version": "1.1", "hash": "4b474b664fab"}
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/change-password-dialog-Bw5_buVm.js": "assets/change-password-dialog-Bw5_buVm.d199b40591de.js", "assets/VCombobox-DpadV2-4.js": "assets/VCombobox-DpadV2-4.ea605785117d.js", "assets/http-error-BYu6Kcz7.js": "assets/http-error-BYu6Kcz7.9e6d6753260e.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/VExpansionPanels-ape8k2o6.js": "assets/VExpansionPanels-ape8k2o6.235735bba3cc.js", "assets/VWindowItem-DSXaWHkP.js": "assets/VWindowItem-DSXaWHkP.89ac2ece629a.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VRadioGroup-BqJIH3Pa.js": "assets/VRadioGroup-BqJIH3Pa.22a036a63862.js", "assets/VDialog-DYkXmPin.css": "assets/VDialog-DYkXmPin.3991696c6a81.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-CzT9Hc3f.css": "assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css", "assets/VSelectionControl-DtEh26JD.css": "assets/VSelectionControl-DtEh26JD.eec621947209.css", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/filter-D2ELuNq3.js": "assets/filter-D2ELuNq3.2b1c1f24a6b4.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.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/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/browser-yJ6Noi8Y.js": "assets/browser-yJ6Noi8Y.624ef6fbd20b.js", "assets/library-tab-B5EpvS2Z.js": "assets/library-tab-B5EpvS2Z.ce7f598b989c.js", "assets/VCheckboxBtn-1PexCc2F.js": "assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js", "assets/VCheckbox-t1haz9-P.js": "assets/VCheckbox-t1haz9-P.38cb3995b2f3.js", "assets/stats-tab-DC24C65C.js": "assets/stats-tab-DC24C65C.58280bd367e1.js", "assets/user-tab-B7e9oz0-.js": "assets/user-tab-B7e9oz0-.03fd3875c9e3.js", "assets/task-tab-DI9bXb-m.js": "assets/task-tab-DI9bXb-m.52aad0736a2b.js", "assets/relation-chips-eQkZvJcT.css": "assets/relation-chips-eQkZvJcT.6b52d3f66aed.css", "assets/group-tab-J2MqClVb.js": "assets/group-tab-J2MqClVb.ff59e8269756.js", "assets/reader-myd-70jV.js": "assets/reader-myd-70jV.2a363255ca47.js", "assets/pdf-doc-CW06S-ga.js": "assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/unauthorized-CtkV01lw.css": "assets/unauthorized-CtkV01lw.8668ffe7b306.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/browser-Bf8JG2CE.css": "assets/browser-Bf8JG2CE.3af978c1f766.css", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/VSelect-Bi5KABMc.js": "assets/VSelect-Bi5KABMc.1268bafd6469.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/pagination-toolbar-2endB3w1.js": "assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/VDialog-BR4MrJeK.js": "assets/VDialog-BR4MrJeK.a2c876dbfac0.js", "assets/ssrBoot-B6yWBylJ.js": "assets/ssrBoot-B6yWBylJ.27fba7483f5d.js", "assets/admin-settings-button-progress-CLrIYn4d.js": "assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/pager-full-pdf-vSb0Gv-4.js": "assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js", "assets/admin-menu-Bts5DypF.js": "assets/admin-menu-Bts5DypF.83389408d5df.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/relation-chips-Bd8Jicbj.js": "assets/relation-chips-Bd8Jicbj.35d8fe15b532.js", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/main-nb_FhQoD.js": "assets/main-nb_FhQoD.5279ea775ff6.js", "assets/VTable-DWCA1lvG.js": "assets/VTable-DWCA1lvG.1562d6d70dbe.js", "assets/settings-drawer-DBftv9u0.js": "assets/settings-drawer-DBftv9u0.afd25184f6d8.js", "assets/forwardRefs-Cvn3Vptr.js": "assets/forwardRefs-Cvn3Vptr.26250646de8c.js", "assets/settings-drawer-WyG6HLH-.css": "assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css", "assets/VSelectionControl-CRVWANOr.js": "assets/VSelectionControl-CRVWANOr.bac2136c7c25.js", "assets/admin-Bxwc8451.js": "assets/admin-Bxwc8451.b2a8c85c5c82.js", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/reader-DdWNjEED.css": "assets/reader-DdWNjEED.97c15f661faf.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/datetime-column-PBwaoZso.js": "assets/datetime-column-PBwaoZso.4b7946b97468.js", "assets/stats-tab-B6L711cO.css": "assets/stats-tab-B6L711cO.b6a42655cd70.css", "assets/VForm-ZManiwIB.js": "assets/VForm-ZManiwIB.a4ee873a7650.js", "assets/admin-C81J8xOG.js": "assets/admin-C81J8xOG.772d05753583.js", "assets/unauthorized-C0p00au3.js": "assets/unauthorized-C0p00au3.983dc96cbe2b.js", "assets/index-70Ak1yZF.js": "assets/index-70Ak1yZF.6341f252a26f.js", "assets/flag-tab-Bfd3wqbW.js": "assets/flag-tab-Bfd3wqbW.eb77780e8a45.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/VDivider-CGYMLgJf.js": "assets/VDivider-CGYMLgJf.fbcb910c5e2b.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/confirm-dialog-CDmsC-9_.js": "assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.fd580176863a.json"}, "version": "1.1", "hash": "100be693344d"}
@@ -11,7 +11,6 @@ if ("serviceWorker" in navigator) {
11
11
  registration.scope,
12
12
  );
13
13
  return true;
14
- // eslint-disable-next-line unicorn/prefer-top-level-await
15
14
  })
16
15
  .catch(function (error) {
17
16
  // registration failed :(
codex/urls/converters.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from django.urls.converters import StringConverter
4
4
 
5
- from codex.logger.logging import get_logger
5
+ from codex.logger.logger import get_logger
6
6
 
7
7
  LOG = get_logger(__name__)
8
8
 
codex/views/admin/flag.py CHANGED
@@ -3,7 +3,7 @@
3
3
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
4
4
  from codex.librarian.notifier.tasks import ADMIN_FLAGS_CHANGED_TASK
5
5
  from codex.librarian.tasks import WakeCronTask
6
- from codex.logger.logging import get_logger
6
+ from codex.logger.logger import get_logger
7
7
  from codex.models import AdminFlag
8
8
  from codex.registration import patch_registration_setting
9
9
  from codex.serializers.admin.flags import AdminFlagSerializer
@@ -5,7 +5,7 @@ from django.core.cache import cache
5
5
 
6
6
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
7
7
  from codex.librarian.notifier.tasks import GROUPS_CHANGED_TASK
8
- from codex.logger.logging import get_logger
8
+ from codex.logger.logger import get_logger
9
9
  from codex.serializers.admin.groups import GroupSerializer
10
10
  from codex.views.admin.auth import AdminModelViewSet
11
11
 
@@ -16,7 +16,7 @@ from codex.librarian.watchdog.tasks import (
16
16
  WatchdogPollLibrariesTask,
17
17
  WatchdogSyncTask,
18
18
  )
19
- from codex.logger.logging import get_logger
19
+ from codex.logger.logger import get_logger
20
20
  from codex.models import FailedImport, Folder, Library
21
21
  from codex.serializers.admin.libraries import (
22
22
  AdminFolderListSerializer,
@@ -8,7 +8,7 @@ from rest_framework.response import Response
8
8
  from rest_framework.serializers import empty
9
9
 
10
10
  from codex.librarian.telemeter.stats import CodexStats
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.models.admin import Timestamp
13
13
  from codex.permissions import HasAPIKeyOrIsAdminUser
14
14
  from codex.serializers.admin.stats import (
@@ -58,7 +58,7 @@ from codex.librarian.watchdog.tasks import (
58
58
  WatchdogPollLibrariesTask,
59
59
  WatchdogSyncTask,
60
60
  )
61
- from codex.logger.logging import get_logger
61
+ from codex.logger.logger import get_logger
62
62
  from codex.models import LibrarianStatus
63
63
  from codex.serializers.admin.tasks import AdminLibrarianTaskSerializer
64
64
  from codex.serializers.mixins import OKSerializer
codex/views/admin/user.py CHANGED
@@ -13,7 +13,7 @@ from codex.librarian.notifier.tasks import (
13
13
  USERS_CHANGED_TASK,
14
14
  NotifierTask,
15
15
  )
16
- from codex.logger.logging import get_logger
16
+ from codex.logger.logger import get_logger
17
17
  from codex.serializers.admin.users import UserChangePasswordSerializer, UserSerializer
18
18
  from codex.views.admin.auth import AdminGenericAPIView, AdminModelViewSet
19
19
 
codex/views/auth.py CHANGED
@@ -6,7 +6,7 @@ from rest_framework.generics import GenericAPIView
6
6
  from rest_framework.permissions import IsAuthenticated
7
7
  from rest_framework.views import APIView
8
8
 
9
- from codex.logger.logging import get_logger
9
+ from codex.logger.logger import get_logger
10
10
  from codex.models import AdminFlag, Comic, Folder, StoryArc
11
11
 
12
12
  LOG = get_logger(__name__)
codex/views/bookmark.py CHANGED
@@ -9,7 +9,7 @@ from rest_framework.views import APIView
9
9
 
10
10
  from codex.librarian.bookmark.tasks import BookmarkUpdateTask
11
11
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
12
- from codex.logger.logging import get_logger
12
+ from codex.logger.logger import get_logger
13
13
  from codex.views.auth import AuthAPIView, GroupACLMixin
14
14
 
15
15
  if TYPE_CHECKING:
@@ -49,7 +49,7 @@ class BookmarkFilterMixin(GroupACLMixin, ABC):
49
49
  class BookmarkAuthMixin(APIView):
50
50
  """Base class for Bookmark Views."""
51
51
 
52
- def get_bookmark_auth_filter(self):
52
+ def get_bookmark_auth_filter(self) -> dict[str, int | str | None]:
53
53
  """Filter only the user's bookmarks."""
54
54
  if self.request.user.is_authenticated:
55
55
  key = "user_id"
@@ -11,7 +11,7 @@ from django.db.models.fields import BooleanField, PositiveSmallIntegerField
11
11
  from django.db.models.functions import Least
12
12
  from django.db.models.functions.comparison import Coalesce, Greatest
13
13
 
14
- from codex.logger.logging import get_logger
14
+ from codex.logger.logger import get_logger
15
15
  from codex.models import (
16
16
  Comic,
17
17
  )
@@ -8,7 +8,7 @@ from django.db.models import (
8
8
  )
9
9
  from django.db.models.fields import CharField
10
10
 
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.models.comic import Comic
13
13
  from codex.models.functions import JsonGroupArray
14
14
  from codex.models.groups import BrowserGroupModel, Imprint, Publisher, Series, Volume
@@ -13,7 +13,7 @@ from django.db.models.aggregates import Avg, Count, Max, Min, Sum
13
13
  from django.db.models.fields import CharField
14
14
  from django.db.models.functions import Reverse, Right, StrIndex
15
15
 
16
- from codex.logger.logging import get_logger
16
+ from codex.logger.logger import get_logger
17
17
  from codex.models import (
18
18
  Comic,
19
19
  Folder,
@@ -4,7 +4,7 @@ from drf_spectacular.utils import extend_schema
4
4
  from rest_framework.response import Response
5
5
 
6
6
  from codex.librarian.bookmark.update import BookmarkUpdate
7
- from codex.logger.logging import get_logger
7
+ from codex.logger.logger import get_logger
8
8
  from codex.models.comic import Comic
9
9
  from codex.serializers.models.bookmark import (
10
10
  BookmarkFinishedSerializer,
@@ -4,7 +4,7 @@ from contextlib import suppress
4
4
  from types import MappingProxyType
5
5
  from typing import TYPE_CHECKING
6
6
 
7
- from codex.logger.logging import get_logger
7
+ from codex.logger.logger import get_logger
8
8
  from codex.models import (
9
9
  BrowserGroupModel,
10
10
  Comic,
@@ -214,8 +214,10 @@ class BrowserBreadcrumbsView(BrowserPaginateView):
214
214
 
215
215
  if old_breadcrumbs and (
216
216
  (group_crumb == old_breadcrumbs[-1])
217
- or (changed and (group_crumb & old_breadcrumbs[-1]))
218
- and not old_breadcrumbs[0].pks
217
+ or (
218
+ (changed and (group_crumb & old_breadcrumbs[-1]))
219
+ and not old_breadcrumbs[0].pks
220
+ )
219
221
  ):
220
222
  # Graft. Hurray
221
223
  new_breadcrumbs[0:0] = old_breadcrumbs
@@ -8,7 +8,7 @@ from django.db.utils import OperationalError
8
8
  from drf_spectacular.utils import extend_schema
9
9
  from rest_framework.response import Response
10
10
 
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.models import (
13
13
  AdminFlag,
14
14
  Comic,
@@ -9,7 +9,7 @@ from drf_spectacular.utils import extend_schema
9
9
  from rest_framework.response import Response
10
10
 
11
11
  from codex.choices.browser import DUMMY_NULL_NAME, VUETIFY_NULL_CODE
12
- from codex.logger.logging import get_logger
12
+ from codex.logger.logger import get_logger
13
13
  from codex.models import (
14
14
  Comic,
15
15
  ContributorPerson,
@@ -10,7 +10,7 @@ from rest_framework.renderers import BaseRenderer
10
10
  from codex.librarian.covers.create import CoverCreateThread
11
11
  from codex.librarian.covers.path import CoverPathMixin
12
12
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
13
- from codex.logger.logging import get_logger
13
+ from codex.logger.logger import get_logger
14
14
  from codex.models import Comic, Volume
15
15
  from codex.models.groups import Folder
16
16
  from codex.models.paths import CustomCover
@@ -6,7 +6,7 @@ from drf_spectacular.types import OpenApiTypes
6
6
  from drf_spectacular.utils import extend_schema
7
7
  from zipstream import ZipStream
8
8
 
9
- from codex.logger.logging import get_logger
9
+ from codex.logger.logger import get_logger
10
10
  from codex.views.browser.filters.filter import BrowserFilterView
11
11
 
12
12
  LOG = get_logger()
@@ -3,7 +3,7 @@
3
3
  from django.db.models.query import QuerySet
4
4
  from django.db.models.query_utils import Q
5
5
 
6
- from codex.logger.logging import get_logger
6
+ from codex.logger.logger import get_logger
7
7
  from codex.models.comic import Comic
8
8
  from codex.views.browser.filters.bookmark import BrowserFilterBookmarkView
9
9
 
@@ -7,7 +7,7 @@ from django.db.models import (
7
7
  )
8
8
  from django.db.models.fields.related import ForeignKey, ManyToManyField
9
9
 
10
- from codex.logger.logging import get_logger
10
+ from codex.logger.logger import get_logger
11
11
  from codex.views.browser.filters.search.aliases import FIELD_TYPE_MAP
12
12
 
13
13
  _FIELD_TO_REL_SPAN_MAP = MappingProxyType(
@@ -16,7 +16,7 @@ from django.db.models import (
16
16
  from django.db.models.fields import DecimalField, PositiveSmallIntegerField
17
17
  from humanfriendly import parse_size
18
18
 
19
- from codex.logger.logging import get_logger
19
+ from codex.logger.logger import get_logger
20
20
  from codex.settings.settings import FALSY
21
21
 
22
22
  _QUOTES_RE = re.compile(r"[\"']")
@@ -2,7 +2,7 @@
2
2
 
3
3
  from django.db.models import Q
4
4
 
5
- from codex.logger.logging import get_logger
5
+ from codex.logger.logger import get_logger
6
6
  from codex.views.browser.filters.field import ComicFieldFilterView
7
7
  from codex.views.browser.filters.search.field.column import parse_field
8
8
  from codex.views.browser.filters.search.field.parse import get_field_query
@@ -1,6 +1,6 @@
1
1
  """Search Filters Methods."""
2
2
 
3
- from codex.logger.logging import get_logger
3
+ from codex.logger.logger import get_logger
4
4
  from codex.views.browser.filters.search.field.filter import BrowserFieldQueryFilter
5
5
 
6
6
  LOG = get_logger(__name__)
@@ -5,7 +5,7 @@ from types import MappingProxyType
5
5
 
6
6
  from django.db.models.query import Q
7
7
 
8
- from codex.logger.logging import get_logger
8
+ from codex.logger.logger import get_logger
9
9
  from codex.models import AdminFlag
10
10
  from codex.models.comic import ComicFTS
11
11
  from codex.views.browser.filters.search.aliases import ALIAS_FIELD_MAP
@@ -42,7 +42,7 @@ _NON_FTS_COLUMNS = frozenset(
42
42
  _VALID_COLUMNS = frozenset(_FTS_COLUMNS | _NON_FTS_COLUMNS)
43
43
  _QUOTES_REXP = r"\".*?\""
44
44
  _COLUMN_EXPRESSION_OPERATORS_REXP = (
45
- rf"(?:{_QUOTES_REXP})|(?P<star>\B[\*\<\>]\w|\.{2,}|\w\*\w)"
45
+ rf"(?:{_QUOTES_REXP})|(?P<star>\B[\*\<\>]\w|\.{(2,)}|\w\*\w)"
46
46
  )
47
47
  _COLUMN_EXPRESSION_OPERATORS_RE = re.compile(_COLUMN_EXPRESSION_OPERATORS_REXP)
48
48
  _FTS_OPERATORS = frozenset({"and", "not", "or", "near"})
@@ -6,7 +6,7 @@ from django.db.models.aggregates import Aggregate, Max
6
6
  from django.db.models.functions import Greatest
7
7
  from django.db.utils import OperationalError
8
8
 
9
- from codex.logger.logging import get_logger
9
+ from codex.logger.logger import get_logger
10
10
  from codex.models.functions import JsonGroupArray
11
11
  from codex.views.browser.filters.filter import BrowserFilterView
12
12
  from codex.views.const import EPOCH_START, EPOCH_START_DATETIMEFIELD, NONE_DATETIMEFIELD
@@ -6,7 +6,7 @@ from drf_spectacular.utils import extend_schema
6
6
  from rest_framework.exceptions import NotFound
7
7
  from rest_framework.response import Response
8
8
 
9
- from codex.logger.logging import get_logger
9
+ from codex.logger.logger import get_logger
10
10
  from codex.models import AdminFlag
11
11
  from codex.serializers.browser.metadata import MetadataSerializer
12
12
  from codex.serializers.browser.settings import BrowserFilterChoicesInputSerilalizer
@@ -3,7 +3,7 @@
3
3
  from drf_spectacular.utils import extend_schema
4
4
  from rest_framework.response import Response
5
5
 
6
- from codex.logger.logging import get_logger
6
+ from codex.logger.logger import get_logger
7
7
  from codex.models.groups import Publisher
8
8
  from codex.serializers.browser.mtime import GroupsMtimeSerializer, MtimeSerializer
9
9
  from codex.util import max_none
@@ -19,10 +19,8 @@ class BrowserOrderByView(BrowserGroupMtimeView):
19
19
  if not self._order_key:
20
20
  order_key: str = self.params["order_by"]
21
21
  if (order_key == "search_score" and not self.fts_mode) or (
22
- order_key == "filename"
23
- and not self.admin_flags["folder_view"]
24
- or order_key == "child_count"
25
- and self.TARGET == "cover"
22
+ (order_key == "filename" and not self.admin_flags["folder_view"])
23
+ or (order_key == "child_count" and self.TARGET == "cover")
26
24
  ):
27
25
  order_key = "sort_name"
28
26
  self._order_key = order_key
@@ -1,6 +1,6 @@
1
1
  """Browser Page Bounds Checking."""
2
2
 
3
- from codex.logger.logging import get_logger
3
+ from codex.logger.logger import get_logger
4
4
  from codex.views.browser.annotate.card import BrowserAnnotateCardView
5
5
  from codex.views.util import Route
6
6
 
@@ -4,7 +4,7 @@ from math import ceil
4
4
 
5
5
  from django.core.paginator import EmptyPage, Paginator
6
6
 
7
- from codex.logger.logging import get_logger
7
+ from codex.logger.logger import get_logger
8
8
  from codex.views.browser.page_in_bounds import BrowserPageInBoundsView
9
9
  from codex.views.const import MAX_OBJ_PER_PAGE
10
10
 
@@ -9,7 +9,7 @@ from rest_framework.exceptions import NotFound
9
9
 
10
10
  from codex.choices.browser import DEFAULT_BROWSER_ROUTE
11
11
  from codex.exceptions import SeeOtherRedirectError
12
- from codex.logger.logging import get_logger
12
+ from codex.logger.logger import get_logger
13
13
  from codex.models.groups import BrowserGroupModel
14
14
  from codex.util import mapping_to_dict
15
15
  from codex.views.browser.filters.search.parse import SearchFilterView
codex/views/mixins.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from django.db.models.expressions import F
4
4
 
5
- from codex.logger.logging import get_logger
5
+ from codex.logger.logger import get_logger
6
6
  from codex.models.comic import Comic, Imprint, Volume
7
7
  from codex.views.browser.filters.filter import BrowserFilterView
8
8
  from codex.views.const import GROUP_NAME_MAP
@@ -8,7 +8,7 @@ from urllib.parse import urlencode
8
8
  from dateutil import parser
9
9
  from django.urls import reverse
10
10
 
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.models import Comic
13
13
  from codex.views.opds.const import (
14
14
  AUTHOR_ROLES,
@@ -7,7 +7,7 @@ from urllib.parse import quote_plus
7
7
  from comicbox.box import Comicbox
8
8
  from django.urls import reverse
9
9
 
10
- from codex.logger.logging import get_logger
10
+ from codex.logger.logger import get_logger
11
11
  from codex.views.opds.const import MimeType, Rel
12
12
  from codex.views.opds.util import update_href_query_params
13
13
  from codex.views.opds.v1.data import OPDS1Link
@@ -189,11 +189,8 @@ class OPDS1FacetsView(BrowserView):
189
189
  def _did_special_group_change(group, facet_group):
190
190
  """Test if one of the special groups changed."""
191
191
  for test_group in ("f", "a"):
192
- if (
193
- group == test_group
194
- and facet_group != test_group
195
- or group != test_group
196
- and facet_group == test_group
192
+ if (group == test_group and facet_group != test_group) or (
193
+ group != test_group and facet_group == test_group
197
194
  ):
198
195
  return True
199
196
  return False
@@ -8,7 +8,7 @@ from rest_framework.throttling import ScopedRateThrottle
8
8
 
9
9
  from codex.librarian.importer.tasks import LazyImportComicsTask
10
10
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.serializers.browser.settings import OPDSSettingsSerializer
13
13
  from codex.serializers.opds.v1 import (
14
14
  OPDS1TemplateSerializer,
@@ -8,7 +8,7 @@ from types import MappingProxyType
8
8
  import simplejson as json
9
9
  from django.urls import reverse
10
10
 
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.views.opds.const import MimeType, Rel
13
13
  from codex.views.opds.util import update_href_query_params
14
14
  from codex.views.opds.v1.data import OPDS1Link
@@ -5,7 +5,7 @@ from types import MappingProxyType
5
5
  from drf_spectacular.utils import extend_schema
6
6
  from rest_framework.response import Response
7
7
 
8
- from codex.logger.logging import get_logger
8
+ 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
@@ -10,7 +10,7 @@ from django.db.models.query_utils import FilteredRelation
10
10
  from rest_framework.exceptions import ValidationError
11
11
  from rest_framework.response import Response
12
12
 
13
- from codex.logger.logging import get_logger
13
+ from codex.logger.logger import get_logger
14
14
  from codex.serializers.opds.v2.progression import OPDS2ProgressionSerializer
15
15
  from codex.util import max_none
16
16
  from codex.views.auth import AuthFilterGenericAPIView
codex/views/public.py CHANGED
@@ -4,7 +4,7 @@ from rest_framework.generics import GenericAPIView
4
4
  from rest_framework.mixins import RetrieveModelMixin
5
5
 
6
6
  from codex.choices.admin import ADMIN_FLAG_CHOICES
7
- from codex.logger.logging import get_logger
7
+ from codex.logger.logger import get_logger
8
8
  from codex.models import AdminFlag
9
9
  from codex.serializers.auth import AuthAdminFlagsSerializer
10
10
 
@@ -11,7 +11,7 @@ from rest_framework.negotiation import BaseContentNegotiation
11
11
 
12
12
  from codex.librarian.bookmark.tasks import BookmarkUpdateTask
13
13
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
14
- from codex.logger.logging import get_logger
14
+ from codex.logger.logger import get_logger
15
15
  from codex.models.comic import Comic, FileType
16
16
  from codex.settings.settings import FALSY
17
17
  from codex.views.auth import AuthFilterAPIView
@@ -3,7 +3,7 @@
3
3
  from types import MappingProxyType
4
4
  from typing import Any
5
5
 
6
- from codex.logger.logging import get_logger
6
+ from codex.logger.logger import get_logger
7
7
  from codex.models import Comic
8
8
  from codex.serializers.reader import (
9
9
  ReaderViewInputSerializer,
@@ -8,7 +8,7 @@ from rest_framework.response import Response
8
8
 
9
9
  from codex.librarian.importer.tasks import LazyImportComicsTask
10
10
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
11
- from codex.logger.logging import get_logger
11
+ from codex.logger.logger import get_logger
12
12
  from codex.serializers.reader import ReaderComicsSerializer, ReaderViewInputSerializer
13
13
  from codex.serializers.redirect import ReaderRedirectSerializer
14
14
  from codex.views.reader.arcs import ReaderArcsView
codex/views/session.py CHANGED
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
7
7
 
8
8
  from codex.choices.browser import BROWSER_DEFAULTS
9
9
  from codex.choices.reader import READER_DEFAULTS
10
- from codex.logger.logging import get_logger
10
+ from codex.logger.logger import get_logger
11
11
  from codex.util import mapping_to_dict
12
12
  from codex.views.auth import AuthFilterGenericAPIView
13
13
  from codex.views.util import pop_name
codex/views/timezone.py CHANGED
@@ -3,7 +3,7 @@
3
3
  from drf_spectacular.utils import extend_schema
4
4
  from rest_framework.response import Response
5
5
 
6
- from codex.logger.logging import get_logger
6
+ from codex.logger.logger import get_logger
7
7
  from codex.serializers.auth import TimezoneSerializer
8
8
  from codex.serializers.mixins import OKSerializer
9
9
  from codex.views.auth import AuthGenericAPIView
@@ -4,7 +4,7 @@ from enum import Enum
4
4
 
5
5
  from channels.generic.websocket import AsyncWebsocketConsumer
6
6
 
7
- from codex.logger.logging import get_logger
7
+ from codex.logger.logger import get_logger
8
8
 
9
9
  ChannelGroups = Enum("ChannelGroups", "ALL ADMIN")
10
10