codex 1.5.5__py3-none-any.whl → 1.5.7__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 (365) hide show
  1. codex/librarian/importer/query_fks.py +49 -37
  2. codex/settings/settings.py +1 -1
  3. codex/static_root/assets/{VCheckbox-DdDXXUG_.3735aff52b91.js → VCheckbox-DLjoJtr0.5d60599395a5.js} +1 -1
  4. codex/static_root/assets/VCheckbox-DLjoJtr0.5d60599395a5.js.br +0 -0
  5. codex/static_root/assets/VCheckbox-DLjoJtr0.5d60599395a5.js.gz +0 -0
  6. codex/static_root/assets/{VCheckbox-DdDXXUG_.js → VCheckbox-DLjoJtr0.js} +1 -1
  7. codex/static_root/assets/VCheckbox-DLjoJtr0.js.br +0 -0
  8. codex/static_root/assets/VCheckbox-DLjoJtr0.js.gz +0 -0
  9. codex/static_root/assets/{VCheckboxBtn-BL9XzJ_N.f7117f2de676.js → VCheckboxBtn-rYCIroIq.75dabef40e06.js} +1 -1
  10. codex/static_root/assets/VCheckboxBtn-rYCIroIq.75dabef40e06.js.br +0 -0
  11. codex/static_root/assets/VCheckboxBtn-rYCIroIq.75dabef40e06.js.gz +0 -0
  12. codex/static_root/assets/{VCheckboxBtn-BL9XzJ_N.js → VCheckboxBtn-rYCIroIq.js} +1 -1
  13. codex/static_root/assets/VCheckboxBtn-rYCIroIq.js.br +0 -0
  14. codex/static_root/assets/VCheckboxBtn-rYCIroIq.js.gz +0 -0
  15. codex/static_root/assets/{VCombobox-BBX2YHlF.7d0af57020a1.js → VCombobox-BU9dgajj.d9b7d9dd727c.js} +1 -1
  16. codex/static_root/assets/VCombobox-BU9dgajj.d9b7d9dd727c.js.br +0 -0
  17. codex/static_root/assets/VCombobox-BU9dgajj.d9b7d9dd727c.js.gz +0 -0
  18. codex/static_root/assets/{VCombobox-BBX2YHlF.js → VCombobox-BU9dgajj.js} +1 -1
  19. codex/static_root/assets/VCombobox-BU9dgajj.js.br +0 -0
  20. codex/static_root/assets/VCombobox-BU9dgajj.js.gz +0 -0
  21. codex/static_root/assets/{VDataTableVirtual-D6CHVm8F.221c6a802c5c.js → VDataTableVirtual-BE-h8GKr.cc7a0ac5d14e.js} +1 -1
  22. codex/static_root/assets/VDataTableVirtual-BE-h8GKr.cc7a0ac5d14e.js.br +0 -0
  23. codex/static_root/assets/VDataTableVirtual-BE-h8GKr.cc7a0ac5d14e.js.gz +0 -0
  24. codex/static_root/assets/{VDataTableVirtual-D6CHVm8F.js → VDataTableVirtual-BE-h8GKr.js} +1 -1
  25. codex/static_root/assets/VDataTableVirtual-BE-h8GKr.js.br +0 -0
  26. codex/static_root/assets/VDataTableVirtual-BE-h8GKr.js.gz +0 -0
  27. codex/static_root/assets/{VExpansionPanel-OCjz1obe.645eb8714f55.js → VExpansionPanel-C_YE4cHg.021b797cc0a6.js} +1 -1
  28. codex/static_root/assets/VExpansionPanel-C_YE4cHg.021b797cc0a6.js.br +0 -0
  29. codex/static_root/assets/VExpansionPanel-C_YE4cHg.021b797cc0a6.js.gz +0 -0
  30. codex/static_root/assets/{VExpansionPanel-OCjz1obe.js → VExpansionPanel-C_YE4cHg.js} +1 -1
  31. codex/static_root/assets/VExpansionPanel-C_YE4cHg.js.br +0 -0
  32. codex/static_root/assets/VExpansionPanel-C_YE4cHg.js.gz +0 -0
  33. codex/static_root/assets/{VMain-Dv_06nl1.4d0da3a9405c.js → VMain-BPAmFsfk.70418abd97a2.js} +1 -1
  34. codex/static_root/assets/VMain-BPAmFsfk.70418abd97a2.js.br +0 -0
  35. codex/static_root/assets/VMain-BPAmFsfk.70418abd97a2.js.gz +0 -0
  36. codex/static_root/assets/{VMain-Dv_06nl1.js → VMain-BPAmFsfk.js} +1 -1
  37. codex/static_root/assets/VMain-BPAmFsfk.js.br +0 -0
  38. codex/static_root/assets/VMain-BPAmFsfk.js.gz +0 -0
  39. codex/static_root/assets/{VRadioGroup-CSMZDGT5.1132661eb90d.js → VRadioGroup-BNX77cb6.9735cbcf7ba7.js} +1 -1
  40. codex/static_root/assets/VRadioGroup-BNX77cb6.9735cbcf7ba7.js.br +0 -0
  41. codex/static_root/assets/VRadioGroup-BNX77cb6.9735cbcf7ba7.js.gz +0 -0
  42. codex/static_root/assets/{VRadioGroup-CSMZDGT5.js → VRadioGroup-BNX77cb6.js} +1 -1
  43. codex/static_root/assets/VRadioGroup-BNX77cb6.js.br +0 -0
  44. codex/static_root/assets/VRadioGroup-BNX77cb6.js.gz +0 -0
  45. codex/static_root/assets/{VSelect-aVOHWsmq.js → VSelect-Cu3Kzlmc.e8dd6415829e.js} +1 -1
  46. codex/static_root/assets/VSelect-Cu3Kzlmc.e8dd6415829e.js.br +0 -0
  47. codex/static_root/assets/VSelect-Cu3Kzlmc.e8dd6415829e.js.gz +0 -0
  48. codex/static_root/assets/{VSelect-aVOHWsmq.8d7b64d05165.js → VSelect-Cu3Kzlmc.js} +1 -1
  49. codex/static_root/assets/VSelect-Cu3Kzlmc.js.br +0 -0
  50. codex/static_root/assets/VSelect-Cu3Kzlmc.js.gz +0 -0
  51. codex/static_root/assets/{VSelectionControl-CtKCqNcT.8cd06e14b2cd.js → VSelectionControl-CwCfBXjB.f49d7348da17.js} +1 -1
  52. codex/static_root/assets/VSelectionControl-CwCfBXjB.f49d7348da17.js.br +0 -0
  53. codex/static_root/assets/VSelectionControl-CwCfBXjB.f49d7348da17.js.gz +0 -0
  54. codex/static_root/assets/{VSelectionControl-CtKCqNcT.js → VSelectionControl-CwCfBXjB.js} +1 -1
  55. codex/static_root/assets/VSelectionControl-CwCfBXjB.js.br +0 -0
  56. codex/static_root/assets/VSelectionControl-CwCfBXjB.js.gz +0 -0
  57. codex/static_root/assets/{VSlideGroup-BSR6h8c0.b3c06f3794bf.js → VSlideGroup-Bvm3Umct.9e302c3e6ef0.js} +1 -1
  58. codex/static_root/assets/VSlideGroup-Bvm3Umct.9e302c3e6ef0.js.br +0 -0
  59. codex/static_root/assets/VSlideGroup-Bvm3Umct.9e302c3e6ef0.js.gz +0 -0
  60. codex/static_root/assets/{VSlideGroup-BSR6h8c0.js → VSlideGroup-Bvm3Umct.js} +1 -1
  61. codex/static_root/assets/VSlideGroup-Bvm3Umct.js.br +0 -0
  62. codex/static_root/assets/VSlideGroup-Bvm3Umct.js.gz +0 -0
  63. codex/static_root/assets/{VTable-DAUsLOME.81772293c465.js → VTable-DyY94cHK.fd42e5569db9.js} +1 -1
  64. codex/static_root/assets/VTable-DyY94cHK.fd42e5569db9.js.br +0 -0
  65. codex/static_root/assets/VTable-DyY94cHK.fd42e5569db9.js.gz +0 -0
  66. codex/static_root/assets/{VTable-DAUsLOME.js → VTable-DyY94cHK.js} +1 -1
  67. codex/static_root/assets/VTable-DyY94cHK.js.br +0 -0
  68. codex/static_root/assets/VTable-DyY94cHK.js.gz +0 -0
  69. codex/static_root/assets/{VToolbar-CGhGWqCj.js → VToolbar-BoY3uXeQ.153fc4b00597.js} +2 -2
  70. codex/static_root/assets/VToolbar-BoY3uXeQ.153fc4b00597.js.br +0 -0
  71. codex/static_root/assets/VToolbar-BoY3uXeQ.153fc4b00597.js.gz +0 -0
  72. codex/static_root/assets/{VToolbar-CGhGWqCj.be6dca8c19fa.js → VToolbar-BoY3uXeQ.js} +2 -2
  73. codex/static_root/assets/VToolbar-BoY3uXeQ.js.br +0 -0
  74. codex/static_root/assets/VToolbar-BoY3uXeQ.js.gz +0 -0
  75. codex/static_root/assets/{VWindowItem-BvSv0nB9.73b1e6a22153.js → VWindowItem-dh08pIme.34a698c1de90.js} +1 -1
  76. codex/static_root/assets/VWindowItem-dh08pIme.34a698c1de90.js.br +0 -0
  77. codex/static_root/assets/VWindowItem-dh08pIme.34a698c1de90.js.gz +0 -0
  78. codex/static_root/assets/{VWindowItem-BvSv0nB9.js → VWindowItem-dh08pIme.js} +1 -1
  79. codex/static_root/assets/VWindowItem-dh08pIme.js.br +0 -0
  80. codex/static_root/assets/VWindowItem-dh08pIme.js.gz +0 -0
  81. codex/static_root/assets/{admin-B75AbMQd.fffa2aea8c6d.js → admin-at7U-7a0.5c4ad1f03eb5.js} +1 -1
  82. codex/static_root/assets/admin-at7U-7a0.5c4ad1f03eb5.js.br +0 -0
  83. codex/static_root/assets/admin-at7U-7a0.5c4ad1f03eb5.js.gz +0 -0
  84. codex/static_root/assets/{admin-B75AbMQd.js → admin-at7U-7a0.js} +1 -1
  85. codex/static_root/assets/admin-at7U-7a0.js.br +0 -0
  86. codex/static_root/assets/admin-at7U-7a0.js.gz +0 -0
  87. codex/static_root/assets/{admin-drawer-panel-Dokj6opX.030e0a0853ae.js → admin-drawer-panel-DBj4RoBP.4b2b2a512064.js} +1 -1
  88. codex/static_root/assets/admin-drawer-panel-DBj4RoBP.4b2b2a512064.js.br +0 -0
  89. codex/static_root/assets/admin-drawer-panel-DBj4RoBP.4b2b2a512064.js.gz +0 -0
  90. codex/static_root/assets/{admin-drawer-panel-Dokj6opX.js → admin-drawer-panel-DBj4RoBP.js} +1 -1
  91. codex/static_root/assets/admin-drawer-panel-DBj4RoBP.js.br +0 -0
  92. codex/static_root/assets/admin-drawer-panel-DBj4RoBP.js.gz +0 -0
  93. codex/static_root/assets/{browser-C8SJwVGz.0f7daf93b064.css → browser-DK20egTr.b1e739ab9e9f.css} +1 -1
  94. codex/static_root/assets/browser-DK20egTr.b1e739ab9e9f.css.br +0 -0
  95. codex/static_root/assets/browser-DK20egTr.b1e739ab9e9f.css.gz +0 -0
  96. codex/static_root/assets/{browser-C8SJwVGz.css → browser-DK20egTr.css} +1 -1
  97. codex/static_root/assets/browser-DK20egTr.css.br +0 -0
  98. codex/static_root/assets/browser-DK20egTr.css.gz +0 -0
  99. codex/static_root/assets/browser-ufllJIOQ.8dfc9872d60d.js +1 -0
  100. codex/static_root/assets/browser-ufllJIOQ.8dfc9872d60d.js.br +0 -0
  101. codex/static_root/assets/browser-ufllJIOQ.8dfc9872d60d.js.gz +0 -0
  102. codex/static_root/assets/browser-ufllJIOQ.js +1 -0
  103. codex/static_root/assets/browser-ufllJIOQ.js.br +0 -0
  104. codex/static_root/assets/browser-ufllJIOQ.js.gz +0 -0
  105. codex/static_root/assets/{change-password-dialog-Bk16QZ2G.bd8a78b164fe.js → change-password-dialog-B1VVvJN-.c686a7b0141b.js} +1 -1
  106. codex/static_root/assets/change-password-dialog-B1VVvJN-.c686a7b0141b.js.br +0 -0
  107. codex/static_root/assets/change-password-dialog-B1VVvJN-.c686a7b0141b.js.gz +0 -0
  108. codex/static_root/assets/{change-password-dialog-Bk16QZ2G.js → change-password-dialog-B1VVvJN-.js} +1 -1
  109. codex/static_root/assets/change-password-dialog-B1VVvJN-.js.br +0 -0
  110. codex/static_root/assets/change-password-dialog-B1VVvJN-.js.gz +0 -0
  111. codex/static_root/assets/{confirm-dialog-8CnfEzQb.df347fb4bbcd.js → confirm-dialog-B1cfqAyU.707e24950f0e.js} +1 -1
  112. codex/static_root/assets/confirm-dialog-B1cfqAyU.707e24950f0e.js.br +0 -0
  113. codex/static_root/assets/confirm-dialog-B1cfqAyU.707e24950f0e.js.gz +0 -0
  114. codex/static_root/assets/{confirm-dialog-8CnfEzQb.js → confirm-dialog-B1cfqAyU.js} +1 -1
  115. codex/static_root/assets/confirm-dialog-B1cfqAyU.js.br +0 -0
  116. codex/static_root/assets/confirm-dialog-B1cfqAyU.js.gz +0 -0
  117. codex/static_root/assets/{confirm-footer-DOL8EEoE.js → confirm-footer-BU8uNZMI.a856f455bc53.js} +1 -1
  118. codex/static_root/assets/confirm-footer-BU8uNZMI.a856f455bc53.js.br +0 -0
  119. codex/static_root/assets/confirm-footer-BU8uNZMI.a856f455bc53.js.gz +0 -0
  120. codex/static_root/assets/{confirm-footer-DOL8EEoE.30afc28b74ac.js → confirm-footer-BU8uNZMI.js} +1 -1
  121. codex/static_root/assets/confirm-footer-BU8uNZMI.js.br +0 -0
  122. codex/static_root/assets/confirm-footer-BU8uNZMI.js.gz +0 -0
  123. codex/static_root/assets/{datetime-column-DSHTAwAq.8c78ee72b299.js → datetime-column-CO-AnRK_.1fcc919f69d8.js} +1 -1
  124. codex/static_root/assets/datetime-column-CO-AnRK_.1fcc919f69d8.js.br +0 -0
  125. codex/static_root/assets/datetime-column-CO-AnRK_.1fcc919f69d8.js.gz +0 -0
  126. codex/static_root/assets/{datetime-column-DSHTAwAq.js → datetime-column-CO-AnRK_.js} +1 -1
  127. codex/static_root/assets/datetime-column-CO-AnRK_.js.br +0 -0
  128. codex/static_root/assets/datetime-column-CO-AnRK_.js.gz +0 -0
  129. codex/static_root/assets/{filter-D3P93agN.9d289b9b876a.js → filter-Bj65Z2NW.92ea74a7c1fe.js} +1 -1
  130. codex/static_root/assets/filter-Bj65Z2NW.92ea74a7c1fe.js.br +0 -0
  131. codex/static_root/assets/filter-Bj65Z2NW.92ea74a7c1fe.js.gz +0 -0
  132. codex/static_root/assets/{filter-D3P93agN.js → filter-Bj65Z2NW.js} +1 -1
  133. codex/static_root/assets/filter-Bj65Z2NW.js.br +0 -0
  134. codex/static_root/assets/filter-Bj65Z2NW.js.gz +0 -0
  135. codex/static_root/assets/{flag-tab-EGBYEdaI.fa604b6aeee2.js → flag-tab-9MO7gSJ6.6abaf7b54c5a.js} +1 -1
  136. codex/static_root/assets/flag-tab-9MO7gSJ6.6abaf7b54c5a.js.br +0 -0
  137. codex/static_root/assets/flag-tab-9MO7gSJ6.6abaf7b54c5a.js.gz +0 -0
  138. codex/static_root/assets/{flag-tab-EGBYEdaI.js → flag-tab-9MO7gSJ6.js} +1 -1
  139. codex/static_root/assets/flag-tab-9MO7gSJ6.js.br +0 -0
  140. codex/static_root/assets/flag-tab-9MO7gSJ6.js.gz +0 -0
  141. codex/static_root/assets/{group-tab-BiIXZeeu.d86e9a43062e.js → group-tab-DJ1JSrhB.7d5f4cc8e30e.js} +1 -1
  142. codex/static_root/assets/group-tab-DJ1JSrhB.7d5f4cc8e30e.js.br +0 -0
  143. codex/static_root/assets/group-tab-DJ1JSrhB.7d5f4cc8e30e.js.gz +0 -0
  144. codex/static_root/assets/{group-tab-BiIXZeeu.js → group-tab-DJ1JSrhB.js} +1 -1
  145. codex/static_root/assets/group-tab-DJ1JSrhB.js.br +0 -0
  146. codex/static_root/assets/group-tab-DJ1JSrhB.js.gz +0 -0
  147. codex/static_root/assets/{http-error-CDbWq24_.dcea339a5786.js → http-error-T3TJcTMI.382a9674d552.js} +1 -1
  148. codex/static_root/assets/http-error-T3TJcTMI.382a9674d552.js.br +0 -0
  149. codex/static_root/assets/http-error-T3TJcTMI.382a9674d552.js.gz +0 -0
  150. codex/static_root/assets/{http-error-CDbWq24_.js → http-error-T3TJcTMI.js} +1 -1
  151. codex/static_root/assets/http-error-T3TJcTMI.js.br +0 -0
  152. codex/static_root/assets/http-error-T3TJcTMI.js.gz +0 -0
  153. codex/static_root/assets/{library-tab-Fc-H14Xy.f2c90385e2b0.js → library-tab-CFVsD5Op.70ca2094335e.js} +1 -1
  154. codex/static_root/assets/library-tab-CFVsD5Op.70ca2094335e.js.br +0 -0
  155. codex/static_root/assets/library-tab-CFVsD5Op.70ca2094335e.js.gz +0 -0
  156. codex/static_root/assets/{library-tab-Fc-H14Xy.js → library-tab-CFVsD5Op.js} +1 -1
  157. codex/static_root/assets/library-tab-CFVsD5Op.js.br +0 -0
  158. codex/static_root/assets/library-tab-CFVsD5Op.js.gz +0 -0
  159. codex/static_root/assets/{main-WBJsQ31h.js → main-GviMPb0H.0209121e233c.js} +3 -3
  160. codex/static_root/assets/main-GviMPb0H.0209121e233c.js.br +0 -0
  161. codex/static_root/assets/main-GviMPb0H.0209121e233c.js.gz +0 -0
  162. codex/static_root/assets/{main-WBJsQ31h.947701081b77.js → main-GviMPb0H.js} +3 -3
  163. codex/static_root/assets/main-GviMPb0H.js.br +0 -0
  164. codex/static_root/assets/main-GviMPb0H.js.gz +0 -0
  165. codex/static_root/assets/metadata-dialog-BoA0P4eW.4c0f8d92c58d.js +1 -0
  166. codex/static_root/assets/metadata-dialog-BoA0P4eW.4c0f8d92c58d.js.br +0 -0
  167. codex/static_root/assets/metadata-dialog-BoA0P4eW.4c0f8d92c58d.js.gz +0 -0
  168. codex/static_root/assets/metadata-dialog-BoA0P4eW.js +1 -0
  169. codex/static_root/assets/metadata-dialog-BoA0P4eW.js.br +0 -0
  170. codex/static_root/assets/metadata-dialog-BoA0P4eW.js.gz +0 -0
  171. codex/static_root/assets/metadata-dialog-CyXPt4KJ.69deb8a02537.css +1 -0
  172. codex/static_root/assets/metadata-dialog-CyXPt4KJ.69deb8a02537.css.br +0 -0
  173. codex/static_root/assets/metadata-dialog-CyXPt4KJ.69deb8a02537.css.gz +0 -0
  174. codex/static_root/assets/metadata-dialog-CyXPt4KJ.css +1 -0
  175. codex/static_root/assets/metadata-dialog-CyXPt4KJ.css.br +0 -0
  176. codex/static_root/assets/metadata-dialog-CyXPt4KJ.css.gz +0 -0
  177. codex/static_root/assets/{pdf-doc-CKsRPacF.3400c199e490.js → pdf-doc-CRQcNJLE.7a8ff9d95240.js} +1 -1
  178. codex/static_root/assets/pdf-doc-CRQcNJLE.7a8ff9d95240.js.br +0 -0
  179. codex/static_root/assets/pdf-doc-CRQcNJLE.7a8ff9d95240.js.gz +0 -0
  180. codex/static_root/assets/{pdf-doc-CKsRPacF.js → pdf-doc-CRQcNJLE.js} +1 -1
  181. codex/static_root/assets/pdf-doc-CRQcNJLE.js.br +0 -0
  182. codex/static_root/assets/pdf-doc-CRQcNJLE.js.gz +0 -0
  183. codex/static_root/assets/reader-D0glX_SR.cf6412239d02.js +7 -0
  184. codex/static_root/assets/reader-D0glX_SR.cf6412239d02.js.br +0 -0
  185. codex/static_root/assets/reader-D0glX_SR.cf6412239d02.js.gz +0 -0
  186. codex/static_root/assets/reader-D0glX_SR.js +7 -0
  187. codex/static_root/assets/reader-D0glX_SR.js.br +0 -0
  188. codex/static_root/assets/reader-D0glX_SR.js.gz +0 -0
  189. codex/static_root/assets/{stats-tab-CSxRI7r9.963c47efa823.js → stats-tab-6wQAa1PR.1eaae7fcf4df.js} +1 -1
  190. codex/static_root/assets/stats-tab-6wQAa1PR.1eaae7fcf4df.js.br +0 -0
  191. codex/static_root/assets/stats-tab-6wQAa1PR.1eaae7fcf4df.js.gz +0 -0
  192. codex/static_root/assets/{stats-tab-CSxRI7r9.js → stats-tab-6wQAa1PR.js} +1 -1
  193. codex/static_root/assets/stats-tab-6wQAa1PR.js.br +0 -0
  194. codex/static_root/assets/stats-tab-6wQAa1PR.js.gz +0 -0
  195. codex/static_root/assets/{task-tab-BnjWRD0M.90a6050f192b.js → task-tab-ChM8mr0J.79214f27fe08.js} +1 -1
  196. codex/static_root/assets/task-tab-ChM8mr0J.79214f27fe08.js.br +0 -0
  197. codex/static_root/assets/task-tab-ChM8mr0J.79214f27fe08.js.gz +0 -0
  198. codex/static_root/assets/{task-tab-BnjWRD0M.js → task-tab-ChM8mr0J.js} +1 -1
  199. codex/static_root/assets/task-tab-ChM8mr0J.js.br +0 -0
  200. codex/static_root/assets/task-tab-ChM8mr0J.js.gz +0 -0
  201. codex/static_root/assets/{user-tab-Co1M7Nzc.3971d0e992ca.js → user-tab-Bh03ciSs.d20c8dfc58a3.js} +1 -1
  202. codex/static_root/assets/user-tab-Bh03ciSs.d20c8dfc58a3.js.br +0 -0
  203. codex/static_root/assets/user-tab-Bh03ciSs.d20c8dfc58a3.js.gz +0 -0
  204. codex/static_root/assets/{user-tab-Co1M7Nzc.js → user-tab-Bh03ciSs.js} +1 -1
  205. codex/static_root/assets/user-tab-Bh03ciSs.js.br +0 -0
  206. codex/static_root/assets/user-tab-Bh03ciSs.js.gz +0 -0
  207. codex/static_root/{manifest.0acb09921cd2.json → manifest.24a00c718a41.json} +208 -208
  208. codex/static_root/manifest.24a00c718a41.json.br +0 -0
  209. codex/static_root/manifest.24a00c718a41.json.gz +0 -0
  210. codex/static_root/manifest.json +208 -208
  211. codex/static_root/manifest.json.br +0 -0
  212. codex/static_root/manifest.json.gz +0 -0
  213. codex/static_root/staticfiles.json +1 -1
  214. codex/views/browser/browser.py +50 -27
  215. {codex-1.5.5.dist-info → codex-1.5.7.dist-info}/METADATA +2 -3
  216. {codex-1.5.5.dist-info → codex-1.5.7.dist-info}/RECORD +219 -219
  217. codex/static_root/assets/VCheckbox-DdDXXUG_.3735aff52b91.js.br +0 -0
  218. codex/static_root/assets/VCheckbox-DdDXXUG_.3735aff52b91.js.gz +0 -0
  219. codex/static_root/assets/VCheckbox-DdDXXUG_.js.br +0 -0
  220. codex/static_root/assets/VCheckbox-DdDXXUG_.js.gz +0 -0
  221. codex/static_root/assets/VCheckboxBtn-BL9XzJ_N.f7117f2de676.js.br +0 -0
  222. codex/static_root/assets/VCheckboxBtn-BL9XzJ_N.f7117f2de676.js.gz +0 -0
  223. codex/static_root/assets/VCheckboxBtn-BL9XzJ_N.js.br +0 -0
  224. codex/static_root/assets/VCheckboxBtn-BL9XzJ_N.js.gz +0 -0
  225. codex/static_root/assets/VCombobox-BBX2YHlF.7d0af57020a1.js.br +0 -0
  226. codex/static_root/assets/VCombobox-BBX2YHlF.7d0af57020a1.js.gz +0 -0
  227. codex/static_root/assets/VCombobox-BBX2YHlF.js.br +0 -0
  228. codex/static_root/assets/VCombobox-BBX2YHlF.js.gz +0 -0
  229. codex/static_root/assets/VDataTableVirtual-D6CHVm8F.221c6a802c5c.js.br +0 -0
  230. codex/static_root/assets/VDataTableVirtual-D6CHVm8F.221c6a802c5c.js.gz +0 -0
  231. codex/static_root/assets/VDataTableVirtual-D6CHVm8F.js.br +0 -0
  232. codex/static_root/assets/VDataTableVirtual-D6CHVm8F.js.gz +0 -0
  233. codex/static_root/assets/VExpansionPanel-OCjz1obe.645eb8714f55.js.br +0 -0
  234. codex/static_root/assets/VExpansionPanel-OCjz1obe.645eb8714f55.js.gz +0 -0
  235. codex/static_root/assets/VExpansionPanel-OCjz1obe.js.br +0 -0
  236. codex/static_root/assets/VExpansionPanel-OCjz1obe.js.gz +0 -0
  237. codex/static_root/assets/VMain-Dv_06nl1.4d0da3a9405c.js.br +0 -0
  238. codex/static_root/assets/VMain-Dv_06nl1.4d0da3a9405c.js.gz +0 -0
  239. codex/static_root/assets/VMain-Dv_06nl1.js.br +0 -0
  240. codex/static_root/assets/VMain-Dv_06nl1.js.gz +0 -0
  241. codex/static_root/assets/VRadioGroup-CSMZDGT5.1132661eb90d.js.br +0 -0
  242. codex/static_root/assets/VRadioGroup-CSMZDGT5.1132661eb90d.js.gz +0 -0
  243. codex/static_root/assets/VRadioGroup-CSMZDGT5.js.br +0 -0
  244. codex/static_root/assets/VRadioGroup-CSMZDGT5.js.gz +0 -0
  245. codex/static_root/assets/VSelect-aVOHWsmq.8d7b64d05165.js.br +0 -0
  246. codex/static_root/assets/VSelect-aVOHWsmq.8d7b64d05165.js.gz +0 -0
  247. codex/static_root/assets/VSelect-aVOHWsmq.js.br +0 -0
  248. codex/static_root/assets/VSelect-aVOHWsmq.js.gz +0 -0
  249. codex/static_root/assets/VSelectionControl-CtKCqNcT.8cd06e14b2cd.js.br +0 -0
  250. codex/static_root/assets/VSelectionControl-CtKCqNcT.8cd06e14b2cd.js.gz +0 -0
  251. codex/static_root/assets/VSelectionControl-CtKCqNcT.js.br +0 -0
  252. codex/static_root/assets/VSelectionControl-CtKCqNcT.js.gz +0 -0
  253. codex/static_root/assets/VSlideGroup-BSR6h8c0.b3c06f3794bf.js.br +0 -0
  254. codex/static_root/assets/VSlideGroup-BSR6h8c0.b3c06f3794bf.js.gz +0 -0
  255. codex/static_root/assets/VSlideGroup-BSR6h8c0.js.br +0 -0
  256. codex/static_root/assets/VSlideGroup-BSR6h8c0.js.gz +0 -0
  257. codex/static_root/assets/VTable-DAUsLOME.81772293c465.js.br +0 -0
  258. codex/static_root/assets/VTable-DAUsLOME.81772293c465.js.gz +0 -0
  259. codex/static_root/assets/VTable-DAUsLOME.js.br +0 -0
  260. codex/static_root/assets/VTable-DAUsLOME.js.gz +0 -0
  261. codex/static_root/assets/VToolbar-CGhGWqCj.be6dca8c19fa.js.br +0 -0
  262. codex/static_root/assets/VToolbar-CGhGWqCj.be6dca8c19fa.js.gz +0 -0
  263. codex/static_root/assets/VToolbar-CGhGWqCj.js.br +0 -0
  264. codex/static_root/assets/VToolbar-CGhGWqCj.js.gz +0 -0
  265. codex/static_root/assets/VWindowItem-BvSv0nB9.73b1e6a22153.js.br +0 -0
  266. codex/static_root/assets/VWindowItem-BvSv0nB9.73b1e6a22153.js.gz +0 -0
  267. codex/static_root/assets/VWindowItem-BvSv0nB9.js.br +0 -0
  268. codex/static_root/assets/VWindowItem-BvSv0nB9.js.gz +0 -0
  269. codex/static_root/assets/admin-B75AbMQd.fffa2aea8c6d.js.br +0 -0
  270. codex/static_root/assets/admin-B75AbMQd.fffa2aea8c6d.js.gz +0 -0
  271. codex/static_root/assets/admin-B75AbMQd.js.br +0 -0
  272. codex/static_root/assets/admin-B75AbMQd.js.gz +0 -0
  273. codex/static_root/assets/admin-drawer-panel-Dokj6opX.030e0a0853ae.js.br +0 -0
  274. codex/static_root/assets/admin-drawer-panel-Dokj6opX.030e0a0853ae.js.gz +0 -0
  275. codex/static_root/assets/admin-drawer-panel-Dokj6opX.js.br +0 -0
  276. codex/static_root/assets/admin-drawer-panel-Dokj6opX.js.gz +0 -0
  277. codex/static_root/assets/browser-C8SJwVGz.0f7daf93b064.css.br +0 -0
  278. codex/static_root/assets/browser-C8SJwVGz.0f7daf93b064.css.gz +0 -0
  279. codex/static_root/assets/browser-C8SJwVGz.css.br +0 -0
  280. codex/static_root/assets/browser-C8SJwVGz.css.gz +0 -0
  281. codex/static_root/assets/browser-D0wl_mA7.367f8da778de.js +0 -1
  282. codex/static_root/assets/browser-D0wl_mA7.367f8da778de.js.br +0 -0
  283. codex/static_root/assets/browser-D0wl_mA7.367f8da778de.js.gz +0 -0
  284. codex/static_root/assets/browser-D0wl_mA7.js +0 -1
  285. codex/static_root/assets/browser-D0wl_mA7.js.br +0 -0
  286. codex/static_root/assets/browser-D0wl_mA7.js.gz +0 -0
  287. codex/static_root/assets/change-password-dialog-Bk16QZ2G.bd8a78b164fe.js.br +0 -0
  288. codex/static_root/assets/change-password-dialog-Bk16QZ2G.bd8a78b164fe.js.gz +0 -0
  289. codex/static_root/assets/change-password-dialog-Bk16QZ2G.js.br +0 -0
  290. codex/static_root/assets/change-password-dialog-Bk16QZ2G.js.gz +0 -0
  291. codex/static_root/assets/confirm-dialog-8CnfEzQb.df347fb4bbcd.js.br +0 -0
  292. codex/static_root/assets/confirm-dialog-8CnfEzQb.df347fb4bbcd.js.gz +0 -0
  293. codex/static_root/assets/confirm-dialog-8CnfEzQb.js.br +0 -0
  294. codex/static_root/assets/confirm-dialog-8CnfEzQb.js.gz +0 -0
  295. codex/static_root/assets/confirm-footer-DOL8EEoE.30afc28b74ac.js.br +0 -0
  296. codex/static_root/assets/confirm-footer-DOL8EEoE.30afc28b74ac.js.gz +0 -0
  297. codex/static_root/assets/confirm-footer-DOL8EEoE.js.br +0 -0
  298. codex/static_root/assets/confirm-footer-DOL8EEoE.js.gz +0 -0
  299. codex/static_root/assets/datetime-column-DSHTAwAq.8c78ee72b299.js.br +0 -0
  300. codex/static_root/assets/datetime-column-DSHTAwAq.8c78ee72b299.js.gz +0 -0
  301. codex/static_root/assets/datetime-column-DSHTAwAq.js.br +0 -0
  302. codex/static_root/assets/datetime-column-DSHTAwAq.js.gz +0 -0
  303. codex/static_root/assets/filter-D3P93agN.9d289b9b876a.js.br +0 -0
  304. codex/static_root/assets/filter-D3P93agN.9d289b9b876a.js.gz +0 -0
  305. codex/static_root/assets/filter-D3P93agN.js.br +0 -0
  306. codex/static_root/assets/filter-D3P93agN.js.gz +0 -0
  307. codex/static_root/assets/flag-tab-EGBYEdaI.fa604b6aeee2.js.br +0 -0
  308. codex/static_root/assets/flag-tab-EGBYEdaI.fa604b6aeee2.js.gz +0 -0
  309. codex/static_root/assets/flag-tab-EGBYEdaI.js.br +0 -0
  310. codex/static_root/assets/flag-tab-EGBYEdaI.js.gz +0 -0
  311. codex/static_root/assets/group-tab-BiIXZeeu.d86e9a43062e.js.br +0 -0
  312. codex/static_root/assets/group-tab-BiIXZeeu.d86e9a43062e.js.gz +0 -0
  313. codex/static_root/assets/group-tab-BiIXZeeu.js.br +0 -0
  314. codex/static_root/assets/group-tab-BiIXZeeu.js.gz +0 -0
  315. codex/static_root/assets/http-error-CDbWq24_.dcea339a5786.js.br +0 -0
  316. codex/static_root/assets/http-error-CDbWq24_.dcea339a5786.js.gz +0 -0
  317. codex/static_root/assets/http-error-CDbWq24_.js.br +0 -0
  318. codex/static_root/assets/http-error-CDbWq24_.js.gz +0 -0
  319. codex/static_root/assets/library-tab-Fc-H14Xy.f2c90385e2b0.js.br +0 -0
  320. codex/static_root/assets/library-tab-Fc-H14Xy.f2c90385e2b0.js.gz +0 -0
  321. codex/static_root/assets/library-tab-Fc-H14Xy.js.br +0 -0
  322. codex/static_root/assets/library-tab-Fc-H14Xy.js.gz +0 -0
  323. codex/static_root/assets/main-WBJsQ31h.947701081b77.js.br +0 -0
  324. codex/static_root/assets/main-WBJsQ31h.947701081b77.js.gz +0 -0
  325. codex/static_root/assets/main-WBJsQ31h.js.br +0 -0
  326. codex/static_root/assets/main-WBJsQ31h.js.gz +0 -0
  327. codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css +0 -1
  328. codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css.br +0 -0
  329. codex/static_root/assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css.gz +0 -0
  330. codex/static_root/assets/metadata-dialog-DPxDDFDy.css +0 -1
  331. codex/static_root/assets/metadata-dialog-DPxDDFDy.css.br +0 -0
  332. codex/static_root/assets/metadata-dialog-DPxDDFDy.css.gz +0 -0
  333. codex/static_root/assets/metadata-dialog-DY-CRzMh.7e2308027089.js +0 -1
  334. codex/static_root/assets/metadata-dialog-DY-CRzMh.7e2308027089.js.br +0 -0
  335. codex/static_root/assets/metadata-dialog-DY-CRzMh.7e2308027089.js.gz +0 -0
  336. codex/static_root/assets/metadata-dialog-DY-CRzMh.js +0 -1
  337. codex/static_root/assets/metadata-dialog-DY-CRzMh.js.br +0 -0
  338. codex/static_root/assets/metadata-dialog-DY-CRzMh.js.gz +0 -0
  339. codex/static_root/assets/pdf-doc-CKsRPacF.3400c199e490.js.br +0 -0
  340. codex/static_root/assets/pdf-doc-CKsRPacF.3400c199e490.js.gz +0 -0
  341. codex/static_root/assets/pdf-doc-CKsRPacF.js.br +0 -0
  342. codex/static_root/assets/pdf-doc-CKsRPacF.js.gz +0 -0
  343. codex/static_root/assets/reader-DPRrgkO-.b95c75cbf73e.js +0 -7
  344. codex/static_root/assets/reader-DPRrgkO-.b95c75cbf73e.js.br +0 -0
  345. codex/static_root/assets/reader-DPRrgkO-.b95c75cbf73e.js.gz +0 -0
  346. codex/static_root/assets/reader-DPRrgkO-.js +0 -7
  347. codex/static_root/assets/reader-DPRrgkO-.js.br +0 -0
  348. codex/static_root/assets/reader-DPRrgkO-.js.gz +0 -0
  349. codex/static_root/assets/stats-tab-CSxRI7r9.963c47efa823.js.br +0 -0
  350. codex/static_root/assets/stats-tab-CSxRI7r9.963c47efa823.js.gz +0 -0
  351. codex/static_root/assets/stats-tab-CSxRI7r9.js.br +0 -0
  352. codex/static_root/assets/stats-tab-CSxRI7r9.js.gz +0 -0
  353. codex/static_root/assets/task-tab-BnjWRD0M.90a6050f192b.js.br +0 -0
  354. codex/static_root/assets/task-tab-BnjWRD0M.90a6050f192b.js.gz +0 -0
  355. codex/static_root/assets/task-tab-BnjWRD0M.js.br +0 -0
  356. codex/static_root/assets/task-tab-BnjWRD0M.js.gz +0 -0
  357. codex/static_root/assets/user-tab-Co1M7Nzc.3971d0e992ca.js.br +0 -0
  358. codex/static_root/assets/user-tab-Co1M7Nzc.3971d0e992ca.js.gz +0 -0
  359. codex/static_root/assets/user-tab-Co1M7Nzc.js.br +0 -0
  360. codex/static_root/assets/user-tab-Co1M7Nzc.js.gz +0 -0
  361. codex/static_root/manifest.0acb09921cd2.json.br +0 -0
  362. codex/static_root/manifest.0acb09921cd2.json.gz +0 -0
  363. {codex-1.5.5.dist-info → codex-1.5.7.dist-info}/LICENSE +0 -0
  364. {codex-1.5.5.dist-info → codex-1.5.7.dist-info}/WHEEL +0 -0
  365. {codex-1.5.5.dist-info → codex-1.5.7.dist-info}/entry_points.txt +0 -0
