celerp 2.5.0__tar.gz → 2.5.2__tar.gz

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.
Files changed (729) hide show
  1. {celerp-2.5.0 → celerp-2.5.2}/CONTRIBUTING.md +24 -3
  2. {celerp-2.5.0 → celerp-2.5.2}/PKG-INFO +84 -33
  3. {celerp-2.5.0 → celerp-2.5.2}/README.md +3 -1
  4. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/quota.py +1 -1
  5. {celerp-2.5.0 → celerp-2.5.2}/celerp/cli.py +278 -74
  6. {celerp-2.5.0 → celerp-2.5.2}/celerp/config.py +27 -29
  7. {celerp-2.5.0 → celerp-2.5.2}/celerp/config_store.py +72 -27
  8. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/base.py +38 -3
  9. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/daily_scheduler.py +61 -48
  10. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/http.py +28 -6
  11. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/images.py +16 -9
  12. celerp-2.5.2/celerp/connectors/outbound_queue.py +550 -0
  13. celerp-2.5.2/celerp/connectors/ownership.py +556 -0
  14. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/quickbooks.py +53 -0
  15. celerp-2.5.2/celerp/connectors/relay_token.py +89 -0
  16. celerp-2.5.2/celerp/connectors/remote_state.py +185 -0
  17. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/shopify.py +26 -38
  18. celerp-2.5.2/celerp/connectors/sync_runner.py +491 -0
  19. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/upsert.py +29 -0
  20. celerp-2.5.2/celerp/connectors/webhooks.py +225 -0
  21. celerp-2.5.2/celerp/connectors/woocommerce.py +1054 -0
  22. celerp-2.5.2/celerp/connectors/xero.py +481 -0
  23. celerp-2.5.2/celerp/db_url.py +16 -0
  24. {celerp-2.5.0 → celerp-2.5.2}/celerp/embedded_pg.py +80 -26
  25. {celerp-2.5.0 → celerp-2.5.2}/celerp/events/engine.py +162 -18
  26. {celerp-2.5.0 → celerp-2.5.2}/celerp/events/schemas.py +1 -1
  27. {celerp-2.5.0 → celerp-2.5.2}/celerp/gateway/__init__.py +14 -18
  28. {celerp-2.5.0 → celerp-2.5.2}/celerp/gateway/client.py +145 -6
  29. {celerp-2.5.0 → celerp-2.5.2}/celerp/gateway/state.py +28 -78
  30. {celerp-2.5.0 → celerp-2.5.2}/celerp/inventory_codes.py +28 -25
  31. {celerp-2.5.0 → celerp-2.5.2}/celerp/main.py +92 -22
  32. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/_auto_stamp.py +131 -48
  33. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/_json_compat.py +21 -2
  34. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/env.py +2 -2
  35. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/b3c4d5e6f7a8_expand_role_permissions_to_role_grants.py +18 -28
  36. celerp-2.5.2/celerp/migrations/versions/bc0d1e2f3a4b_barcode_unique_index.py +38 -0
  37. celerp-2.5.2/celerp/migrations/versions/d1e2f3a4b5c6_rfid_epc_unique_index.py +32 -0
  38. celerp-2.5.2/celerp/migrations/versions/f8a9b0c1d2e3_work_center_default_backfill.py +114 -0
  39. celerp-2.5.2/celerp/migrations/versions/g4b5c6d7e8f9_add_install_owner.py +40 -0
  40. celerp-2.5.2/celerp/migrations/versions/h5c6d7e8f9a0_backfill_install_owner.py +54 -0
  41. celerp-2.5.2/celerp/migrations/versions/i6d7e8f9a0b1_add_sync_run_attention.py +25 -0
  42. celerp-2.5.2/celerp/migrations/versions/j7e8f9a0b1c2_add_connector_sources.py +32 -0
  43. celerp-2.5.2/celerp/migrations/versions/k8f9a0b1c2d3_drop_physical_code_unique_indexes.py +40 -0
  44. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/__init__.py +1 -0
  45. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/company.py +8 -0
  46. celerp-2.5.2/celerp/models/connector_source.py +26 -0
  47. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/projections.py +0 -24
  48. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/sync_run.py +8 -0
  49. celerp-2.5.2/celerp/modules/api.py +38 -0
  50. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/loader.py +36 -11
  51. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/migrations_runner.py +1 -1
  52. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/slots.py +1 -0
  53. {celerp-2.5.0 → celerp-2.5.2}/celerp/output/doc_print.py +33 -15
  54. celerp-2.5.2/celerp/output/document_context.py +98 -0
  55. {celerp-2.5.0 → celerp-2.5.2}/celerp/output/pdf.py +42 -24
  56. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/engine.py +2 -2
  57. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/auth.py +47 -8
  58. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/companies.py +166 -37
  59. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/debug.py +0 -18
  60. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/doctor.py +123 -91
  61. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/health.py +429 -240
  62. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/system.py +60 -4
  63. celerp-2.5.2/celerp/runtime.py +153 -0
  64. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/attachments.py +218 -10
  65. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/auth.py +25 -0
  66. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/auto_je.py +75 -15
  67. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup.py +44 -16
  68. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup_import.py +105 -14
  69. celerp-2.5.2/celerp/services/business_time.py +27 -0
  70. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/cloud_entitlement.py +114 -28
  71. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/cost_visibility.py +13 -9
  72. celerp-2.5.2/celerp/services/csv_export.py +60 -0
  73. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/demo.py +1 -8
  74. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/field_schema.py +12 -0
  75. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/fulfill.py +15 -6
  76. celerp-2.5.2/celerp/services/holdings.py +249 -0
  77. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/landed_cost.py +7 -3
  78. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/money.py +97 -1
  79. celerp-2.5.2/celerp/services/outbound_url.py +195 -0
  80. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/payments.py +7 -5
  81. celerp-2.5.2/celerp/services/physical_codes.py +152 -0
  82. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/pick.py +41 -0
  83. celerp-2.5.2/celerp/services/terms.py +82 -0
  84. celerp-2.5.2/celerp/services/update.py +855 -0
  85. celerp-2.5.2/celerp/session_gate.py +58 -0
  86. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/PKG-INFO +84 -33
  87. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/SOURCES.txt +22 -7
  88. celerp-2.5.2/celerp.egg-info/requires.txt +116 -0
  89. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/scm_file_list.json +56 -9
  90. {celerp-2.5.0 → celerp-2.5.2}/conftest.py +2 -0
  91. celerp-2.5.2/constraints.txt +227 -0
  92. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_journal_gl_soa.py +9 -7
  93. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-admin/celerp_admin/routes.py +162 -116
  94. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/routes.py +3 -6
  95. celerp-2.5.2/default_modules/celerp-ai/tests/_fixtures.py +140 -0
  96. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_commercial_routing.py +7 -12
  97. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_llm.py +13 -14
  98. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_quota.py +1 -1
  99. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-backup/celerp_backup/routes.py +83 -60
  100. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/__init__.py +14 -15
  101. celerp-2.5.2/default_modules/celerp-connectors/celerp_connectors/routes.py +758 -0
  102. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/conftest.py +19 -2
  103. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_connector_correctness.py +13 -10
  104. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_connectors.py +132 -21
  105. celerp-2.5.2/default_modules/celerp-connectors/tests/test_credentials_routes.py +590 -0
  106. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_images.py +9 -0
  107. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_outbound.py +1 -63
  108. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_rate_limiting.py +46 -0
  109. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_shopify.py +45 -8
  110. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_wiring.py +168 -22
  111. celerp-2.5.2/default_modules/celerp-connectors/tests/test_woocommerce.py +762 -0
  112. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_woocommerce_webhooks.py +26 -0
  113. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_xero.py +15 -11
  114. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/routes.py +3 -5
  115. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/services.py +29 -6
  116. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/doc_projections.py +9 -13
  117. celerp-2.5.2/default_modules/celerp-docs/celerp_docs/doc_service.py +1306 -0
  118. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/routes.py +1201 -430
  119. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/routes_payments.py +37 -17
  120. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/routes_share.py +153 -85
  121. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_audits.py +7 -8
  122. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_concurrency.py +91 -0
  123. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_outcome_concurrency.py +2 -1
  124. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_query_pushdown.py +96 -0
  125. celerp-2.5.2/default_modules/celerp-docs/tests/test_list_reprice.py +410 -0
  126. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_lifecycle_concurrency.py +90 -0
  127. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_receive_sku_batch.py +1 -0
  128. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/projections.py +35 -2
  129. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/routes.py +471 -290
  130. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/routes_attachments.py +97 -40
  131. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/search.py +3 -6
  132. celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/services.py +2252 -0
  133. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_import_service.py +104 -0
  134. celerp-2.5.2/default_modules/celerp-inventory/tests/test_physical_mutation_concurrency.py +235 -0
  135. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/routes.py +2 -6
  136. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/routes.py +14 -3
  137. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/tests/test_subscriptions.py +18 -0
  138. celerp-2.5.2/default_modules/first_party.lock.json +16 -0
  139. {celerp-2.5.0 → celerp-2.5.2}/pyproject.toml +80 -45
  140. {celerp-2.5.0 → celerp-2.5.2}/ui/api_client.py +87 -29
  141. {celerp-2.5.0 → celerp-2.5.2}/ui/app.py +4 -2
  142. {celerp-2.5.0 → celerp-2.5.2}/ui/components/report_kit.py +1 -9
  143. {celerp-2.5.0 → celerp-2.5.2}/ui/components/shell.py +178 -80
  144. {celerp-2.5.0 → celerp-2.5.2}/ui/components/table.py +19 -4
  145. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/am.json +53 -8
  146. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/ar.json +53 -8
  147. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/de.json +53 -8
  148. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/en.json +53 -8
  149. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/es.json +53 -8
  150. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/fr.json +53 -8
  151. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/id.json +53 -8
  152. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/it.json +53 -8
  153. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/ja.json +53 -8
  154. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/pt.json +53 -8
  155. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/th.json +53 -8
  156. {celerp-2.5.0 → celerp-2.5.2}/ui/locales/vi.json +53 -8
  157. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/account.py +4 -0
  158. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/auth.py +59 -8
  159. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/contacts.py +21 -4
  160. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/dashboard.py +1 -2
  161. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/documents.py +634 -506
  162. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/inventory.py +298 -41
  163. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings.py +111 -31
  164. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_cloud.py +86 -39
  165. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_connectors.py +581 -252
  166. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_inventory.py +2 -5
  167. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_payments.py +4 -6
  168. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/subscriptions.py +5 -19
  169. celerp-2.5.2/ui/routes/system_update.py +57 -0
  170. {celerp-2.5.0 → celerp-2.5.2}/ui/static/app.css +28 -3
  171. celerp-2.5.0/celerp/connectors/relay_token.py +0 -50
  172. celerp-2.5.0/celerp/connectors/sync_runner.py +0 -228
  173. celerp-2.5.0/celerp/connectors/webhooks.py +0 -116
  174. celerp-2.5.0/celerp/connectors/woocommerce.py +0 -457
  175. celerp-2.5.0/celerp/connectors/xero.py +0 -263
  176. celerp-2.5.0/celerp/migrations/versions/bc0d1e2f3a4b_barcode_unique_index.py +0 -119
  177. celerp-2.5.0/celerp/migrations/versions/d1e2f3a4b5c6_rfid_epc_unique_index.py +0 -44
  178. celerp-2.5.0/celerp/migrations/versions/f8a9b0c1d2e3_work_center_default_backfill.py +0 -93
  179. celerp-2.5.0/celerp/modules/api.py +0 -108
  180. celerp-2.5.0/celerp/services/holdings.py +0 -182
  181. celerp-2.5.0/celerp/session_gate.py +0 -77
  182. celerp-2.5.0/celerp.egg-info/requires.txt +0 -49
  183. celerp-2.5.0/celerp.egg-info/scm_version.json +0 -8
  184. celerp-2.5.0/default_modules/celerp-ai/tests/_fixtures.py +0 -91
  185. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/error_402.json +0 -6
  186. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/error_409.json +0 -6
  187. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/error_429.json +0 -6
  188. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/mutation_tool_call.json +0 -25
  189. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/read_tool_call.json +0 -25
  190. celerp-2.5.0/default_modules/celerp-ai/tests/fixtures/relay/text_completion.json +0 -15
  191. celerp-2.5.0/default_modules/celerp-connectors/celerp_connectors/routes.py +0 -301
  192. celerp-2.5.0/default_modules/celerp-connectors/tests/test_credentials_routes.py +0 -163
  193. celerp-2.5.0/default_modules/celerp-connectors/tests/test_woocommerce.py +0 -269
  194. celerp-2.5.0/default_modules/celerp-docs/celerp_docs/doc_service.py +0 -319
  195. celerp-2.5.0/default_modules/celerp-inventory/celerp_inventory/services.py +0 -1181
  196. celerp-2.5.0/default_modules/first_party.lock.json +0 -16
  197. {celerp-2.5.0 → celerp-2.5.2}/CLA.md +0 -0
  198. {celerp-2.5.0 → celerp-2.5.2}/LICENSE +0 -0
  199. {celerp-2.5.0 → celerp-2.5.2}/LICENSING.md +0 -0
  200. {celerp-2.5.0 → celerp-2.5.2}/MANIFEST.in +0 -0
  201. {celerp-2.5.0 → celerp-2.5.2}/NOTICE +0 -0
  202. {celerp-2.5.0 → celerp-2.5.2}/alembic.ini +0 -0
  203. {celerp-2.5.0 → celerp-2.5.2}/celerp/__init__.py +0 -0
  204. {celerp-2.5.0 → celerp-2.5.2}/celerp/__main__.py +0 -0
  205. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/__init__.py +0 -0
  206. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/batch.py +0 -0
  207. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/cleanup.py +0 -0
  208. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/conversations.py +0 -0
  209. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/files.py +0 -0
  210. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/intent.py +0 -0
  211. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/llm.py +0 -0
  212. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/memory.py +0 -0
  213. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/models.py +0 -0
  214. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/page_count.py +0 -0
  215. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/service.py +0 -0
  216. {celerp-2.5.0 → celerp-2.5.2}/celerp/ai/tools.py +0 -0
  217. {celerp-2.5.0 → celerp-2.5.2}/celerp/alembic.ini +0 -0
  218. {celerp-2.5.0 → celerp-2.5.2}/celerp/alembic_config.py +0 -0
  219. {celerp-2.5.0 → celerp-2.5.2}/celerp/capacity.py +0 -0
  220. {celerp-2.5.0 → celerp-2.5.2}/celerp/compat.py +0 -0
  221. {celerp-2.5.0 → celerp-2.5.2}/celerp/compute/__init__.py +0 -0
  222. {celerp-2.5.0 → celerp-2.5.2}/celerp/compute/aggregations.py +0 -0
  223. {celerp-2.5.0 → celerp-2.5.2}/celerp/compute/valuation.py +0 -0
  224. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/__init__.py +0 -0
  225. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/registry.py +0 -0
  226. {celerp-2.5.0 → celerp-2.5.2}/celerp/connectors/util.py +0 -0
  227. {celerp-2.5.0 → celerp-2.5.2}/celerp/constants.py +0 -0
  228. {celerp-2.5.0 → celerp-2.5.2}/celerp/db.py +0 -0
  229. {celerp-2.5.0 → celerp-2.5.2}/celerp/entitlement_preflight.py +0 -0
  230. {celerp-2.5.0 → celerp-2.5.2}/celerp/events/__init__.py +0 -0
  231. {celerp-2.5.0 → celerp-2.5.2}/celerp/events/types.py +0 -0
  232. {celerp-2.5.0 → celerp-2.5.2}/celerp/gateway/bootstrap.py +0 -0
  233. {celerp-2.5.0 → celerp-2.5.2}/celerp/gateway/fixtures/entitlement_flags_fixture.json +0 -0
  234. {celerp-2.5.0 → celerp-2.5.2}/celerp/importers/__init__.py +0 -0
  235. {celerp-2.5.0 → celerp-2.5.2}/celerp/importers/importer.py +0 -0
  236. {celerp-2.5.0 → celerp-2.5.2}/celerp/importers/schema.py +0 -0
  237. {celerp-2.5.0 → celerp-2.5.2}/celerp/importers/tabular.py +0 -0
  238. {celerp-2.5.0 → celerp-2.5.2}/celerp/middleware.py +0 -0
  239. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/README.md +0 -0
  240. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/_data_reconcile.py +0 -0
  241. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/script.py.mako +0 -0
  242. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/a0b1c2d3e4f5_seed_landed_cost_clearing_accounts.py +0 -0
  243. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/a1b2c3d4e5f6_add_doc_share_tokens.py +0 -0
  244. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/b1c2d3e4f5a6_add_supporter_badges.py +0 -0
  245. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/b2c3d4e5f6a7_add_import_batches.py +0 -0
  246. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/c1d2e3f4a5b6_add_marketplace.py +0 -0
  247. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/c2d3e4f5a6b7_add_is_sync_to_shopify.py +0 -0
  248. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/c4d5e6f7a8b9_account_cash_flow_category.py +0 -0
  249. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/c9d8e7f6a5b4_seed_shrinkage_writeoff_account.py +0 -0
  250. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/d0e1f2a3b4c5_add_share_token_expiry.py +0 -0
  251. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/d2e3f4a5b6c7_add_password_reset_token.py +0 -0
  252. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/d5e6f7a8b9c0_rename_fx_rounding_to_fx_difference.py +0 -0
  253. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/e3f4a5b6c7d8_add_company_is_active.py +0 -0
  254. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/e4f5a6b7c8d9_backfill_connector_idempotency_key.py +0 -0
  255. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/e7c9a1b3d5f2_work_center_default_columns.py +0 -0
  256. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/f1a2b3c4d5e6_move_accounts_marketplace_to_modules.py +0 -0
  257. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/f3a4b5c6d7e8_purge_session_registry.py +0 -0
  258. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/f6a7b8c9d0e1_seed_fx_rounding_account.py +0 -0
  259. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/fd5de461e14e_initial_schema.py +0 -0
  260. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/g1h2i3j4k5l6_add_consignment_flag.py +0 -0
  261. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/h2i3j4k5l6m7_add_bank_accounts_and_reconciliation.py +0 -0
  262. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/j4k5l6m7n8o9_labels_db_persistence.py +0 -0
  263. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/k5l6m7n8o9p0_add_reconciliation_v2.py +0 -0
  264. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/l6m7n8o9p0q1_add_sync_runs_table.py +0 -0
  265. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/m7n8o9p0q1r2_add_connector_configs_and_outbound_queue.py +0 -0
  266. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/n8o9p0q1r2s3_backfill_payment_date.py +0 -0
  267. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/o9p0q1r2s3t4_backfill_item_price_fields.py +0 -0
  268. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/p1q2r3s4t5u6_add_session_registry_and_user_auth_state.py +0 -0
  269. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/q2r3s4t5u6v7_add_system_runtime_state.py +0 -0
  270. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/r3s4t5u6v7w8_add_projections_company_entity_type_index.py +0 -0
  271. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/s4t5u6v7w8x9_drop_user_company_id_role.py +0 -0
  272. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/t5u6v7w8x9y0_seed_inventory_sub_accounts.py +0 -0
  273. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/u6v7w8x9y0z1_backfill_item_prices_from_attributes.py +0 -0
  274. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/v7w8x9y0z1a2_backfill_purchase_unit_defaults.py +0 -0
  275. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/w8x9y0z1a2b3_backfill_category_unit_defaults.py +0 -0
  276. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/x7y8z9a0b1c2_add_projection_created_at.py +0 -0
  277. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/y8z9a0b1c2d3_per_company_ledger_idempotency.py +0 -0
  278. {celerp-2.5.0 → celerp-2.5.2}/celerp/migrations/versions/z9a0b1c2d3e4_work_centers.py +0 -0
  279. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/accounting.py +0 -0
  280. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/ai.py +0 -0
  281. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/auth.py +0 -0
  282. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/base.py +0 -0
  283. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/connector_config.py +0 -0
  284. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/import_batch.py +0 -0
  285. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/ledger.py +0 -0
  286. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/marketplace.py +0 -0
  287. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/notification.py +0 -0
  288. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/share.py +0 -0
  289. {celerp-2.5.0 → celerp-2.5.2}/celerp/models/supporter.py +0 -0
  290. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/__init__.py +0 -0
  291. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/audit.py +0 -0
  292. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/demotion.py +0 -0
  293. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/importer.py +0 -0
  294. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/license.py +0 -0
  295. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/meta.py +0 -0
  296. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/references.py +0 -0
  297. {celerp-2.5.0 → celerp-2.5.2}/celerp/modules/registry.py +0 -0
  298. {celerp-2.5.0 → celerp-2.5.2}/celerp/notifications/__init__.py +0 -0
  299. {celerp-2.5.0 → celerp-2.5.2}/celerp/notifications/service.py +0 -0
  300. {celerp-2.5.0 → celerp-2.5.2}/celerp/notifications/sse.py +0 -0
  301. {celerp-2.5.0 → celerp-2.5.2}/celerp/output/__init__.py +0 -0
  302. {celerp-2.5.0 → celerp-2.5.2}/celerp/output/branding.py +0 -0
  303. {celerp-2.5.0 → celerp-2.5.2}/celerp/output/share_render.py +0 -0
  304. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/__init__.py +0 -0
  305. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/handlers/__init__.py +0 -0
  306. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/handlers/marketplace.py +0 -0
  307. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/handlers/scanning.py +0 -0
  308. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/handlers/shopify.py +0 -0
  309. {celerp-2.5.0 → celerp-2.5.2}/celerp/projections/handlers/system.py +0 -0
  310. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/__init__.py +0 -0
  311. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/attachments.py +0 -0
  312. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/events.py +0 -0
  313. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/ledger.py +0 -0
  314. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/notifications.py +0 -0
  315. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/search.py +0 -0
  316. {celerp-2.5.0 → celerp-2.5.2}/celerp/routers/stars.py +0 -0
  317. {celerp-2.5.0 → celerp-2.5.2}/celerp/schemas/__init__.py +0 -0
  318. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/__init__.py +0 -0
  319. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/activity_redaction.py +0 -0
  320. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/background.py +0 -0
  321. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup_export.py +0 -0
  322. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup_repo.py +0 -0
  323. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup_scheduler.py +0 -0
  324. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/backup_state.py +0 -0
  325. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/cogs_backfill.py +0 -0
  326. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/dev_release_guard.py +0 -0
  327. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/document_lines.py +0 -0
  328. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/email.py +0 -0
  329. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/je_keys.py +0 -0
  330. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/line_measures.py +0 -0
  331. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/list_behavior.py +0 -0
  332. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/permissions.py +0 -0
  333. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/pricing.py +0 -0
  334. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/relay_share.py +0 -0
  335. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/reorder.py +0 -0
  336. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/runtime_state.py +0 -0
  337. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/session_tracker.py +0 -0
  338. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/shipping.py +0 -0
  339. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/star_cta.py +0 -0
  340. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/status_doc_backfill.py +0 -0
  341. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/supporter_badge.py +0 -0
  342. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/system_health.py +0 -0
  343. {celerp-2.5.0 → celerp-2.5.2}/celerp/services/units.py +0 -0
  344. {celerp-2.5.0 → celerp-2.5.2}/celerp/tax_regimes.py +0 -0
  345. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/dependency_links.txt +0 -0
  346. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/entry_points.txt +0 -0
  347. {celerp-2.5.0 → celerp-2.5.2}/celerp.egg-info/top_level.txt +0 -0
  348. {celerp-2.5.0 → celerp-2.5.2}/conftest_support.py +0 -0
  349. {celerp-2.5.0 → celerp-2.5.2}/default_modules/__init__.py +0 -0
  350. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/LICENSE +0 -0
  351. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/__init__.py +0 -0
  352. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/__init__.py +0 -0
  353. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/api_setup.py +0 -0
  354. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/csv_parser.py +0 -0
  355. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/matcher.py +0 -0
  356. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/models.py +0 -0
  357. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/projections.py +0 -0
  358. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/routes.py +0 -0
  359. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/search.py +0 -0
  360. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/ui_routes.py +0 -0
  361. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/balance-sheet.html +0 -0
  362. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/cash-flow.html +0 -0
  363. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-csv.csv +0 -0
  364. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-print.html +0 -0
  365. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal.html +0 -0
  366. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/general-ledger.html +0 -0
  367. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal-csv.csv +0 -0
  368. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal-print.html +0 -0
  369. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal.html +0 -0
  370. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/ledger.html +0 -0
  371. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/pnl.html +0 -0
  372. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/statement.html +0 -0
  373. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/trial-balance.html +0 -0
  374. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_banking.py +0 -0
  375. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_banking_routers.py +0 -0
  376. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_gaps.py +0 -0
  377. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_import_idempotency.py +0 -0
  378. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_cash_flow.py +0 -0
  379. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_financial_reports_ui.py +0 -0
  380. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_journal_gl_soa_ui.py +0 -0
  381. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_reconciliation_agent.py +0 -0
  382. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_reconciliation_v2.py +0 -0
  383. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_reports_end_to_end.py +0 -0
  384. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_route_permissions.py +0 -0
  385. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-admin/__init__.py +0 -0
  386. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-admin/celerp_admin/__init__.py +0 -0
  387. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-admin/celerp_admin/setup.py +0 -0
  388. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/__init__.py +0 -0
  389. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/__init__.py +0 -0
  390. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/setup.py +0 -0
  391. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/ui_routes.py +0 -0
  392. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/conftest.py +0 -0
  393. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_agent_loop.py +0 -0
  394. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_batch.py +0 -0
  395. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_cleanup.py +0 -0
  396. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_confirm_race_pg.py +0 -0
  397. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_conversations.py +0 -0
  398. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_coverage_gaps.py +0 -0
  399. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_intent.py +0 -0
  400. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_live_agent.py +0 -0
  401. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_memory.py +0 -0
  402. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_models.py +0 -0
  403. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_page_count.py +0 -0
  404. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_router.py +0 -0
  405. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_routes_coverage.py +0 -0
  406. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_showcase_claims.py +0 -0
  407. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_ui_routes.py +0 -0
  408. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_workflows.py +0 -0
  409. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-backup/__init__.py +0 -0
  410. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-backup/celerp_backup/__init__.py +0 -0
  411. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-backup/celerp_backup/setup.py +0 -0
  412. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/celerp_connectors/__init__.py +0 -0
  413. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/celerp_connectors/models.py +0 -0
  414. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/__init__.py +0 -0
  415. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_compliance.py +0 -0
  416. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_quickbooks.py +0 -0
  417. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/LICENSE +0 -0
  418. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/__init__.py +0 -0
  419. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/__init__.py +0 -0
  420. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/migrations.py +0 -0
  421. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/projections.py +0 -0
  422. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/search.py +0 -0
  423. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/ui_routes.py +0 -0
  424. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-dashboard/LICENSE +0 -0
  425. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-dashboard/__init__.py +0 -0
  426. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/__init__.py +0 -0
  427. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/routes.py +0 -0
  428. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/setup.py +0 -0
  429. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/LICENSE +0 -0
  430. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/__init__.py +0 -0
  431. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/__init__.py +0 -0
  432. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/api_setup.py +0 -0
  433. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/doc_constants.py +0 -0
  434. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/doc_email.py +0 -0
  435. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/models_share.py +0 -0
  436. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/search.py +0 -0
  437. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/sequences.py +0 -0
  438. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/taxes.py +0 -0
  439. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/ui_routes.py +0 -0
  440. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/conftest.py +0 -0
  441. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_bulk_payment_alloc_lock.py +0 -0
  442. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_consolidate_lots.py +0 -0
  443. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_cross_lot_settlement.py +0 -0
  444. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_freight_je.py +0 -0
  445. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_freight_lines.py +0 -0
  446. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_fulfill_no_split.py +0 -0
  447. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_fulfillment_activity.py +0 -0
  448. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_inbound_je_lifecycle.py +0 -0
  449. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_inventory_account_reconciliation.py +0 -0
  450. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_landed_receive.py +0 -0
  451. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_line_delete_persist.py +0 -0
  452. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_line_identifier.py +0 -0
  453. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_line_page_patch_truncate.py +0 -0
  454. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_ids_filter.py +0 -0
  455. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_page_no_full_state.py +0 -0
  456. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_quantity_integrity.py +0 -0
  457. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_list_sell_by_and_reference.py +0 -0
  458. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_close.py +0 -0
  459. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_close_projection.py +0 -0
  460. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_close_review_fixes.py +0 -0
  461. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_line_labels.py +0 -0
  462. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_unfulfilled_filter.py +0 -0
  463. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_payment_void_activity.py +0 -0
  464. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_send_visibility.py +0 -0
  465. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_service_lines.py +0 -0
  466. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_sold_label_ordering.py +0 -0
  467. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_void_guards.py +0 -0
  468. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_writeoffs.py +0 -0
  469. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/LICENSE +0 -0
  470. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/__init__.py +0 -0
  471. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/__init__.py +0 -0
  472. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/models_import_batch.py +0 -0
  473. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/routes_scanning.py +0 -0
  474. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/ui_routes.py +0 -0
  475. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_import_agent_routes.py +0 -0
  476. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_item_recipe_projection.py +0 -0
  477. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_item_workflow_projection.py +0 -0
  478. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_landed_cost_projection.py +0 -0
  479. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/LICENSE +0 -0
  480. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/__init__.py +0 -0
  481. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/__init__.py +0 -0
  482. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/am.json +0 -0
  483. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/ar.json +0 -0
  484. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/de.json +0 -0
  485. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/en.json +0 -0
  486. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/es.json +0 -0
  487. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/fr.json +0 -0
  488. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/id.json +0 -0
  489. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/it.json +0 -0
  490. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/ja.json +0 -0
  491. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/pt.json +0 -0
  492. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/th.json +0 -0
  493. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/vi.json +0 -0
  494. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/models.py +0 -0
  495. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/presets.py +0 -0
  496. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/service.py +0 -0
  497. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/ui_routes.py +0 -0
  498. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/requirements.txt +0 -0
  499. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/tests/test_labels.py +0 -0
  500. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-labels/tests/test_labels_module.py +0 -0
  501. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/LICENSE +0 -0
  502. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/__init__.py +0 -0
  503. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/__init__.py +0 -0
  504. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/costing.py +0 -0
  505. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/expansion.py +0 -0
  506. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/labor.py +0 -0
  507. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/migrations.py +0 -0
  508. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/projection_handler.py +0 -0
  509. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/routes.py +0 -0
  510. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/search.py +0 -0
  511. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/ui_routes.py +0 -0
  512. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/requirements.txt +0 -0
  513. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_auto_complete_on_finalize.py +0 -0
  514. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_bom_removed.py +0 -0
  515. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_build_api.py +0 -0
  516. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_completion_lock_order.py +0 -0
  517. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_item_recipe_api.py +0 -0
  518. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_item_workflow_api.py +0 -0
  519. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_labor_providers.py +0 -0
  520. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_manufacture_from_doc.py +0 -0
  521. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_manufacturing.py +0 -0
  522. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_manufacturing_import_idempotency.py +0 -0
  523. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_manufacturing_module.py +0 -0
  524. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_mfg_events.py +0 -0
  525. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_phase2_manufacturing_validations.py +0 -0
  526. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_production_order.py +0 -0
  527. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_recipe_costing.py +0 -0
  528. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_recipe_expansion.py +0 -0
  529. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_recost_api.py +0 -0
  530. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_run_records.py +0 -0
  531. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_to_make_allocation.py +0 -0
  532. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_where_used.py +0 -0
  533. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_work_centers_and_settings.py +0 -0
  534. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_workflow_time.py +0 -0
  535. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/LICENSE +0 -0
  536. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/__init__.py +0 -0
  537. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/__init__.py +0 -0
  538. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/api_setup.py +0 -0
  539. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/routes.py +0 -0
  540. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/ui_routes.py +0 -0
  541. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/tests/test_reports_full.py +0 -0
  542. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-reports/tests/test_reports_unit.py +0 -0
  543. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/LICENSE +0 -0
  544. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/__init__.py +0 -0
  545. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/__init__.py +0 -0
  546. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/search.py +0 -0
  547. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/ui_routes.py +0 -0
  548. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/tests/test_subscriptions_ui.py +0 -0
  549. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/LICENSE +0 -0
  550. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/__init__.py +0 -0
  551. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/__init__.py +0 -0
  552. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/accessory_fashion.json +0 -0
  553. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/activewear.json +0 -0
  554. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/art_photography.json +0 -0
  555. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/audio_equipment.json +0 -0
  556. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bag_handbag.json +0 -0
  557. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/banknote.json +0 -0
  558. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beauty_tool.json +0 -0
  559. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bed_bedroom.json +0 -0
  560. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beer.json +0 -0
  561. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beverage_nonalc.json +0 -0
  562. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/body_part_auto.json +0 -0
  563. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/book.json +0 -0
  564. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bottoms.json +0 -0
  565. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/brake_suspension.json +0 -0
  566. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bullion_coin.json +0 -0
  567. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/camera.json +0 -0
  568. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/colored_stone.json +0 -0
  569. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/comic.json +0 -0
  570. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/commercial_space.json +0 -0
  571. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/component_part.json +0 -0
  572. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/confectionery.json +0 -0
  573. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/consulting_service.json +0 -0
  574. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/decorative_art.json +0 -0
  575. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/diamond.json +0 -0
  576. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/drawing.json +0 -0
  577. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/dress_jumpsuit.json +0 -0
  578. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_auto.json +0 -0
  579. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_component.json +0 -0
  580. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/emerald.json +0 -0
  581. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/engine_part.json +0 -0
  582. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fastener.json +0 -0
  583. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fertilizer_chemical.json +0 -0
  584. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/film_video.json +0 -0
  585. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fine_writing_instrument.json +0 -0
  586. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fluid_lubricant.json +0 -0
  587. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/footwear.json +0 -0
  588. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fragrance.json +0 -0
  589. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_food.json +0 -0
  590. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_produce.json +0 -0
  591. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/frozen_food.json +0 -0
  592. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/gaming_console.json +0 -0
  593. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/gold_bullion.json +0 -0
  594. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/grain_cereal.json +0 -0
  595. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/haircare.json +0 -0
  596. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/hand_tool.json +0 -0
  597. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/ingredient_bulk.json +0 -0
  598. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/interior_part.json +0 -0
  599. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/jewelry.json +0 -0
  600. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/kitchen_dining.json +0 -0
  601. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/laptop.json +0 -0
  602. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/lighting.json +0 -0
  603. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/livestock_feed.json +0 -0
  604. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/makeup.json +0 -0
  605. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/measuring_instrument.json +0 -0
  606. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/medal_token.json +0 -0
  607. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/mineral_specimen.json +0 -0
  608. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/mobile_phone.json +0 -0
  609. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/music_cd.json +0 -0
  610. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/music_vinyl.json +0 -0
  611. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/nail.json +0 -0
  612. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/numismatic_coin.json +0 -0
  613. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/outdoor_furniture.json +0 -0
  614. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/outerwear.json +0 -0
  615. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/packaged_food.json +0 -0
  616. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/painting.json +0 -0
  617. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/parking_bay.json +0 -0
  618. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/pearl.json +0 -0
  619. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/personal_care.json +0 -0
  620. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/pipe_plumbing.json +0 -0
  621. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/platinum_bullion.json +0 -0
  622. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/power_tool.json +0 -0
  623. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/print_edition.json +0 -0
  624. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/residential_unit.json +0 -0
  625. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/rough_gemstone.json +0 -0
  626. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/ruby.json +0 -0
  627. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/saas_plan.json +0 -0
  628. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/safety_ppe.json +0 -0
  629. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/sapphire.json +0 -0
  630. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/sculpture.json +0 -0
  631. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/seating.json +0 -0
  632. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/seeds.json +0 -0
  633. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/silver_bullion.json +0 -0
  634. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/skincare.json +0 -0
  635. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/soft_furnishing.json +0 -0
  636. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/software_addon.json +0 -0
  637. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/software_license.json +0 -0
  638. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/spirit.json +0 -0
  639. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/storage_furniture.json +0 -0
  640. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/swimwear.json +0 -0
  641. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/table_desk.json +0 -0
  642. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tablet.json +0 -0
  643. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tire_wheel.json +0 -0
  644. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tops.json +0 -0
  645. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/trading_card.json +0 -0
  646. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tv_display.json +0 -0
  647. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/video_game.json +0 -0
  648. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/watch.json +0 -0
  649. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/watch_strap.json +0 -0
  650. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/wine.json +0 -0
  651. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/agricultural.json +0 -0
  652. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/artwork.json +0 -0
  653. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/automotive.json +0 -0
  654. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/blank.json +0 -0
  655. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/books_media.json +0 -0
  656. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/coins_precious_metals.json +0 -0
  657. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/consulting.json +0 -0
  658. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/cosmetics.json +0 -0
  659. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/electronics.json +0 -0
  660. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/fashion.json +0 -0
  661. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/food_beverage.json +0 -0
  662. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/furniture.json +0 -0
  663. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/gemstones.json +0 -0
  664. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/hardware.json +0 -0
  665. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/property_rental.json +0 -0
  666. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/saas.json +0 -0
  667. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/watches.json +0 -0
  668. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/wine_spirits.json +0 -0
  669. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/routes.py +0 -0
  670. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/ui_routes.py +0 -0
  671. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/tests/test_verticals.py +0 -0
  672. {celerp-2.5.0 → celerp-2.5.2}/default_modules/celerp-verticals/tests/test_verticals_routers.py +0 -0
  673. {celerp-2.5.0 → celerp-2.5.2}/legal/OFFICIAL-COMPONENTS.md +0 -0
  674. {celerp-2.5.0 → celerp-2.5.2}/legal/TRADEMARK.md +0 -0
  675. {celerp-2.5.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.installer.yaml +0 -0
  676. {celerp-2.5.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.locale.en-US.yaml +0 -0
  677. {celerp-2.5.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.yaml +0 -0
  678. {celerp-2.5.0 → celerp-2.5.2}/packaging/winget/README.md +0 -0
  679. {celerp-2.5.0 → celerp-2.5.2}/setup.cfg +0 -0
  680. {celerp-2.5.0 → celerp-2.5.2}/test_helpers.py +0 -0
  681. {celerp-2.5.0 → celerp-2.5.2}/ui/__init__.py +0 -0
  682. {celerp-2.5.0 → celerp-2.5.2}/ui/components/__init__.py +0 -0
  683. {celerp-2.5.0 → celerp-2.5.2}/ui/components/activity.py +0 -0
  684. {celerp-2.5.0 → celerp-2.5.2}/ui/components/attrs.py +0 -0
  685. {celerp-2.5.0 → celerp-2.5.2}/ui/components/backup.py +0 -0
  686. {celerp-2.5.0 → celerp-2.5.2}/ui/components/cloud_gate.py +0 -0
  687. {celerp-2.5.0 → celerp-2.5.2}/ui/components/currency.py +0 -0
  688. {celerp-2.5.0 → celerp-2.5.2}/ui/components/files.py +0 -0
  689. {celerp-2.5.0 → celerp-2.5.2}/ui/components/journal.py +0 -0
  690. {celerp-2.5.0 → celerp-2.5.2}/ui/components/notes.py +0 -0
  691. {celerp-2.5.0 → celerp-2.5.2}/ui/components/phone.py +0 -0
  692. {celerp-2.5.0 → celerp-2.5.2}/ui/config.py +0 -0
  693. {celerp-2.5.0 → celerp-2.5.2}/ui/i18n.py +0 -0
  694. {celerp-2.5.0 → celerp-2.5.2}/ui/marketplace_catalog.py +0 -0
  695. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/__init__.py +0 -0
  696. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/accounting.py +0 -0
  697. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/accounting_import.py +0 -0
  698. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/commercial.py +0 -0
  699. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/csv_import.py +0 -0
  700. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/docs_import.py +0 -0
  701. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/events.py +0 -0
  702. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/financial_reports.py +0 -0
  703. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/lists_import.py +0 -0
  704. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/manufacturing.py +0 -0
  705. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/modules_page.py +0 -0
  706. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/notifications.py +0 -0
  707. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/reconciliation.py +0 -0
  708. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/reports.py +0 -0
  709. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/search.py +0 -0
  710. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_accounting.py +0 -0
  711. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_contacts.py +0 -0
  712. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_general.py +0 -0
  713. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_import.py +0 -0
  714. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_manufacturing.py +0 -0
  715. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_purchasing.py +0 -0
  716. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/settings_sales.py +0 -0
  717. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/setup.py +0 -0
  718. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/stars.py +0 -0
  719. {celerp-2.5.0 → celerp-2.5.2}/ui/routes/subscriptions_import.py +0 -0
  720. {celerp-2.5.0 → celerp-2.5.2}/ui/security.py +0 -0
  721. {celerp-2.5.0 → celerp-2.5.2}/ui/static/htmx.min.js +0 -0
  722. {celerp-2.5.0 → celerp-2.5.2}/ui/static/icon.png +0 -0
  723. {celerp-2.5.0 → celerp-2.5.2}/ui/static/logo.png +0 -0
  724. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/img/flags.webp +0 -0
  725. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/img/flags@2x.webp +0 -0
  726. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInput.min.css +0 -0
  727. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInput.min.js +0 -0
  728. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInputWithUtils.min.js +0 -0
  729. {celerp-2.5.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/utils.js +0 -0
@@ -96,12 +96,23 @@ celerp init --force --db-url "postgresql+asyncpg://celerp:celerp@newhost:5432/ce
96
96
 
97
97
  `celerp init` launches the servers and blocks (good for the one-command desktop
98
98
  flow). For a headless box where a process manager owns the lifecycle, set up with
99
- `--no-start` and let systemd run `celerp start`:
99
+ `--no-start` and let systemd run `celerp start`.
100
+
101
+ Install Celerp into a virtual environment. `celerp start` installs updates itself,
102
+ into the service user's Celerp config folder beside its data, so the install can stay
103
+ root-owned. When the service user cannot write to that folder, the update card shows
104
+ the pip command to run instead.
105
+
106
+ ```bash
107
+ sudo useradd --system --create-home celerp
108
+ sudo python3 -m venv /opt/celerp
109
+ sudo /opt/celerp/bin/pip install celerp
110
+ ```
100
111
 
101
112
  ```bash
102
113
  # First boot against a system PostgreSQL: provision DB + migrations + config, then
103
114
  # exit (do not block). Run as root so init can create the role/database.
104
- sudo celerp init --no-start \
115
+ sudo /opt/celerp/bin/celerp init --no-start \
105
116
  --db-url "postgresql+asyncpg://celerp:<password>@localhost:5432/celerp" \
106
117
  --api-port 8000 --ui-port 8080
107
118
  ```
@@ -119,7 +130,7 @@ Description=Celerp
119
130
  After=network.target postgresql.service
120
131
 
121
132
  [Service]
122
- ExecStart=/usr/local/bin/celerp start
133
+ ExecStart=/opt/celerp/bin/celerp start
123
134
  Restart=on-failure
124
135
  User=celerp
125
136
 
@@ -131,6 +142,16 @@ WantedBy=multi-user.target
131
142
  sudo systemctl enable --now celerp
132
143
  ```
133
144
 
145
+ New versions install automatically between 03:00 and 05:00 in the company's time
146
+ zone. Each update takes a backup first and is undone if the new version does not
147
+ start. The owner can turn this off in the update card in the notifications panel, or
148
+ set it in `config.toml`:
149
+
150
+ ```toml
151
+ [updates]
152
+ auto = false
153
+ ```
154
+
134
155
  ## Troubleshooting
135
156
 
136
157
  | Error | Fix |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celerp
3
- Version: 2.5.0
3
+ Version: 2.5.2
4
4
  Summary: Free, self-hosted ERP for small businesses
5
5
  License: Business Source License 1.1
6
6
 
@@ -127,36 +127,85 @@ Requires-Python: >=3.10
127
127
  Description-Content-Type: text/markdown
128
128
  License-File: LICENSE
129
129
  License-File: NOTICE
130
- Requires-Dist: fastapi>=0.115
131
- Requires-Dist: uvicorn[standard]>=0.30
132
- Requires-Dist: sqlalchemy[asyncio]>=2.0
133
- Requires-Dist: asyncpg>=0.29
134
- Requires-Dist: alembic>=1.13
135
- Requires-Dist: pydantic>=2.0
136
- Requires-Dist: pydantic-settings>=2.0
137
- Requires-Dist: python-jose[cryptography]>=3.3
138
- Requires-Dist: cryptography>=42
139
- Requires-Dist: passlib[bcrypt]>=1.7
140
- Requires-Dist: numpy>=1.26
141
- Requires-Dist: python-multipart>=0.0.9
142
- Requires-Dist: aiofiles>=23.0
143
- Requires-Dist: httpx>=0.27
144
- Requires-Dist: openpyxl<4,>=3.1
145
- Requires-Dist: slowapi>=0.1.9
146
- Requires-Dist: reportlab>=4.0
147
- Requires-Dist: python-fasthtml>=0.14
148
- Requires-Dist: psutil>=5.9
149
- Requires-Dist: websockets>=12.0
150
- Requires-Dist: aiosmtplib>=3.0
151
- Requires-Dist: click>=8.0
152
- Requires-Dist: python-barcode>=0.15
153
- Requires-Dist: qrcode>=7.0
154
- Requires-Dist: Pillow>=10.0
155
- Requires-Dist: pypdf>=4.0
156
- Requires-Dist: psycopg2-binary>=2.9
157
- Requires-Dist: tzdata>=2024.1
158
- Requires-Dist: tomli>=2.0; python_version < "3.11"
159
- Requires-Dist: celerp-postgres<18,>=17.10; (sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or (sys_platform == "win32" and platform_machine == "AMD64")
130
+ Requires-Dist: aiofiles==25.1.0
131
+ Requires-Dist: aiosmtplib==5.1.3
132
+ Requires-Dist: alembic==1.20.0
133
+ Requires-Dist: annotated-doc==0.0.5
134
+ Requires-Dist: annotated-types==0.8.0
135
+ Requires-Dist: anyio==4.15.1
136
+ Requires-Dist: async-timeout==5.0.1; python_full_version < "3.11"
137
+ Requires-Dist: asyncpg==0.31.0
138
+ Requires-Dist: bcrypt==5.0.0
139
+ Requires-Dist: beautifulsoup4==4.15.0
140
+ Requires-Dist: celerp-postgres==17.10.0; (platform_machine == "aarch64" and sys_platform == "linux") or (platform_machine == "x86_64" and sys_platform == "linux") or (platform_machine == "AMD64" and sys_platform == "win32")
141
+ Requires-Dist: certifi==2026.7.22
142
+ Requires-Dist: cffi==2.1.1; platform_python_implementation != "PyPy"
143
+ Requires-Dist: charset-normalizer==3.5.1
144
+ Requires-Dist: click==8.5.0
145
+ Requires-Dist: colorama==0.4.6; sys_platform == "win32"
146
+ Requires-Dist: cryptography==50.0.1
147
+ Requires-Dist: deprecated==1.3.1
148
+ Requires-Dist: ecdsa==0.19.2
149
+ Requires-Dist: et-xmlfile==2.0.0
150
+ Requires-Dist: exceptiongroup==1.3.1; python_full_version < "3.11"
151
+ Requires-Dist: fastapi==0.141.1
152
+ Requires-Dist: fastcore==2.2.30
153
+ Requires-Dist: greenlet==3.5.6
154
+ Requires-Dist: h11==0.16.0
155
+ Requires-Dist: httpcore==1.0.9
156
+ Requires-Dist: httpcore2==2.13.1; sys_platform != "emscripten"
157
+ Requires-Dist: httptools==0.8.0
158
+ Requires-Dist: httpx==0.28.1
159
+ Requires-Dist: httpx2==2.13.1
160
+ Requires-Dist: httpx2-jsfetch==1.0; python_full_version >= "3.12" and sys_platform == "emscripten"
161
+ Requires-Dist: idna==3.20
162
+ Requires-Dist: itsdangerous==2.2.0
163
+ Requires-Dist: limits==5.8.0
164
+ Requires-Dist: mako==1.4.3
165
+ Requires-Dist: markupsafe==3.0.3
166
+ Requires-Dist: numpy==2.2.6; python_full_version < "3.11"
167
+ Requires-Dist: numpy==2.4.6; python_full_version == "3.11.*"
168
+ Requires-Dist: numpy==2.5.3; python_full_version >= "3.12"
169
+ Requires-Dist: oauthlib==3.3.1
170
+ Requires-Dist: openpyxl==3.1.5
171
+ Requires-Dist: packaging==26.3
172
+ Requires-Dist: passlib==1.7.4
173
+ Requires-Dist: pillow==12.3.0
174
+ Requires-Dist: psutil==7.2.2
175
+ Requires-Dist: psycopg2-binary==2.9.13
176
+ Requires-Dist: pyasn1==0.6.4
177
+ Requires-Dist: pycparser==3.0; implementation_name != "PyPy" and platform_python_implementation != "PyPy"
178
+ Requires-Dist: pydantic==2.13.5
179
+ Requires-Dist: pydantic-core==2.46.5
180
+ Requires-Dist: pydantic-settings==2.15.0
181
+ Requires-Dist: pypdf==6.19.0
182
+ Requires-Dist: python-barcode==0.16.1
183
+ Requires-Dist: python-dateutil==2.9.0.post0
184
+ Requires-Dist: python-dotenv==1.2.3
185
+ Requires-Dist: python-fasthtml==0.14.13
186
+ Requires-Dist: python-jose==3.5.0
187
+ Requires-Dist: python-multipart==0.0.32
188
+ Requires-Dist: pyyaml==6.0.3
189
+ Requires-Dist: qrcode==8.2
190
+ Requires-Dist: reportlab==5.0.1
191
+ Requires-Dist: rsa==4.9.1
192
+ Requires-Dist: six==1.17.0
193
+ Requires-Dist: slowapi==0.1.10
194
+ Requires-Dist: soupsieve==2.10
195
+ Requires-Dist: sqlalchemy==2.0.54; python_full_version < "3.11"
196
+ Requires-Dist: sqlalchemy==2.1.1; python_full_version >= "3.11"
197
+ Requires-Dist: starlette==1.7.0
198
+ Requires-Dist: tomli==2.4.1; python_full_version < "3.11"
199
+ Requires-Dist: truststore==0.10.4; sys_platform != "emscripten"
200
+ Requires-Dist: typing-extensions==4.16.0
201
+ Requires-Dist: typing-inspection==0.4.4
202
+ Requires-Dist: tzdata==2026.4
203
+ Requires-Dist: uvicorn==0.54.0
204
+ Requires-Dist: uvloop==0.22.1; platform_python_implementation != "PyPy" and sys_platform != "cygwin" and sys_platform != "win32"
205
+ Requires-Dist: watchfiles==1.3.0
206
+ Requires-Dist: websockets==16.1.1; python_full_version < "3.11"
207
+ Requires-Dist: websockets==17.1; python_full_version >= "3.11"
208
+ Requires-Dist: wrapt==2.4.1
160
209
  Provides-Extra: dev
161
210
  Requires-Dist: pytest>=8.0; extra == "dev"
162
211
  Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
@@ -169,7 +218,7 @@ Requires-Dist: pytest-timeout>=2.3; extra == "dev"
169
218
  Requires-Dist: pytest-xdist>=3.5; extra == "dev"
170
219
  Requires-Dist: testcontainers[postgres]>=4.0; extra == "dev"
171
220
  Provides-Extra: prod
172
- Requires-Dist: gunicorn>=22.0; extra == "prod"
221
+ Requires-Dist: gunicorn==26.2.0; extra == "prod"
173
222
  Dynamic: license-file
174
223
 
175
224
  # Celerp
@@ -234,6 +283,8 @@ service. Point it at a specific server with `celerp init --db-url postgresql+asy
234
283
  Running headless or under a process manager? Use `celerp init --no-start` to set up
235
284
  without launching, then have your service run `celerp start` — see
236
285
  [Run as a service (systemd)](CONTRIBUTING.md#run-as-a-service-systemd).
286
+ Updates install automatically overnight; the owner can turn that off from the update
287
+ card in the notifications panel.
237
288
 
238
289
  ---
239
290
 
@@ -255,7 +306,7 @@ without launching, then have your service run `celerp start` — see
255
306
 
256
307
  ## How it works
257
308
 
258
- Celerp runs entirely on your machine. Your data never leaves your computer.
309
+ Celerp runs on your machine and keeps its primary database local. Optional Connect features can relay remote access or send selected data to Celerp cloud services.
259
310
 
260
311
  - **No setup** - the desktop app bundles Postgres, runs migrations on launch, opens in your browser
261
312
  - **No lock-in** - your data stays in a standard Postgres database you control
@@ -60,6 +60,8 @@ service. Point it at a specific server with `celerp init --db-url postgresql+asy
60
60
  Running headless or under a process manager? Use `celerp init --no-start` to set up
61
61
  without launching, then have your service run `celerp start` — see
62
62
  [Run as a service (systemd)](CONTRIBUTING.md#run-as-a-service-systemd).
63
+ Updates install automatically overnight; the owner can turn that off from the update
64
+ card in the notifications panel.
63
65
 
64
66
  ---
65
67
 
@@ -81,7 +83,7 @@ without launching, then have your service run `celerp start` — see
81
83
 
82
84
  ## How it works
83
85
 
84
- Celerp runs entirely on your machine. Your data never leaves your computer.
86
+ Celerp runs on your machine and keeps its primary database local. Optional Connect features can relay remote access or send selected data to Celerp cloud services.
85
87
 
86
88
  - **No setup** - the desktop app bundles Postgres, runs migrations on launch, opens in your browser
87
89
  - **No lock-in** - your data stays in a standard Postgres database you control
@@ -51,7 +51,7 @@ async def get_quota_status() -> dict | None:
51
51
  tier = str(data.get("tier") or "free")
52
52
  if tier in ("cloud", "ai", "team") and not get_session_token():
53
53
  try:
54
- await sync_existing_entitlement()
54
+ await sync_existing_entitlement(require_persisted_key=True)
55
55
  except Exception as exc:
56
56
  # Quota is the authoritative entitlement read for /ai. Local runtime
57
57
  # convergence is best-effort here and must not erase a paid result.