Binary file
Binary file
@@ -1 +1 @@
1
- {"paths": {"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/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "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/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/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.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/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.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/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/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "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", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "img/logo-maskable.svg": "img/logo-maskable.d618c2d7943f.svg", "img/logo-maskable-180.webp": "img/logo-maskable-180.201cbde62d55.webp", "img/logo.svg": "img/logo.3fb129bfbd92.svg", "img/missing-cover.webp": "img/missing-cover.8c8c1d4f6782.webp", "img/missing-page.svg": "img/missing-page.71bb10f7c72a.svg", "img/logo-32.webp": "img/logo-32.dbb98f6dfde4.webp", "js/choices.json": "js/choices.fedcbd1ec085.json", "js/choices-admin.json": "js/choices-admin.3a2cdebdbfba.json", "assets/http-error-CDbWq24_.js": "assets/http-error-CDbWq24_.dcea339a5786.js", "assets/group-tab-BiIXZeeu.js": "assets/group-tab-BiIXZeeu.d86e9a43062e.js", "assets/VSelectionControl-CtKCqNcT.js": "assets/VSelectionControl-CtKCqNcT.8cd06e14b2cd.js", "assets/datetime-column-BWWfvyhn.css": "assets/datetime-column-BWWfvyhn.a4a94ba57c73.css", "assets/admin-drawer-panel-DEYM8FWr.css": "assets/admin-drawer-panel-DEYM8FWr.512d367edaca.css", "assets/confirm-dialog-8CnfEzQb.js": "assets/confirm-dialog-8CnfEzQb.df347fb4bbcd.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/admin-B75AbMQd.js": "assets/admin-B75AbMQd.fffa2aea8c6d.js", "assets/user-tab-Co1M7Nzc.js": "assets/user-tab-Co1M7Nzc.3971d0e992ca.js", "assets/pdf-doc-CMzaSV_K.css": "assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css", "assets/VTable-DflzroDq.css": "assets/VTable-DflzroDq.160504d82195.css", "assets/reader-DPRrgkO-.js": "assets/reader-DPRrgkO-.b95c75cbf73e.js", "assets/VWindowItem-BvSv0nB9.js": "assets/VWindowItem-BvSv0nB9.73b1e6a22153.js", "assets/VMain-Byt37V4c.css": "assets/VMain-Byt37V4c.a00e206f3cfa.css", "assets/filter-D3P93agN.js": "assets/filter-D3P93agN.9d289b9b876a.js", "assets/browser-D0wl_mA7.js": "assets/browser-D0wl_mA7.367f8da778de.js", "assets/stats-tab-BTZLMBCU.css": "assets/stats-tab-BTZLMBCU.7e0a9547c12e.css", "assets/confirm-footer-VFepxcJs.css": "assets/confirm-footer-VFepxcJs.4150131304bd.css", "assets/change-password-dialog-BRmvkNir.css": "assets/change-password-dialog-BRmvkNir.2fead58a78c7.css", "assets/library-tab-DZKDtQ5v.css": "assets/library-tab-DZKDtQ5v.c8123e4bc5a4.css", "assets/datetime-column-DSHTAwAq.js": "assets/datetime-column-DSHTAwAq.8c78ee72b299.js", "assets/to-case-kUm8NPpW.js": "assets/to-case-kUm8NPpW.5b3369f511b8.js", "assets/change-password-dialog-Bk16QZ2G.js": "assets/change-password-dialog-Bk16QZ2G.bd8a78b164fe.js", "assets/VSelect-aVOHWsmq.js": "assets/VSelect-aVOHWsmq.8d7b64d05165.js", "assets/main-CacfwsKA.css": "assets/main-CacfwsKA.4f849ef1c5db.css", "assets/VSlideGroup-BSR6h8c0.js": "assets/VSlideGroup-BSR6h8c0.b3c06f3794bf.js", "assets/stats-tab-CSxRI7r9.js": "assets/stats-tab-CSxRI7r9.963c47efa823.js", "assets/VExpansionPanel-OCjz1obe.js": "assets/VExpansionPanel-OCjz1obe.645eb8714f55.js", "assets/VSelectionControl-BFq--28I.css": "assets/VSelectionControl-BFq--28I.9687c77461fc.css", "assets/VRadioGroup-CSMZDGT5.js": "assets/VRadioGroup-CSMZDGT5.1132661eb90d.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VMain-Dv_06nl1.js": "assets/VMain-Dv_06nl1.4d0da3a9405c.js", "assets/library-tab-Fc-H14Xy.js": "assets/library-tab-Fc-H14Xy.f2c90385e2b0.js", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/flag-tab-EGBYEdaI.js": "assets/flag-tab-EGBYEdaI.fa604b6aeee2.js", "assets/metadata-dialog-DPxDDFDy.css": "assets/metadata-dialog-DPxDDFDy.34b7c11509ec.css", "assets/VToolbar-CGhGWqCj.js": "assets/VToolbar-CGhGWqCj.be6dca8c19fa.js", "assets/confirm-dialog-BmhedLCx.css": "assets/confirm-dialog-BmhedLCx.7c2103d319d4.css", "assets/VSelect-udkSZJsa.css": "assets/VSelect-udkSZJsa.1873bae92d9d.css", "assets/task-tab-BnjWRD0M.js": "assets/task-tab-BnjWRD0M.90a6050f192b.js", "assets/confirm-footer-DOL8EEoE.js": "assets/confirm-footer-DOL8EEoE.30afc28b74ac.js", "assets/VRadioGroup-i2qP9Wu9.css": "assets/VRadioGroup-i2qP9Wu9.8e3741381961.css", "assets/reader-CG6zrLXl.css": "assets/reader-CG6zrLXl.ed017042cd53.css", "assets/pdf-doc-CKsRPacF.js": "assets/pdf-doc-CKsRPacF.3400c199e490.js", "assets/task-tab-DoX9OA37.css": "assets/task-tab-DoX9OA37.9bb355f36dbf.css", "assets/VCheckboxBtn-BL9XzJ_N.js": "assets/VCheckboxBtn-BL9XzJ_N.f7117f2de676.js", "assets/VDataTableVirtual-Cbj7IGxa.css": "assets/VDataTableVirtual-Cbj7IGxa.24039b2ebc61.css", "assets/main-WBJsQ31h.js": "assets/main-WBJsQ31h.947701081b77.js", "assets/index-DUjeNg4x.js": "assets/index-DUjeNg4x.36d50c91b2c1.js", "assets/VTable-DAUsLOME.js": "assets/VTable-DAUsLOME.81772293c465.js", "assets/VCheckbox-CMKdyl0R.css": "assets/VCheckbox-CMKdyl0R.016ed8d222c4.css", "assets/VCombobox-BBX2YHlF.js": "assets/VCombobox-BBX2YHlF.7d0af57020a1.js", "assets/http-error-C25WdjWC.css": "assets/http-error-C25WdjWC.1c7337ad6e1d.css", "assets/VToolbar-BfNszTMd.css": "assets/VToolbar-BfNszTMd.111f25cdd6d8.css", "assets/VExpansionPanel-BgvW2DKJ.css": "assets/VExpansionPanel-BgvW2DKJ.cd604d70ceee.css", "assets/VWindowItem-ByIod57Y.css": "assets/VWindowItem-ByIod57Y.f7fb19752bf3.css", "assets/VDataTableVirtual-D6CHVm8F.js": "assets/VDataTableVirtual-D6CHVm8F.221c6a802c5c.js", "assets/VCheckbox-DdDXXUG_.js": "assets/VCheckbox-DdDXXUG_.3735aff52b91.js", "assets/metadata-dialog-DY-CRzMh.js": "assets/metadata-dialog-DY-CRzMh.7e2308027089.js", "assets/VCombobox-BksEr4D_.css": "assets/VCombobox-BksEr4D_.73429bb75f42.css", "assets/VSlideGroup-rAVUcz72.css": "assets/VSlideGroup-rAVUcz72.31b1eb6202e4.css", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/flag-tab-BTiZcgOa.css": "assets/flag-tab-BTiZcgOa.81b4fefa02e1.css", "assets/admin-drawer-panel-Dokj6opX.js": "assets/admin-drawer-panel-Dokj6opX.030e0a0853ae.js", "assets/group-tab-3DXxSetf.css": "assets/group-tab-3DXxSetf.5fc2cfa31669.css", "assets/browser-C8SJwVGz.css": "assets/browser-C8SJwVGz.0f7daf93b064.css", "assets/admin-Df82-Qcj.css": "assets/admin-Df82-Qcj.4c3f0406ee54.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.0acb09921cd2.json"}, "version": "1.1", "hash": "c57995d2d509"}
1
+ {"paths": {"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/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "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/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/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.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/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.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/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/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "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", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "img/logo-maskable.svg": "img/logo-maskable.d618c2d7943f.svg", "img/logo-maskable-180.webp": "img/logo-maskable-180.201cbde62d55.webp", "img/logo.svg": "img/logo.3fb129bfbd92.svg", "img/missing-cover.webp": "img/missing-cover.8c8c1d4f6782.webp", "img/missing-page.svg": "img/missing-page.71bb10f7c72a.svg", "img/logo-32.webp": "img/logo-32.dbb98f6dfde4.webp", "js/choices.json": "js/choices.fedcbd1ec085.json", "js/choices-admin.json": "js/choices-admin.3a2cdebdbfba.json", "assets/VExpansionPanel-C_YE4cHg.js": "assets/VExpansionPanel-C_YE4cHg.021b797cc0a6.js", "assets/reader-D0glX_SR.js": "assets/reader-D0glX_SR.cf6412239d02.js", "assets/VCombobox-BU9dgajj.js": "assets/VCombobox-BU9dgajj.d9b7d9dd727c.js", "assets/metadata-dialog-CyXPt4KJ.css": "assets/metadata-dialog-CyXPt4KJ.69deb8a02537.css", "assets/datetime-column-CO-AnRK_.js": "assets/datetime-column-CO-AnRK_.1fcc919f69d8.js", "assets/datetime-column-BWWfvyhn.css": "assets/datetime-column-BWWfvyhn.a4a94ba57c73.css", "assets/admin-drawer-panel-DEYM8FWr.css": "assets/admin-drawer-panel-DEYM8FWr.512d367edaca.css", "assets/admin-drawer-panel-DBj4RoBP.js": "assets/admin-drawer-panel-DBj4RoBP.4b2b2a512064.js", "assets/confirm-dialog-B1cfqAyU.js": "assets/confirm-dialog-B1cfqAyU.707e24950f0e.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/pdf-doc-CMzaSV_K.css": "assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css", "assets/VTable-DflzroDq.css": "assets/VTable-DflzroDq.160504d82195.css", "assets/VMain-Byt37V4c.css": "assets/VMain-Byt37V4c.a00e206f3cfa.css", "assets/VMain-BPAmFsfk.js": "assets/VMain-BPAmFsfk.70418abd97a2.js", "assets/stats-tab-BTZLMBCU.css": "assets/stats-tab-BTZLMBCU.7e0a9547c12e.css", "assets/confirm-footer-VFepxcJs.css": "assets/confirm-footer-VFepxcJs.4150131304bd.css", "assets/change-password-dialog-BRmvkNir.css": "assets/change-password-dialog-BRmvkNir.2fead58a78c7.css", "assets/library-tab-DZKDtQ5v.css": "assets/library-tab-DZKDtQ5v.c8123e4bc5a4.css", "assets/main-GviMPb0H.js": "assets/main-GviMPb0H.0209121e233c.js", "assets/to-case-kUm8NPpW.js": "assets/to-case-kUm8NPpW.5b3369f511b8.js", "assets/VToolbar-BoY3uXeQ.js": "assets/VToolbar-BoY3uXeQ.153fc4b00597.js", "assets/main-CacfwsKA.css": "assets/main-CacfwsKA.4f849ef1c5db.css", "assets/VSelectionControl-BFq--28I.css": "assets/VSelectionControl-BFq--28I.9687c77461fc.css", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/pdf-doc-CRQcNJLE.js": "assets/pdf-doc-CRQcNJLE.7a8ff9d95240.js", "assets/VCheckbox-DLjoJtr0.js": "assets/VCheckbox-DLjoJtr0.5d60599395a5.js", "assets/admin-at7U-7a0.js": "assets/admin-at7U-7a0.5c4ad1f03eb5.js", "assets/VWindowItem-dh08pIme.js": "assets/VWindowItem-dh08pIme.34a698c1de90.js", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/confirm-dialog-BmhedLCx.css": "assets/confirm-dialog-BmhedLCx.7c2103d319d4.css", "assets/metadata-dialog-BoA0P4eW.js": "assets/metadata-dialog-BoA0P4eW.4c0f8d92c58d.js", "assets/group-tab-DJ1JSrhB.js": "assets/group-tab-DJ1JSrhB.7d5f4cc8e30e.js", "assets/stats-tab-6wQAa1PR.js": "assets/stats-tab-6wQAa1PR.1eaae7fcf4df.js", "assets/VSelect-udkSZJsa.css": "assets/VSelect-udkSZJsa.1873bae92d9d.css", "assets/VRadioGroup-BNX77cb6.js": "assets/VRadioGroup-BNX77cb6.9735cbcf7ba7.js", "assets/VRadioGroup-i2qP9Wu9.css": "assets/VRadioGroup-i2qP9Wu9.8e3741381961.css", "assets/flag-tab-9MO7gSJ6.js": "assets/flag-tab-9MO7gSJ6.6abaf7b54c5a.js", "assets/browser-ufllJIOQ.js": "assets/browser-ufllJIOQ.8dfc9872d60d.js", "assets/reader-CG6zrLXl.css": "assets/reader-CG6zrLXl.ed017042cd53.css", "assets/VTable-DyY94cHK.js": "assets/VTable-DyY94cHK.fd42e5569db9.js", "assets/user-tab-Bh03ciSs.js": "assets/user-tab-Bh03ciSs.d20c8dfc58a3.js", "assets/task-tab-DoX9OA37.css": "assets/task-tab-DoX9OA37.9bb355f36dbf.css", "assets/VDataTableVirtual-Cbj7IGxa.css": "assets/VDataTableVirtual-Cbj7IGxa.24039b2ebc61.css", "assets/library-tab-CFVsD5Op.js": "assets/library-tab-CFVsD5Op.70ca2094335e.js", "assets/index-DUjeNg4x.js": "assets/index-DUjeNg4x.36d50c91b2c1.js", "assets/VCheckbox-CMKdyl0R.css": "assets/VCheckbox-CMKdyl0R.016ed8d222c4.css", "assets/change-password-dialog-B1VVvJN-.js": "assets/change-password-dialog-B1VVvJN-.c686a7b0141b.js", "assets/http-error-C25WdjWC.css": "assets/http-error-C25WdjWC.1c7337ad6e1d.css", "assets/task-tab-ChM8mr0J.js": "assets/task-tab-ChM8mr0J.79214f27fe08.js", "assets/VToolbar-BfNszTMd.css": "assets/VToolbar-BfNszTMd.111f25cdd6d8.css", "assets/VExpansionPanel-BgvW2DKJ.css": "assets/VExpansionPanel-BgvW2DKJ.cd604d70ceee.css", "assets/VWindowItem-ByIod57Y.css": "assets/VWindowItem-ByIod57Y.f7fb19752bf3.css", "assets/VSlideGroup-Bvm3Umct.js": "assets/VSlideGroup-Bvm3Umct.9e302c3e6ef0.js", "assets/http-error-T3TJcTMI.js": "assets/http-error-T3TJcTMI.382a9674d552.js", "assets/VCombobox-BksEr4D_.css": "assets/VCombobox-BksEr4D_.73429bb75f42.css", "assets/VSlideGroup-rAVUcz72.css": "assets/VSlideGroup-rAVUcz72.31b1eb6202e4.css", "assets/VSelect-Cu3Kzlmc.js": "assets/VSelect-Cu3Kzlmc.e8dd6415829e.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/VSelectionControl-CwCfBXjB.js": "assets/VSelectionControl-CwCfBXjB.f49d7348da17.js", "assets/flag-tab-BTiZcgOa.css": "assets/flag-tab-BTiZcgOa.81b4fefa02e1.css", "assets/group-tab-3DXxSetf.css": "assets/group-tab-3DXxSetf.5fc2cfa31669.css", "assets/VDataTableVirtual-BE-h8GKr.js": "assets/VDataTableVirtual-BE-h8GKr.cc7a0ac5d14e.js", "assets/browser-DK20egTr.css": "assets/browser-DK20egTr.b1e739ab9e9f.css", "assets/confirm-footer-BU8uNZMI.js": "assets/confirm-footer-BU8uNZMI.a856f455bc53.js", "assets/filter-Bj65Z2NW.js": "assets/filter-Bj65Z2NW.92ea74a7c1fe.js", "assets/VCheckboxBtn-rYCIroIq.js": "assets/VCheckboxBtn-rYCIroIq.75dabef40e06.js", "assets/admin-Df82-Qcj.css": "assets/admin-Df82-Qcj.4c3f0406ee54.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.24a00c718a41.json"}, "version": "1.1", "hash": "6e6ca972c66f"}
@@ -1,6 +1,7 @@
1
1
  """Views for browsing comic library."""
2
2
 
3
3
  from copy import deepcopy
4
+ from math import ceil
4
5
  from types import MappingProxyType
5
6
  from typing import ClassVar
6
7
 
@@ -46,7 +47,6 @@ class BrowserView(BrowserAnnotationsView):
46
47
  {v: k for k, v in BrowserAnnotationsView.GROUP_MODEL_MAP.items()}
47
48
  )
48
49
  _NAV_GROUPS = "rpisv"
49
- _ORPHANS = int(MAX_OBJ_PER_PAGE / 20)
50
50
 
51
51
  _GROUP_INSTANCE_SELECT_RELATED = MappingProxyType(
52
52
  {
@@ -290,43 +290,66 @@ class BrowserView(BrowserAnnotationsView):
290
290
  LOG.debug(f"{reason} redirect to page {new_page}.")
291
291
  self._raise_redirect(route_changes, reason)
292
292
 
293
- def _paginate_section(self, qs, max_obj_per_page, page_counts):
293
+ def _paginate_section(self, model, qs, page):
294
294
  """Paginate a group or Comic section."""
295
- num_pages, total_count, model = page_counts
296
- paginator = Paginator(qs, max_obj_per_page, orphans=self._ORPHANS)
297
- page = self.kwargs.get("page", 1)
295
+ orphans = 5 if self.model_group != "f" else 0
296
+ paginator = Paginator(qs, self.MAX_OBJ_PER_PAGE, orphans=orphans)
298
297
  try:
299
298
  qs = paginator.page(page).object_list
300
- num_pages = max(num_pages, paginator.num_pages)
301
- total_count += paginator.count
302
299
  except EmptyPage:
303
300
  if page < 1 or page > paginator.num_pages:
304
301
  self._page_out_out_bounds(page, paginator.num_pages)
305
302
  model_name = self.model.__name__ if self.model else "NO_MODEL"
306
303
  LOG.warning(f"No {model_name}s on page {page}")
307
- model.objects.none()
304
+ qs = model.objects.none()
305
+
306
+ return qs
308
307
 
309
- return qs, num_pages, total_count
308
+ def _paginate_groups(self, group_qs, total_group_count):
309
+ """Paginate the group object list before books."""
310
+ if total_group_count:
311
+ page = self.kwargs.get("page", 1)
312
+ page_group_qs = self._paginate_section(self.model, group_qs, page)
313
+ else:
314
+ page_group_qs = self.model.objects.none() # type: ignore
315
+ return page_group_qs
316
+
317
+ def _paginate_books(self, book_qs, total_group_count, page_obj_count):
318
+ """Paginate the book object list based on how many group/folders are showing."""
319
+ if page_obj_count >= self.MAX_OBJ_PER_PAGE:
320
+ # No books for this page
321
+ page_book_qs = Comic.objects.none()
322
+ else:
323
+ # There are books after the groups, paginate them
324
+ page_remainder = total_group_count % self.MAX_OBJ_PER_PAGE
325
+ if page_obj_count:
326
+ # There are books after the groups on the same page
327
+ # Manually add books to the end without the paginator
328
+ page_book_qs = book_qs[:page_remainder]
329
+ else:
330
+ # There are books after the groups on a new page
331
+ page_book_qs = book_qs[page_remainder:]
332
+ num_group_and_mixed_pages = ceil(
333
+ total_group_count / self.MAX_OBJ_PER_PAGE
334
+ )
335
+ page = self.kwargs.get("page", 1) - num_group_and_mixed_pages
336
+ page_book_qs = self._paginate_section(Comic, page_book_qs, page)
337
+ return page_book_qs
310
338
 
311
339
  def _paginate(self, group_qs, book_qs):
312
- """Paginate the queryset into a final object list."""
313
- num_pages = 0
314
- total_count = 0
315
-
316
- if group_qs.count():
317
- page_counts = (num_pages, total_count, self.model)
318
- group_qs, num_pages, total_count = self._paginate_section(
319
- group_qs, self.MAX_OBJ_PER_PAGE, page_counts
320
- )
321
-
322
- if book_qs.count():
323
- book_max_obj_per_page = max(0, self.MAX_OBJ_PER_PAGE - group_qs.count())
324
- page_counts = (num_pages, total_count, Comic)
325
- group_qs, num_pages, total_count = self._paginate_section(
326
- group_qs, book_max_obj_per_page, page_counts
327
- )
328
-
329
- return group_qs, book_qs, num_pages, total_count
340
+ """Paginate the queryset into a group and book object lists."""
341
+ page_obj_count = 0
342
+
343
+ total_group_count = group_qs.count()
344
+ total_book_count = book_qs.count()
345
+
346
+ page_group_qs = self._paginate_groups(group_qs, total_group_count)
347
+ page_obj_count += page_group_qs.count()
348
+ page_book_qs = self._paginate_books(book_qs, total_group_count, page_obj_count)
349
+ page_obj_count += page_book_qs.count()
350
+
351
+ num_pages = ceil((total_group_count + total_book_count) / self.MAX_OBJ_PER_PAGE)
352
+ return page_group_qs, page_book_qs, num_pages, page_obj_count
330
353
 
331
354
  def get_object(self):
332
355
  """Validate settings and get the querysets."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codex
3
- Version: 1.5.5
3
+ Version: 1.5.7
4
4
  Summary: A comic archive web server.
5
5
  Home-page: https://github.com/ajslater/codex
6
6
  License: GPL-3.0-only
@@ -28,7 +28,7 @@ Requires-Dist: aioprocessing (>=2.0.1,<3.0.0)
28
28
  Requires-Dist: ansicolors (>=1.1,<2.0)
29
29
  Requires-Dist: case-converter (>=1.1.0,<2.0.0)
30
30
  Requires-Dist: channels (>=4.0.0,<5.0.0)
31
- Requires-Dist: comicbox[pdf] (>=1.1.3,<2.0.0)
31
+ Requires-Dist: comicbox[pdf] (>=1.1.4,<2.0.0)
32
32
  Requires-Dist: django (>=5.0.3,<6.0.0)
33
33
  Requires-Dist: django-cors-headers (>=4.0,<5.0)
34
34
  Requires-Dist: django-rest-registration (>=0.8.0,<0.9.0)
@@ -41,7 +41,6 @@ Requires-Dist: humanfriendly (>=10.0,<11.0)
41
41
  Requires-Dist: humanize (>=4.0.0,<5.0.0)
42
42
  Requires-Dist: hypercorn[h3] (>=0.16.0,<0.17.0)
43
43
  Requires-Dist: psutil (>=5.9.4,<6.0.0)
44
- Requires-Dist: pymupdf (==1.23.26)
45
44
  Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
46
45
  Requires-Dist: requests (>=2.24,<3.0)
47
46
  Requires-Dist: tzlocal (>=5.0,<6.0)