celerp 2.4.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.
- celerp-2.5.2/CONTRIBUTING.md +190 -0
- celerp-2.5.2/PKG-INFO +397 -0
- celerp-2.5.2/README.md +174 -0
- celerp-2.5.2/celerp/ai/batch.py +348 -0
- celerp-2.5.2/celerp/ai/conversations.py +665 -0
- celerp-2.5.2/celerp/ai/files.py +77 -0
- celerp-2.5.2/celerp/ai/llm.py +236 -0
- celerp-2.5.2/celerp/ai/memory.py +102 -0
- celerp-2.5.2/celerp/ai/page_count.py +43 -0
- celerp-2.5.2/celerp/ai/quota.py +62 -0
- celerp-2.5.2/celerp/ai/service.py +483 -0
- celerp-2.5.2/celerp/ai/tools.py +434 -0
- celerp-2.5.2/celerp/cli.py +1586 -0
- celerp-2.5.2/celerp/config.py +799 -0
- celerp-2.5.2/celerp/config_store.py +248 -0
- celerp-2.5.2/celerp/connectors/base.py +194 -0
- celerp-2.5.2/celerp/connectors/daily_scheduler.py +186 -0
- celerp-2.5.2/celerp/connectors/http.py +103 -0
- celerp-2.5.2/celerp/connectors/images.py +155 -0
- celerp-2.5.2/celerp/connectors/outbound_queue.py +550 -0
- celerp-2.5.2/celerp/connectors/ownership.py +556 -0
- celerp-2.5.2/celerp/connectors/quickbooks.py +343 -0
- celerp-2.5.2/celerp/connectors/relay_token.py +89 -0
- celerp-2.5.2/celerp/connectors/remote_state.py +185 -0
- celerp-2.5.2/celerp/connectors/shopify.py +370 -0
- celerp-2.5.2/celerp/connectors/sync_runner.py +491 -0
- celerp-2.5.2/celerp/connectors/upsert.py +105 -0
- celerp-2.5.2/celerp/connectors/webhooks.py +225 -0
- celerp-2.5.2/celerp/connectors/woocommerce.py +1054 -0
- celerp-2.5.2/celerp/connectors/xero.py +481 -0
- celerp-2.5.2/celerp/db_url.py +16 -0
- celerp-2.5.2/celerp/embedded_pg.py +356 -0
- celerp-2.5.2/celerp/events/engine.py +373 -0
- celerp-2.5.2/celerp/events/schemas.py +1339 -0
- celerp-2.5.2/celerp/gateway/__init__.py +98 -0
- celerp-2.5.2/celerp/gateway/bootstrap.py +104 -0
- celerp-2.5.2/celerp/gateway/client.py +1095 -0
- celerp-2.5.2/celerp/gateway/state.py +984 -0
- celerp-2.5.2/celerp/importers/tabular.py +588 -0
- celerp-2.5.2/celerp/inventory_codes.py +188 -0
- celerp-2.5.2/celerp/main.py +614 -0
- celerp-2.5.2/celerp/migrations/_auto_stamp.py +362 -0
- celerp-2.5.2/celerp/migrations/_json_compat.py +103 -0
- celerp-2.5.2/celerp/migrations/env.py +88 -0
- celerp-2.5.2/celerp/migrations/versions/b3c4d5e6f7a8_expand_role_permissions_to_role_grants.py +165 -0
- celerp-2.5.2/celerp/migrations/versions/bc0d1e2f3a4b_barcode_unique_index.py +38 -0
- celerp-2.5.2/celerp/migrations/versions/d1e2f3a4b5c6_rfid_epc_unique_index.py +32 -0
- celerp-2.5.2/celerp/migrations/versions/f8a9b0c1d2e3_work_center_default_backfill.py +114 -0
- celerp-2.5.2/celerp/migrations/versions/g4b5c6d7e8f9_add_install_owner.py +40 -0
- celerp-2.5.2/celerp/migrations/versions/h5c6d7e8f9a0_backfill_install_owner.py +54 -0
- celerp-2.5.2/celerp/migrations/versions/i6d7e8f9a0b1_add_sync_run_attention.py +25 -0
- celerp-2.5.2/celerp/migrations/versions/j7e8f9a0b1c2_add_connector_sources.py +32 -0
- celerp-2.5.2/celerp/migrations/versions/k8f9a0b1c2d3_drop_physical_code_unique_indexes.py +40 -0
- celerp-2.5.2/celerp/models/__init__.py +13 -0
- celerp-2.5.2/celerp/models/company.py +88 -0
- celerp-2.5.2/celerp/models/connector_source.py +26 -0
- celerp-2.5.2/celerp/models/projections.py +36 -0
- celerp-2.5.2/celerp/models/sync_run.py +44 -0
- celerp-2.5.2/celerp/modules/api.py +38 -0
- celerp-2.5.2/celerp/modules/license.py +246 -0
- celerp-2.5.2/celerp/modules/loader.py +1334 -0
- celerp-2.5.2/celerp/modules/migrations_runner.py +236 -0
- celerp-2.5.2/celerp/modules/slots.py +131 -0
- celerp-2.5.2/celerp/output/doc_print.py +629 -0
- celerp-2.5.2/celerp/output/document_context.py +98 -0
- celerp-2.5.2/celerp/output/pdf.py +535 -0
- celerp-2.5.2/celerp/projections/engine.py +182 -0
- celerp-2.5.2/celerp/routers/auth.py +641 -0
- celerp-2.5.2/celerp/routers/companies.py +2602 -0
- celerp-2.5.2/celerp/routers/debug.py +276 -0
- celerp-2.5.2/celerp/routers/doctor.py +926 -0
- celerp-2.5.2/celerp/routers/health.py +1397 -0
- celerp-2.5.2/celerp/routers/search.py +305 -0
- celerp-2.5.2/celerp/routers/system.py +161 -0
- celerp-2.5.2/celerp/runtime.py +153 -0
- celerp-2.5.2/celerp/services/attachments.py +508 -0
- celerp-2.5.2/celerp/services/auth.py +383 -0
- celerp-2.5.2/celerp/services/auto_je.py +1468 -0
- celerp-2.5.2/celerp/services/background.py +22 -0
- celerp-2.5.2/celerp/services/backup.py +228 -0
- celerp-2.5.2/celerp/services/backup_import.py +607 -0
- celerp-2.5.2/celerp/services/backup_repo.py +250 -0
- celerp-2.5.2/celerp/services/business_time.py +27 -0
- celerp-2.5.2/celerp/services/cloud_entitlement.py +315 -0
- celerp-2.5.2/celerp/services/cost_visibility.py +80 -0
- celerp-2.5.2/celerp/services/csv_export.py +60 -0
- celerp-2.5.2/celerp/services/demo.py +1738 -0
- celerp-2.5.2/celerp/services/field_schema.py +259 -0
- celerp-2.5.2/celerp/services/fulfill.py +375 -0
- celerp-2.5.2/celerp/services/holdings.py +249 -0
- celerp-2.5.2/celerp/services/landed_cost.py +104 -0
- celerp-2.5.2/celerp/services/money.py +276 -0
- celerp-2.5.2/celerp/services/outbound_url.py +195 -0
- celerp-2.5.2/celerp/services/payments.py +112 -0
- celerp-2.5.2/celerp/services/physical_codes.py +152 -0
- celerp-2.5.2/celerp/services/pick.py +250 -0
- celerp-2.5.2/celerp/services/terms.py +82 -0
- celerp-2.5.2/celerp/services/update.py +855 -0
- celerp-2.5.2/celerp/session_gate.py +58 -0
- celerp-2.5.2/celerp.egg-info/PKG-INFO +397 -0
- celerp-2.5.2/celerp.egg-info/SOURCES.txt +701 -0
- celerp-2.5.2/celerp.egg-info/requires.txt +116 -0
- celerp-2.5.2/celerp.egg-info/scm_file_list.json +1392 -0
- celerp-2.5.2/conftest.py +708 -0
- celerp-2.5.2/constraints.txt +227 -0
- celerp-2.5.2/default_modules/celerp-accounting/celerp_accounting/routes.py +4194 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_accounting_banking_routers.py +84 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_accounting_gaps.py +641 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_cash_flow.py +443 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_journal_gl_soa.py +2392 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_reconciliation_agent.py +330 -0
- celerp-2.5.2/default_modules/celerp-accounting/tests/test_route_permissions.py +74 -0
- celerp-2.5.2/default_modules/celerp-admin/celerp_admin/routes.py +955 -0
- celerp-2.5.2/default_modules/celerp-ai/celerp_ai/routes.py +1526 -0
- celerp-2.5.2/default_modules/celerp-ai/celerp_ai/ui_routes.py +2170 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/_fixtures.py +140 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_agent_loop.py +560 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_batch.py +465 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_commercial_routing.py +198 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_confirm_race_pg.py +155 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_conversations.py +779 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_coverage_gaps.py +409 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_live_agent.py +161 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_llm.py +270 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_page_count.py +115 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_quota.py +129 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_router.py +295 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_routes_coverage.py +958 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_showcase_claims.py +80 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_ui_routes.py +785 -0
- celerp-2.5.2/default_modules/celerp-ai/tests/test_workflows.py +409 -0
- celerp-2.5.2/default_modules/celerp-backup/celerp_backup/routes.py +343 -0
- celerp-2.5.2/default_modules/celerp-connectors/__init__.py +64 -0
- celerp-2.5.2/default_modules/celerp-connectors/celerp_connectors/routes.py +758 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/conftest.py +99 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_connector_correctness.py +136 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_connectors.py +826 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_credentials_routes.py +590 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_images.py +147 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_outbound.py +231 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_rate_limiting.py +117 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_shopify.py +220 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_wiring.py +415 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_woocommerce.py +762 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_woocommerce_webhooks.py +140 -0
- celerp-2.5.2/default_modules/celerp-connectors/tests/test_xero.py +89 -0
- celerp-2.5.2/default_modules/celerp-contacts/celerp_contacts/routes.py +1181 -0
- celerp-2.5.2/default_modules/celerp-contacts/celerp_contacts/services.py +149 -0
- celerp-2.5.2/default_modules/celerp-docs/celerp_docs/doc_projections.py +492 -0
- celerp-2.5.2/default_modules/celerp-docs/celerp_docs/doc_service.py +1306 -0
- celerp-2.5.2/default_modules/celerp-docs/celerp_docs/routes.py +8223 -0
- celerp-2.5.2/default_modules/celerp-docs/celerp_docs/routes_payments.py +205 -0
- celerp-2.5.2/default_modules/celerp-docs/celerp_docs/routes_share.py +812 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_audits.py +817 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_cross_lot_settlement.py +168 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_freight_je.py +130 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_freight_lines.py +45 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_fulfill_no_split.py +59 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_fulfillment_activity.py +113 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_inbound_je_lifecycle.py +113 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_inventory_account_reconciliation.py +90 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_landed_receive.py +121 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_line_delete_persist.py +85 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_line_identifier.py +185 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_line_page_patch_truncate.py +263 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_concurrency.py +382 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_ids_filter.py +44 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_outcome_concurrency.py +633 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_page_no_full_state.py +154 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_quantity_integrity.py +370 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_query_pushdown.py +506 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_reprice.py +410 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_list_sell_by_and_reference.py +103 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_memo_close.py +176 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_memo_close_review_fixes.py +450 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_memo_lifecycle_concurrency.py +1082 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_memo_line_labels.py +191 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_memo_unfulfilled_filter.py +47 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_payment_void_activity.py +55 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_receive_sku_batch.py +74 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_send_visibility.py +188 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_service_lines.py +66 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_sold_label_ordering.py +95 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_void_guards.py +105 -0
- celerp-2.5.2/default_modules/celerp-docs/tests/test_writeoffs.py +711 -0
- celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/projections.py +525 -0
- celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/routes.py +4427 -0
- celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/routes_attachments.py +641 -0
- celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/search.py +262 -0
- celerp-2.5.2/default_modules/celerp-inventory/celerp_inventory/services.py +2252 -0
- celerp-2.5.2/default_modules/celerp-inventory/tests/test_import_agent_routes.py +242 -0
- celerp-2.5.2/default_modules/celerp-inventory/tests/test_import_service.py +555 -0
- celerp-2.5.2/default_modules/celerp-inventory/tests/test_physical_mutation_concurrency.py +235 -0
- celerp-2.5.2/default_modules/celerp-labels/celerp_labels/routes.py +305 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/celerp_manufacturing/routes.py +1866 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_auto_complete_on_finalize.py +171 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_bom_removed.py +119 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_build_api.py +181 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_item_recipe_api.py +130 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_item_workflow_api.py +120 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_manufacture_from_doc.py +167 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_manufacturing.py +190 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_manufacturing_module.py +622 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_phase2_manufacturing_validations.py +78 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_production_order.py +111 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_recost_api.py +125 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_run_records.py +445 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_to_make_allocation.py +224 -0
- celerp-2.5.2/default_modules/celerp-manufacturing/tests/test_work_centers_and_settings.py +393 -0
- celerp-2.5.2/default_modules/celerp-reports/tests/test_reports_full.py +57 -0
- celerp-2.5.2/default_modules/celerp-subscriptions/celerp_subscriptions/routes.py +335 -0
- celerp-2.5.2/default_modules/celerp-subscriptions/tests/test_subscriptions.py +412 -0
- celerp-2.5.2/default_modules/celerp-verticals/celerp_verticals/routes.py +257 -0
- celerp-2.5.2/default_modules/celerp-verticals/tests/test_verticals_routers.py +106 -0
- celerp-2.5.2/default_modules/first_party.lock.json +16 -0
- celerp-2.5.2/pyproject.toml +201 -0
- celerp-2.5.2/test_helpers.py +226 -0
- celerp-2.5.2/ui/api_client.py +3409 -0
- celerp-2.5.2/ui/app.py +548 -0
- celerp-2.5.2/ui/components/activity.py +1111 -0
- celerp-2.5.2/ui/components/cloud_gate.py +236 -0
- celerp-2.5.2/ui/components/report_kit.py +332 -0
- celerp-2.5.2/ui/components/shell.py +2326 -0
- celerp-2.5.2/ui/components/table.py +2578 -0
- celerp-2.5.2/ui/config.py +178 -0
- celerp-2.5.2/ui/locales/am.json +3205 -0
- celerp-2.5.2/ui/locales/ar.json +3205 -0
- celerp-2.5.2/ui/locales/de.json +3205 -0
- celerp-2.5.2/ui/locales/en.json +3205 -0
- celerp-2.5.2/ui/locales/es.json +3205 -0
- celerp-2.5.2/ui/locales/fr.json +3205 -0
- celerp-2.5.2/ui/locales/id.json +3205 -0
- celerp-2.5.2/ui/locales/it.json +3205 -0
- celerp-2.5.2/ui/locales/ja.json +3205 -0
- celerp-2.5.2/ui/locales/pt.json +3205 -0
- celerp-2.5.2/ui/locales/th.json +3205 -0
- celerp-2.5.2/ui/locales/vi.json +3205 -0
- celerp-2.5.2/ui/routes/account.py +631 -0
- celerp-2.5.2/ui/routes/auth.py +936 -0
- celerp-2.5.2/ui/routes/contacts.py +2456 -0
- celerp-2.5.2/ui/routes/csv_import.py +1265 -0
- celerp-2.5.2/ui/routes/dashboard.py +1100 -0
- celerp-2.5.2/ui/routes/documents.py +9937 -0
- celerp-2.5.2/ui/routes/inventory.py +7972 -0
- celerp-2.5.2/ui/routes/settings.py +4355 -0
- celerp-2.5.2/ui/routes/settings_cloud.py +1567 -0
- celerp-2.5.2/ui/routes/settings_connectors.py +1470 -0
- celerp-2.5.2/ui/routes/settings_inventory.py +672 -0
- celerp-2.5.2/ui/routes/settings_payments.py +184 -0
- celerp-2.5.2/ui/routes/setup.py +708 -0
- celerp-2.5.2/ui/routes/subscriptions.py +467 -0
- celerp-2.5.2/ui/routes/system_update.py +57 -0
- celerp-2.5.2/ui/static/app.css +3364 -0
- celerp-2.4.0/CONTRIBUTING.md +0 -169
- celerp-2.4.0/PKG-INFO +0 -345
- celerp-2.4.0/README.md +0 -172
- celerp-2.4.0/celerp/ai/batch.py +0 -228
- celerp-2.4.0/celerp/ai/commands.py +0 -184
- celerp-2.4.0/celerp/ai/conversations.py +0 -234
- celerp-2.4.0/celerp/ai/files.py +0 -49
- celerp-2.4.0/celerp/ai/llm.py +0 -110
- celerp-2.4.0/celerp/ai/memory.py +0 -102
- celerp-2.4.0/celerp/ai/page_count.py +0 -67
- celerp-2.4.0/celerp/ai/quota.py +0 -63
- celerp-2.4.0/celerp/ai/service.py +0 -272
- celerp-2.4.0/celerp/ai/tools.py +0 -287
- celerp-2.4.0/celerp/cli.py +0 -1379
- celerp-2.4.0/celerp/config.py +0 -566
- celerp-2.4.0/celerp/config_store.py +0 -203
- celerp-2.4.0/celerp/connectors/base.py +0 -159
- celerp-2.4.0/celerp/connectors/daily_scheduler.py +0 -173
- celerp-2.4.0/celerp/connectors/http.py +0 -81
- celerp-2.4.0/celerp/connectors/images.py +0 -148
- celerp-2.4.0/celerp/connectors/quickbooks.py +0 -290
- celerp-2.4.0/celerp/connectors/relay_token.py +0 -50
- celerp-2.4.0/celerp/connectors/shopify.py +0 -382
- celerp-2.4.0/celerp/connectors/sync_runner.py +0 -228
- celerp-2.4.0/celerp/connectors/upsert.py +0 -76
- celerp-2.4.0/celerp/connectors/webhooks.py +0 -116
- celerp-2.4.0/celerp/connectors/woocommerce.py +0 -457
- celerp-2.4.0/celerp/connectors/xero.py +0 -263
- celerp-2.4.0/celerp/embedded_pg.py +0 -302
- celerp-2.4.0/celerp/events/engine.py +0 -212
- celerp-2.4.0/celerp/events/schemas.py +0 -1339
- celerp-2.4.0/celerp/gateway/__init__.py +0 -102
- celerp-2.4.0/celerp/gateway/bootstrap.py +0 -101
- celerp-2.4.0/celerp/gateway/client.py +0 -952
- celerp-2.4.0/celerp/gateway/state.py +0 -893
- celerp-2.4.0/celerp/inventory_codes.py +0 -185
- celerp-2.4.0/celerp/main.py +0 -502
- celerp-2.4.0/celerp/migrations/_auto_stamp.py +0 -279
- celerp-2.4.0/celerp/migrations/_json_compat.py +0 -84
- celerp-2.4.0/celerp/migrations/env.py +0 -88
- celerp-2.4.0/celerp/migrations/versions/b3c4d5e6f7a8_expand_role_permissions_to_role_grants.py +0 -175
- celerp-2.4.0/celerp/migrations/versions/bc0d1e2f3a4b_barcode_unique_index.py +0 -119
- celerp-2.4.0/celerp/migrations/versions/d1e2f3a4b5c6_rfid_epc_unique_index.py +0 -44
- celerp-2.4.0/celerp/migrations/versions/f8a9b0c1d2e3_work_center_default_backfill.py +0 -93
- celerp-2.4.0/celerp/models/__init__.py +0 -12
- celerp-2.4.0/celerp/models/company.py +0 -80
- celerp-2.4.0/celerp/models/projections.py +0 -60
- celerp-2.4.0/celerp/models/sync_run.py +0 -36
- celerp-2.4.0/celerp/modules/api.py +0 -114
- celerp-2.4.0/celerp/modules/license.py +0 -244
- celerp-2.4.0/celerp/modules/loader.py +0 -1309
- celerp-2.4.0/celerp/modules/migrations_runner.py +0 -236
- celerp-2.4.0/celerp/modules/slots.py +0 -130
- celerp-2.4.0/celerp/output/doc_print.py +0 -611
- celerp-2.4.0/celerp/output/pdf.py +0 -517
- celerp-2.4.0/celerp/projections/engine.py +0 -182
- celerp-2.4.0/celerp/routers/auth.py +0 -534
- celerp-2.4.0/celerp/routers/companies.py +0 -2495
- celerp-2.4.0/celerp/routers/debug.py +0 -294
- celerp-2.4.0/celerp/routers/doctor.py +0 -894
- celerp-2.4.0/celerp/routers/health.py +0 -905
- celerp-2.4.0/celerp/routers/search.py +0 -305
- celerp-2.4.0/celerp/routers/system.py +0 -105
- celerp-2.4.0/celerp/services/attachments.py +0 -300
- celerp-2.4.0/celerp/services/auth.py +0 -339
- celerp-2.4.0/celerp/services/auto_je.py +0 -1408
- celerp-2.4.0/celerp/services/backup.py +0 -200
- celerp-2.4.0/celerp/services/backup_import.py +0 -516
- celerp-2.4.0/celerp/services/backup_repo.py +0 -241
- celerp-2.4.0/celerp/services/cost_visibility.py +0 -76
- celerp-2.4.0/celerp/services/demo.py +0 -1745
- celerp-2.4.0/celerp/services/field_schema.py +0 -247
- celerp-2.4.0/celerp/services/fulfill.py +0 -366
- celerp-2.4.0/celerp/services/holdings.py +0 -182
- celerp-2.4.0/celerp/services/landed_cost.py +0 -100
- celerp-2.4.0/celerp/services/money.py +0 -180
- celerp-2.4.0/celerp/services/payments.py +0 -113
- celerp-2.4.0/celerp/services/pick.py +0 -209
- celerp-2.4.0/celerp/session_gate.py +0 -80
- celerp-2.4.0/celerp.egg-info/PKG-INFO +0 -345
- celerp-2.4.0/celerp.egg-info/SOURCES.txt +0 -669
- celerp-2.4.0/celerp.egg-info/requires.txt +0 -48
- celerp-2.4.0/celerp.egg-info/scm_file_list.json +0 -1311
- celerp-2.4.0/celerp.egg-info/scm_version.json +0 -8
- celerp-2.4.0/conftest.py +0 -706
- celerp-2.4.0/default_modules/celerp-accounting/celerp_accounting/routes.py +0 -3906
- celerp-2.4.0/default_modules/celerp-accounting/tests/test_accounting_banking_routers.py +0 -84
- celerp-2.4.0/default_modules/celerp-accounting/tests/test_accounting_gaps.py +0 -641
- celerp-2.4.0/default_modules/celerp-accounting/tests/test_cash_flow.py +0 -443
- celerp-2.4.0/default_modules/celerp-accounting/tests/test_journal_gl_soa.py +0 -2390
- celerp-2.4.0/default_modules/celerp-accounting/tests/test_route_permissions.py +0 -75
- celerp-2.4.0/default_modules/celerp-admin/celerp_admin/routes.py +0 -909
- celerp-2.4.0/default_modules/celerp-ai/celerp_ai/routes.py +0 -755
- celerp-2.4.0/default_modules/celerp-ai/celerp_ai/ui_routes.py +0 -1111
- celerp-2.4.0/default_modules/celerp-ai/tests/test_batch.py +0 -338
- celerp-2.4.0/default_modules/celerp-ai/tests/test_commercial_routing.py +0 -219
- celerp-2.4.0/default_modules/celerp-ai/tests/test_conversations.py +0 -324
- celerp-2.4.0/default_modules/celerp-ai/tests/test_coverage_gaps.py +0 -595
- celerp-2.4.0/default_modules/celerp-ai/tests/test_llm.py +0 -158
- celerp-2.4.0/default_modules/celerp-ai/tests/test_page_count.py +0 -172
- celerp-2.4.0/default_modules/celerp-ai/tests/test_quota.py +0 -110
- celerp-2.4.0/default_modules/celerp-ai/tests/test_router.py +0 -299
- celerp-2.4.0/default_modules/celerp-ai/tests/test_routes_coverage.py +0 -394
- celerp-2.4.0/default_modules/celerp-ai/tests/test_service.py +0 -217
- celerp-2.4.0/default_modules/celerp-ai/tests/test_tools.py +0 -354
- celerp-2.4.0/default_modules/celerp-backup/celerp_backup/routes.py +0 -318
- celerp-2.4.0/default_modules/celerp-connectors/__init__.py +0 -65
- celerp-2.4.0/default_modules/celerp-connectors/celerp_connectors/routes.py +0 -301
- celerp-2.4.0/default_modules/celerp-connectors/tests/conftest.py +0 -82
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_connector_correctness.py +0 -133
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_connectors.py +0 -715
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_credentials_routes.py +0 -163
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_images.py +0 -138
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_outbound.py +0 -293
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_rate_limiting.py +0 -71
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_shopify.py +0 -183
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_wiring.py +0 -269
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_woocommerce.py +0 -269
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_woocommerce_webhooks.py +0 -114
- celerp-2.4.0/default_modules/celerp-connectors/tests/test_xero.py +0 -85
- celerp-2.4.0/default_modules/celerp-contacts/celerp_contacts/routes.py +0 -1140
- celerp-2.4.0/default_modules/celerp-contacts/celerp_contacts/services.py +0 -126
- celerp-2.4.0/default_modules/celerp-docs/celerp_docs/doc_projections.py +0 -496
- celerp-2.4.0/default_modules/celerp-docs/celerp_docs/doc_service.py +0 -319
- celerp-2.4.0/default_modules/celerp-docs/celerp_docs/routes.py +0 -7279
- celerp-2.4.0/default_modules/celerp-docs/celerp_docs/routes_payments.py +0 -183
- celerp-2.4.0/default_modules/celerp-docs/celerp_docs/routes_share.py +0 -744
- celerp-2.4.0/default_modules/celerp-docs/tests/test_audits.py +0 -818
- celerp-2.4.0/default_modules/celerp-docs/tests/test_cross_lot_settlement.py +0 -168
- celerp-2.4.0/default_modules/celerp-docs/tests/test_freight_je.py +0 -130
- celerp-2.4.0/default_modules/celerp-docs/tests/test_freight_lines.py +0 -45
- celerp-2.4.0/default_modules/celerp-docs/tests/test_fulfill_no_split.py +0 -59
- celerp-2.4.0/default_modules/celerp-docs/tests/test_fulfillment_activity.py +0 -113
- celerp-2.4.0/default_modules/celerp-docs/tests/test_inbound_je_lifecycle.py +0 -113
- celerp-2.4.0/default_modules/celerp-docs/tests/test_inventory_account_reconciliation.py +0 -90
- celerp-2.4.0/default_modules/celerp-docs/tests/test_landed_receive.py +0 -121
- celerp-2.4.0/default_modules/celerp-docs/tests/test_line_delete_persist.py +0 -85
- celerp-2.4.0/default_modules/celerp-docs/tests/test_line_identifier.py +0 -185
- celerp-2.4.0/default_modules/celerp-docs/tests/test_line_page_patch_truncate.py +0 -263
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_concurrency.py +0 -291
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_outcome_concurrency.py +0 -632
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_page_no_full_state.py +0 -154
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_quantity_integrity.py +0 -370
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_query_pushdown.py +0 -410
- celerp-2.4.0/default_modules/celerp-docs/tests/test_list_sell_by_and_reference.py +0 -103
- celerp-2.4.0/default_modules/celerp-docs/tests/test_memo_close.py +0 -176
- celerp-2.4.0/default_modules/celerp-docs/tests/test_memo_close_review_fixes.py +0 -450
- celerp-2.4.0/default_modules/celerp-docs/tests/test_memo_lifecycle_concurrency.py +0 -992
- celerp-2.4.0/default_modules/celerp-docs/tests/test_memo_line_labels.py +0 -191
- celerp-2.4.0/default_modules/celerp-docs/tests/test_memo_unfulfilled_filter.py +0 -47
- celerp-2.4.0/default_modules/celerp-docs/tests/test_payment_void_activity.py +0 -55
- celerp-2.4.0/default_modules/celerp-docs/tests/test_receive_sku_batch.py +0 -73
- celerp-2.4.0/default_modules/celerp-docs/tests/test_send_visibility.py +0 -188
- celerp-2.4.0/default_modules/celerp-docs/tests/test_service_lines.py +0 -66
- celerp-2.4.0/default_modules/celerp-docs/tests/test_sold_label_ordering.py +0 -95
- celerp-2.4.0/default_modules/celerp-docs/tests/test_void_guards.py +0 -105
- celerp-2.4.0/default_modules/celerp-docs/tests/test_writeoffs.py +0 -711
- celerp-2.4.0/default_modules/celerp-inventory/celerp_inventory/projections.py +0 -492
- celerp-2.4.0/default_modules/celerp-inventory/celerp_inventory/routes.py +0 -4166
- celerp-2.4.0/default_modules/celerp-inventory/celerp_inventory/routes_attachments.py +0 -584
- celerp-2.4.0/default_modules/celerp-inventory/celerp_inventory/search.py +0 -265
- celerp-2.4.0/default_modules/celerp-inventory/celerp_inventory/services.py +0 -289
- celerp-2.4.0/default_modules/celerp-labels/celerp_labels/routes.py +0 -309
- celerp-2.4.0/default_modules/celerp-manufacturing/celerp_manufacturing/routes.py +0 -1858
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_auto_complete_on_finalize.py +0 -171
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_bom_removed.py +0 -119
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_build_api.py +0 -181
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_item_recipe_api.py +0 -130
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_item_workflow_api.py +0 -120
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_manufacture_from_doc.py +0 -167
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_manufacturing.py +0 -190
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_manufacturing_module.py +0 -622
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_phase2_manufacturing_validations.py +0 -78
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_production_order.py +0 -111
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_recost_api.py +0 -125
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_run_records.py +0 -445
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_to_make_allocation.py +0 -224
- celerp-2.4.0/default_modules/celerp-manufacturing/tests/test_work_centers_and_settings.py +0 -393
- celerp-2.4.0/default_modules/celerp-reports/tests/test_reports_full.py +0 -57
- celerp-2.4.0/default_modules/celerp-subscriptions/celerp_subscriptions/routes.py +0 -324
- celerp-2.4.0/default_modules/celerp-subscriptions/tests/test_subscriptions.py +0 -394
- celerp-2.4.0/default_modules/celerp-verticals/celerp_verticals/routes.py +0 -256
- celerp-2.4.0/default_modules/celerp-verticals/tests/test_verticals_routers.py +0 -106
- celerp-2.4.0/default_modules/first_party.lock.json +0 -16
- celerp-2.4.0/pyproject.toml +0 -165
- celerp-2.4.0/test_helpers.py +0 -194
- celerp-2.4.0/ui/api_client.py +0 -3205
- celerp-2.4.0/ui/app.py +0 -544
- celerp-2.4.0/ui/components/activity.py +0 -1106
- celerp-2.4.0/ui/components/cloud_gate.py +0 -236
- celerp-2.4.0/ui/components/report_kit.py +0 -340
- celerp-2.4.0/ui/components/shell.py +0 -2151
- celerp-2.4.0/ui/components/table.py +0 -2563
- celerp-2.4.0/ui/config.py +0 -155
- celerp-2.4.0/ui/locales/am.json +0 -3116
- celerp-2.4.0/ui/locales/ar.json +0 -3116
- celerp-2.4.0/ui/locales/de.json +0 -3116
- celerp-2.4.0/ui/locales/en.json +0 -3116
- celerp-2.4.0/ui/locales/es.json +0 -3116
- celerp-2.4.0/ui/locales/fr.json +0 -3116
- celerp-2.4.0/ui/locales/id.json +0 -3116
- celerp-2.4.0/ui/locales/it.json +0 -3116
- celerp-2.4.0/ui/locales/ja.json +0 -3116
- celerp-2.4.0/ui/locales/pt.json +0 -3116
- celerp-2.4.0/ui/locales/th.json +0 -3116
- celerp-2.4.0/ui/locales/vi.json +0 -3116
- celerp-2.4.0/ui/routes/account.py +0 -638
- celerp-2.4.0/ui/routes/auth.py +0 -885
- celerp-2.4.0/ui/routes/contacts.py +0 -2439
- celerp-2.4.0/ui/routes/csv_import.py +0 -1605
- celerp-2.4.0/ui/routes/dashboard.py +0 -1101
- celerp-2.4.0/ui/routes/documents.py +0 -9802
- celerp-2.4.0/ui/routes/inventory.py +0 -8029
- celerp-2.4.0/ui/routes/settings.py +0 -4262
- celerp-2.4.0/ui/routes/settings_cloud.py +0 -1535
- celerp-2.4.0/ui/routes/settings_connectors.py +0 -1153
- celerp-2.4.0/ui/routes/settings_inventory.py +0 -672
- celerp-2.4.0/ui/routes/settings_payments.py +0 -182
- celerp-2.4.0/ui/routes/setup.py +0 -711
- celerp-2.4.0/ui/routes/subscriptions.py +0 -481
- celerp-2.4.0/ui/static/app.css +0 -3297
- {celerp-2.4.0 → celerp-2.5.2}/CLA.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/LICENSING.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/MANIFEST.in +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/NOTICE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/alembic.ini +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/__main__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/ai/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/ai/cleanup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/ai/intent.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/ai/models.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/alembic.ini +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/alembic_config.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/capacity.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/compat.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/compute/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/compute/aggregations.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/compute/valuation.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/connectors/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/connectors/registry.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/connectors/util.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/constants.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/db.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/entitlement_preflight.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/events/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/events/types.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/gateway/fixtures/entitlement_flags_fixture.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/importers/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/importers/importer.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/importers/schema.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/middleware.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/README.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/_data_reconcile.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/script.py.mako +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/a0b1c2d3e4f5_seed_landed_cost_clearing_accounts.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/a1b2c3d4e5f6_add_doc_share_tokens.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/b1c2d3e4f5a6_add_supporter_badges.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/b2c3d4e5f6a7_add_import_batches.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/c1d2e3f4a5b6_add_marketplace.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/c2d3e4f5a6b7_add_is_sync_to_shopify.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/c4d5e6f7a8b9_account_cash_flow_category.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/c9d8e7f6a5b4_seed_shrinkage_writeoff_account.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/d0e1f2a3b4c5_add_share_token_expiry.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/d2e3f4a5b6c7_add_password_reset_token.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/d5e6f7a8b9c0_rename_fx_rounding_to_fx_difference.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/e3f4a5b6c7d8_add_company_is_active.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/e4f5a6b7c8d9_backfill_connector_idempotency_key.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/e7c9a1b3d5f2_work_center_default_columns.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/f1a2b3c4d5e6_move_accounts_marketplace_to_modules.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/f3a4b5c6d7e8_purge_session_registry.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/f6a7b8c9d0e1_seed_fx_rounding_account.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/fd5de461e14e_initial_schema.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/g1h2i3j4k5l6_add_consignment_flag.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/h2i3j4k5l6m7_add_bank_accounts_and_reconciliation.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/j4k5l6m7n8o9_labels_db_persistence.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/k5l6m7n8o9p0_add_reconciliation_v2.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/l6m7n8o9p0q1_add_sync_runs_table.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/m7n8o9p0q1r2_add_connector_configs_and_outbound_queue.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/n8o9p0q1r2s3_backfill_payment_date.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/o9p0q1r2s3t4_backfill_item_price_fields.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/p1q2r3s4t5u6_add_session_registry_and_user_auth_state.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/q2r3s4t5u6v7_add_system_runtime_state.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/r3s4t5u6v7w8_add_projections_company_entity_type_index.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/s4t5u6v7w8x9_drop_user_company_id_role.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/t5u6v7w8x9y0_seed_inventory_sub_accounts.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/u6v7w8x9y0z1_backfill_item_prices_from_attributes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/v7w8x9y0z1a2_backfill_purchase_unit_defaults.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/w8x9y0z1a2b3_backfill_category_unit_defaults.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/x7y8z9a0b1c2_add_projection_created_at.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/y8z9a0b1c2d3_per_company_ledger_idempotency.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/migrations/versions/z9a0b1c2d3e4_work_centers.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/accounting.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/ai.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/auth.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/base.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/connector_config.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/import_batch.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/ledger.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/marketplace.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/notification.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/share.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/models/supporter.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/audit.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/demotion.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/importer.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/meta.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/references.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/modules/registry.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/notifications/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/notifications/service.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/notifications/sse.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/output/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/output/branding.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/output/share_render.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/handlers/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/handlers/marketplace.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/handlers/scanning.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/handlers/shopify.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/projections/handlers/system.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/attachments.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/events.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/ledger.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/notifications.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/routers/stars.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/schemas/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/activity_redaction.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/backup_export.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/backup_scheduler.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/backup_state.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/cogs_backfill.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/dev_release_guard.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/document_lines.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/email.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/je_keys.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/line_measures.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/list_behavior.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/permissions.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/pricing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/relay_share.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/reorder.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/runtime_state.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/session_tracker.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/shipping.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/star_cta.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/status_doc_backfill.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/supporter_badge.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/system_health.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/services/units.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp/tax_regimes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp.egg-info/dependency_links.txt +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp.egg-info/entry_points.txt +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/celerp.egg-info/top_level.txt +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/conftest_support.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/api_setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/csv_parser.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/matcher.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/models.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/projections.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/celerp_accounting/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/balance-sheet.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/cash-flow.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-csv.csv +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-print.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/extended-journal.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/general-ledger.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal-csv.csv +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal-print.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/journal.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/ledger.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/pnl.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/statement.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/report_goldens/trial-balance.html +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_banking.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_accounting_import_idempotency.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_financial_reports_ui.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_journal_gl_soa_ui.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_reconciliation_v2.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-accounting/tests/test_reports_end_to_end.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-admin/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-admin/celerp_admin/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-admin/celerp_admin/setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/celerp_ai/setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/conftest.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_cleanup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_intent.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_memory.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-ai/tests/test_models.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-backup/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-backup/celerp_backup/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-backup/celerp_backup/setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-connectors/celerp_connectors/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-connectors/celerp_connectors/models.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_compliance.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-connectors/tests/test_quickbooks.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/migrations.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/projections.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-contacts/celerp_contacts/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-dashboard/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-dashboard/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-dashboard/celerp_dashboard/setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/api_setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/doc_constants.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/doc_email.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/models_share.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/sequences.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/taxes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/celerp_docs/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/conftest.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_bulk_payment_alloc_lock.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_consolidate_lots.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-docs/tests/test_memo_close_projection.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/models_import_batch.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/routes_scanning.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/celerp_inventory/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_item_recipe_projection.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_item_workflow_projection.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-inventory/tests/test_landed_cost_projection.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/am.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/ar.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/de.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/en.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/es.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/fr.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/id.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/it.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/ja.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/pt.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/th.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/locales/vi.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/models.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/presets.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/service.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/celerp_labels/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/requirements.txt +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/tests/test_labels.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-labels/tests/test_labels_module.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/costing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/expansion.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/labor.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/migrations.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/projection_handler.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/celerp_manufacturing/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/requirements.txt +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_completion_lock_order.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_labor_providers.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_manufacturing_import_idempotency.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_mfg_events.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_recipe_costing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_recipe_expansion.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_where_used.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-manufacturing/tests/test_workflow_time.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/api_setup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/celerp_reports/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-reports/tests/test_reports_unit.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/celerp_subscriptions/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-subscriptions/tests/test_subscriptions_ui.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/LICENSE +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/accessory_fashion.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/activewear.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/art_photography.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/audio_equipment.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bag_handbag.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/banknote.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beauty_tool.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bed_bedroom.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beer.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/beverage_nonalc.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/body_part_auto.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/book.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bottoms.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/brake_suspension.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/bullion_coin.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/camera.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/colored_stone.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/comic.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/commercial_space.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/component_part.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/confectionery.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/consulting_service.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/decorative_art.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/diamond.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/drawing.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/dress_jumpsuit.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_auto.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_component.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/emerald.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/engine_part.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fastener.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fertilizer_chemical.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/film_video.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fine_writing_instrument.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fluid_lubricant.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/footwear.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fragrance.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_food.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_produce.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/frozen_food.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/gaming_console.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/gold_bullion.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/grain_cereal.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/haircare.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/hand_tool.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/ingredient_bulk.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/interior_part.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/jewelry.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/kitchen_dining.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/laptop.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/lighting.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/livestock_feed.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/makeup.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/measuring_instrument.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/medal_token.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/mineral_specimen.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/mobile_phone.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/music_cd.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/music_vinyl.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/nail.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/numismatic_coin.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/outdoor_furniture.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/outerwear.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/packaged_food.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/painting.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/parking_bay.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/pearl.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/personal_care.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/pipe_plumbing.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/platinum_bullion.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/power_tool.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/print_edition.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/residential_unit.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/rough_gemstone.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/ruby.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/saas_plan.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/safety_ppe.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/sapphire.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/sculpture.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/seating.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/seeds.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/silver_bullion.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/skincare.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/soft_furnishing.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/software_addon.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/software_license.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/spirit.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/storage_furniture.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/swimwear.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/table_desk.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tablet.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tire_wheel.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tops.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/trading_card.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/tv_display.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/video_game.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/watch.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/watch_strap.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/categories/wine.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/agricultural.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/artwork.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/automotive.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/blank.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/books_media.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/coins_precious_metals.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/consulting.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/cosmetics.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/electronics.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/fashion.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/food_beverage.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/furniture.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/gemstones.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/hardware.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/property_rental.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/saas.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/watches.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/presets/wine_spirits.json +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/celerp_verticals/ui_routes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/default_modules/celerp-verticals/tests/test_verticals.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/legal/OFFICIAL-COMPONENTS.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/legal/TRADEMARK.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.installer.yaml +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.locale.en-US.yaml +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/packaging/winget/Celerp.Celerp.yaml +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/packaging/winget/README.md +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/setup.cfg +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/attrs.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/backup.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/currency.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/files.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/journal.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/notes.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/components/phone.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/i18n.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/marketplace_catalog.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/__init__.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/accounting.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/accounting_import.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/commercial.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/docs_import.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/events.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/financial_reports.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/lists_import.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/manufacturing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/modules_page.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/notifications.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/reconciliation.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/reports.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/search.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_accounting.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_contacts.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_general.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_import.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_manufacturing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_purchasing.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/settings_sales.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/stars.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/routes/subscriptions_import.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/security.py +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/htmx.min.js +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/icon.png +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/logo.png +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/img/flags.webp +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/img/flags@2x.webp +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInput.min.css +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInput.min.js +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/intlTelInputWithUtils.min.js +0 -0
- {celerp-2.4.0 → celerp-2.5.2}/ui/static/vendor/intl-tel-input/utils.js +0 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Contributing to Celerp
|
|
2
|
+
|
|
3
|
+
Issues and PRs welcome. This guide covers the development workflow.
|
|
4
|
+
|
|
5
|
+
## Contribution terms
|
|
6
|
+
|
|
7
|
+
Celerp is multi-licensed (see `LICENSING.md`). What the public *receives* depends on the component
|
|
8
|
+
(BUSL-1.1 core, MIT modules, proprietary layer). What you *grant us* when contributing is governed as
|
|
9
|
+
follows:
|
|
10
|
+
|
|
11
|
+
- **Anything accepted into an official Celerp repository** - including the MIT modules - requires a signed
|
|
12
|
+
**Contributor License Agreement** (`CLA.md`). The module stays MIT for everyone downstream; the CLA only
|
|
13
|
+
governs the rights you grant Celerp (so we can keep multi-licensing, move code between layers, and offer
|
|
14
|
+
commercial terms). Open an issue before substantial work and we will arrange signing.
|
|
15
|
+
- **Third-party modules you do not submit upstream** (e.g. your own marketplace modules) need no CLA - a
|
|
16
|
+
Developer Certificate of Origin sign-off (`git commit -s`) is sufficient for those. The MIT modules are
|
|
17
|
+
the recommended starting point: fork one, rename it (see `legal/TRADEMARK.md`), and license your derivative
|
|
18
|
+
however you wish.
|
|
19
|
+
|
|
20
|
+
**How CLA acceptance works.** Contributions to official Celerp repositories require a one-time CLA
|
|
21
|
+
acceptance per user. If you haven't accepted yet, you'll be linked to a page that shows the agreement and
|
|
22
|
+
records your acceptance so that we know that you've read our rules and expectations. After that you can
|
|
23
|
+
contribute freely.
|
|
24
|
+
|
|
25
|
+
Trademarks are not licensed by any code license; see `legal/TRADEMARK.md`.
|
|
26
|
+
|
|
27
|
+
## Environment variables
|
|
28
|
+
|
|
29
|
+
| Variable | Default | Notes |
|
|
30
|
+
|----------|---------|-------|
|
|
31
|
+
| `DATABASE_URL` | _(required)_ | `postgresql+asyncpg://user:pass@localhost:5432/dbname` |
|
|
32
|
+
| `JWT_SECRET` | _(required)_ | Fatal on startup if unset or default in production |
|
|
33
|
+
| `ALLOW_INSECURE_JWT` | `false` | Set `true` in dev/CI |
|
|
34
|
+
| `CELERP_PUBLIC_URL` | _(optional)_ | Base URL for share links |
|
|
35
|
+
| `MODULE_DIR` | `default_modules` | Module package directory |
|
|
36
|
+
| `ENABLED_MODULES` | _(all)_ | Comma-separated list to load |
|
|
37
|
+
|
|
38
|
+
## CLI commands (pip install)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
celerp init # first-time setup: DB + migrations + config, then launches the servers
|
|
42
|
+
celerp init --no-start # same setup, but exit WITHOUT launching (service-managed/headless)
|
|
43
|
+
celerp start # launch API + UI (e.g. from systemd, after `init --no-start`)
|
|
44
|
+
celerp migrate # apply pending migrations after an upgrade
|
|
45
|
+
celerp status # show config, DB connection, migration state
|
|
46
|
+
celerp demo # seed demo data
|
|
47
|
+
celerp upgrade # pip install --upgrade celerp + migrate
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Init flags
|
|
51
|
+
|
|
52
|
+
| Flag | Default | Notes |
|
|
53
|
+
|------|---------|-------|
|
|
54
|
+
| `--db-url` | `postgresql+asyncpg://celerp:celerp@localhost:5432/celerp` | PostgreSQL connection URL |
|
|
55
|
+
| `--api-port` | `8000` | API server port |
|
|
56
|
+
| `--ui-port` | `8080` | UI server port |
|
|
57
|
+
| `--cloud-token` | _(empty)_ | Celerp Connect token (optional) |
|
|
58
|
+
| `--force` | off | Overwrite existing config |
|
|
59
|
+
| `--yes` / `-y` | off | Skip the `--force` wipe confirmation (non-interactive) |
|
|
60
|
+
| `--no-start` | off | Set up, then exit WITHOUT launching servers (service-managed/headless) |
|
|
61
|
+
| `--embedded` | off | Force the bundled PostgreSQL even if a server is reachable (cannot combine with `--db-url`) |
|
|
62
|
+
| `--no-embedded` | off | Never fall back to the bundled PostgreSQL; require an external server |
|
|
63
|
+
|
|
64
|
+
To change ports after init, edit `~/.config/celerp/config.toml` directly.
|
|
65
|
+
|
|
66
|
+
### External vs embedded PostgreSQL
|
|
67
|
+
|
|
68
|
+
`celerp init` picks the database automatically, and **an existing server always wins**:
|
|
69
|
+
|
|
70
|
+
1. `--db-url` given → that external server (no detection).
|
|
71
|
+
2. else a PostgreSQL server reachable on `localhost:5432` → use it (as root, init
|
|
72
|
+
provisions the role/database via `sudo -u postgres psql`; otherwise it prints the
|
|
73
|
+
`CREATE USER`/`CREATE DATABASE` to run).
|
|
74
|
+
3. else the **bundled** PostgreSQL 17 — a self-contained cluster under
|
|
75
|
+
`~/.config/celerp/pgdata`, started from binaries shipped in the
|
|
76
|
+
[`celerp-postgres`](https://github.com/celerp/celerp-postgres) wheel. No `sudo`, no
|
|
77
|
+
system service. Available on Linux x86_64/arm64 (glibc and musl/Alpine) and Windows
|
|
78
|
+
x64, any CPython; on macOS 26+ opt in with `pip install celerp-postgres`. Elsewhere
|
|
79
|
+
init asks you to install PostgreSQL.
|
|
80
|
+
|
|
81
|
+
Override the detection with `--embedded` / `--no-embedded`. The chosen mode is written to
|
|
82
|
+
`config.toml` as `[database] embedded = true|<absent>` and preserved across `--force`
|
|
83
|
+
re-inits, so an external install never silently switches to the bundled cluster.
|
|
84
|
+
|
|
85
|
+
**Moving bundled data to an external server** (e.g. outgrowing single-machine): dump from
|
|
86
|
+
the bundled cluster and restore into the target, using the bundled tools so versions match.
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
BIN=$(celerp status >/dev/null; python -c "from celerp import embedded_pg; print(embedded_pg.bin_dir())")
|
|
90
|
+
"$BIN/pg_dump" "$(python -c "from celerp import embedded_pg,pathlib; from celerp.config import config_path; print(embedded_pg.ensure_cluster(config_path().parent).replace('+asyncpg',''))")" \
|
|
91
|
+
| psql "postgresql://celerp:celerp@newhost:5432/celerp"
|
|
92
|
+
celerp init --force --db-url "postgresql+asyncpg://celerp:celerp@newhost:5432/celerp"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Run as a service (systemd)
|
|
96
|
+
|
|
97
|
+
`celerp init` launches the servers and blocks (good for the one-command desktop
|
|
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`.
|
|
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
|
+
```
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# First boot against a system PostgreSQL: provision DB + migrations + config, then
|
|
114
|
+
# exit (do not block). Run as root so init can create the role/database.
|
|
115
|
+
sudo /opt/celerp/bin/celerp init --no-start \
|
|
116
|
+
--db-url "postgresql+asyncpg://celerp:<password>@localhost:5432/celerp" \
|
|
117
|
+
--api-port 8000 --ui-port 8080
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Prefer the bundled database? Drop `--db-url` (and the `sudo` — the bundled cluster needs
|
|
121
|
+
neither) and run `celerp init --no-start` as the service user. The cluster then lives under
|
|
122
|
+
that user's `~/.config/celerp/pgdata`, and the systemd unit needs no `postgresql.service`
|
|
123
|
+
dependency.
|
|
124
|
+
|
|
125
|
+
```ini
|
|
126
|
+
# /etc/systemd/system/celerp.service
|
|
127
|
+
[Unit]
|
|
128
|
+
Description=Celerp
|
|
129
|
+
# Drop the postgresql.service dependency line when using the bundled database.
|
|
130
|
+
After=network.target postgresql.service
|
|
131
|
+
|
|
132
|
+
[Service]
|
|
133
|
+
ExecStart=/opt/celerp/bin/celerp start
|
|
134
|
+
Restart=on-failure
|
|
135
|
+
User=celerp
|
|
136
|
+
|
|
137
|
+
[Install]
|
|
138
|
+
WantedBy=multi-user.target
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
sudo systemctl enable --now celerp
|
|
143
|
+
```
|
|
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
|
+
|
|
155
|
+
## Troubleshooting
|
|
156
|
+
|
|
157
|
+
| Error | Fix |
|
|
158
|
+
|-------|-----|
|
|
159
|
+
| `fe_sendauth: no password supplied` | Run `set -a && source .env && set +a` before alembic |
|
|
160
|
+
| `password authentication failed` | Run `ALTER USER celerp WITH PASSWORD 'devpass';` via psql |
|
|
161
|
+
| `role "celerp" does not exist` | Run the `CREATE USER` command from README |
|
|
162
|
+
| `FATAL: JWT_SECRET is set to the default` | Generate with `openssl rand -hex 32` or set `ALLOW_INSECURE_JWT=true` |
|
|
163
|
+
| `Directory 'static' does not exist` | Run uvicorn from the repo root, not a subdirectory |
|
|
164
|
+
| `System already bootstrapped` | Drop and recreate the DB, or `DELETE FROM users;` via psql |
|
|
165
|
+
|
|
166
|
+
## Module system
|
|
167
|
+
|
|
168
|
+
Each module is a self-contained Python package under `default_modules/`. A module registers:
|
|
169
|
+
|
|
170
|
+
- **API routes** via a FastAPI router
|
|
171
|
+
- **Projections** that materialize ledger events into queryable state
|
|
172
|
+
- **UI routes** via FastHTML
|
|
173
|
+
- **Nav slots** for sidebar entries
|
|
174
|
+
|
|
175
|
+
To add a new module, follow the pattern in any existing module (e.g. `celerp-inventory`). Modules are discovered and loaded at startup based on `ENABLED_MODULES`.
|
|
176
|
+
|
|
177
|
+
## Coding style
|
|
178
|
+
|
|
179
|
+
- DRY, SOLID, KISS
|
|
180
|
+
- Small pure functions, explicit contracts, deterministic behavior
|
|
181
|
+
- Tests use SQLite in-memory - no Postgres required
|
|
182
|
+
- Name test files after the module they test
|
|
183
|
+
- Use `conftest.py` for shared fixtures
|
|
184
|
+
|
|
185
|
+
## License
|
|
186
|
+
|
|
187
|
+
Celerp is multi-licensed (see [LICENSING.md](LICENSING.md)). Your contribution is governed by the
|
|
188
|
+
**Contribution terms** at the top of this file (a signed CLA for anything accepted upstream, including
|
|
189
|
+
the MIT modules; DCO for third-party modules you keep). License headers follow the per-path policy in
|
|
190
|
+
`LICENSING.md` and are enforced by `scripts/licenses.py`.
|
celerp-2.5.2/PKG-INFO
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: celerp
|
|
3
|
+
Version: 2.5.2
|
|
4
|
+
Summary: Free, self-hosted ERP for small businesses
|
|
5
|
+
License: Business Source License 1.1
|
|
6
|
+
|
|
7
|
+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
8
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
9
|
+
|
|
10
|
+
-----------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
|
|
14
|
+
Licensor: Noah Severs
|
|
15
|
+
Licensed Work: Celerp
|
|
16
|
+
The Licensed Work is (c) 2026 Noah Severs
|
|
17
|
+
Additional Use Grant: You may use the Licensed Work in production to operate
|
|
18
|
+
Celerp for your own internal business purposes, including
|
|
19
|
+
self-hosted use by your company and its affiliates. This
|
|
20
|
+
Additional Use Grant does not include offering the Licensed
|
|
21
|
+
Work, modified versions of the Licensed Work, or a
|
|
22
|
+
substantially similar competing product as a hosted service,
|
|
23
|
+
SaaS service, managed service, OEM product, or white-label
|
|
24
|
+
product to third parties without a commercial agreement with
|
|
25
|
+
Licensor.
|
|
26
|
+
|
|
27
|
+
Change Date: 2029-01-01
|
|
28
|
+
|
|
29
|
+
Change License: Apache License, Version 2.0
|
|
30
|
+
|
|
31
|
+
For information about alternative licensing arrangements for the Licensed Work
|
|
32
|
+
(including commercial licensing, OEM agreements, and white-label inquiries),
|
|
33
|
+
please contact https://celerp.com.
|
|
34
|
+
|
|
35
|
+
-----------------------------------------------------------------------------
|
|
36
|
+
|
|
37
|
+
Notice
|
|
38
|
+
|
|
39
|
+
The Business Source License (this document, or the "License") is not an Open
|
|
40
|
+
Source license. However, the Licensed Work will eventually be made available
|
|
41
|
+
under an Open Source License, as stated in this License.
|
|
42
|
+
|
|
43
|
+
-----------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
Terms
|
|
46
|
+
|
|
47
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
48
|
+
works, redistribute, and make non-production use of the Licensed Work. The
|
|
49
|
+
Licensor may make an Additional Use Grant, above, permitting limited production
|
|
50
|
+
use.
|
|
51
|
+
|
|
52
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
53
|
+
available distribution of a specific version of the Licensed Work under this
|
|
54
|
+
License, whichever comes first, the Licensor hereby grants you rights under
|
|
55
|
+
the terms of the Change License, and the rights granted in the paragraph
|
|
56
|
+
above terminate.
|
|
57
|
+
|
|
58
|
+
If your use of the Licensed Work does not comply with the requirements
|
|
59
|
+
currently in effect as described in this License, you must purchase a
|
|
60
|
+
commercial license from the Licensor, its affiliated entities, or authorized
|
|
61
|
+
resellers, or you must refrain from using the Licensed Work.
|
|
62
|
+
|
|
63
|
+
All copies of the original and modified Licensed Work, and derivative works of
|
|
64
|
+
the Licensed Work, are subject to this License. This License applies
|
|
65
|
+
separately for each version of the Licensed Work and the Change Date may vary
|
|
66
|
+
for each version of the Licensed Work released by Licensor.
|
|
67
|
+
|
|
68
|
+
You must conspicuously display this License on each original or modified copy
|
|
69
|
+
of the Licensed Work. If you receive the Licensed Work in original or modified
|
|
70
|
+
form from a third party, the terms and conditions set forth in this License
|
|
71
|
+
apply to your use of that work.
|
|
72
|
+
|
|
73
|
+
Any use of the Licensed Work in violation of this License will automatically
|
|
74
|
+
terminate your rights under this License for the current and all other
|
|
75
|
+
versions of the Licensed Work.
|
|
76
|
+
|
|
77
|
+
This License does not grant you any right in any trademark or logo of Licensor
|
|
78
|
+
or its affiliates (provided that you may use a trademark or logo of Licensor
|
|
79
|
+
as expressly required by this License).
|
|
80
|
+
|
|
81
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
|
|
82
|
+
"AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
|
|
83
|
+
OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY,
|
|
84
|
+
FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
|
85
|
+
|
|
86
|
+
MariaDB hereby grants you permission to use this License's text to license
|
|
87
|
+
your works, and to refer to it using the trademark "Business Source License",
|
|
88
|
+
as long as you comply with the Covenants of Licensor below.
|
|
89
|
+
|
|
90
|
+
-----------------------------------------------------------------------------
|
|
91
|
+
|
|
92
|
+
Covenants of Licensor
|
|
93
|
+
|
|
94
|
+
In consideration of the right to use this License's text and the "Business
|
|
95
|
+
Source License" name and trademark, Licensor covenants to MariaDB, and to all
|
|
96
|
+
other recipients of the licensed work to be provided by Licensor:
|
|
97
|
+
|
|
98
|
+
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
|
99
|
+
or a license that is compatible with GPL Version 2.0 or a later version,
|
|
100
|
+
where "compatible" means that software provided under the Change License can
|
|
101
|
+
be included in a program with software provided under GPL Version 2.0 or a
|
|
102
|
+
later version. Licensor may specify additional Change Licenses without
|
|
103
|
+
limitation.
|
|
104
|
+
|
|
105
|
+
2. To either: (a) specify an additional grant of rights to use that does not
|
|
106
|
+
impose any additional restriction on the right granted in this License, as
|
|
107
|
+
the Additional Use Grant; or (b) insert the text "None".
|
|
108
|
+
|
|
109
|
+
3. To specify a Change Date.
|
|
110
|
+
|
|
111
|
+
4. Not to modify this License in any other way.
|
|
112
|
+
|
|
113
|
+
Project-URL: Homepage, https://celerp.com
|
|
114
|
+
Project-URL: Repository, https://github.com/celerp/celerp
|
|
115
|
+
Project-URL: Documentation, https://celerp.com/docs
|
|
116
|
+
Keywords: erp,inventory,accounting,self-hosted,fastapi
|
|
117
|
+
Classifier: Development Status :: 4 - Beta
|
|
118
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
119
|
+
Classifier: License :: Other/Proprietary License
|
|
120
|
+
Classifier: Programming Language :: Python :: 3
|
|
121
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
122
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
123
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
124
|
+
Classifier: Topic :: Office/Business
|
|
125
|
+
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
126
|
+
Requires-Python: >=3.10
|
|
127
|
+
Description-Content-Type: text/markdown
|
|
128
|
+
License-File: LICENSE
|
|
129
|
+
License-File: NOTICE
|
|
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
|
|
209
|
+
Provides-Extra: dev
|
|
210
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
211
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
212
|
+
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
213
|
+
Requires-Dist: faker>=24.0; extra == "dev"
|
|
214
|
+
Requires-Dist: respx>=0.21; extra == "dev"
|
|
215
|
+
Requires-Dist: playwright<1.62,>=1.43; extra == "dev"
|
|
216
|
+
Requires-Dist: pytest-playwright>=0.5; extra == "dev"
|
|
217
|
+
Requires-Dist: pytest-timeout>=2.3; extra == "dev"
|
|
218
|
+
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
|
|
219
|
+
Requires-Dist: testcontainers[postgres]>=4.0; extra == "dev"
|
|
220
|
+
Provides-Extra: prod
|
|
221
|
+
Requires-Dist: gunicorn==26.2.0; extra == "prod"
|
|
222
|
+
Dynamic: license-file
|
|
223
|
+
|
|
224
|
+
# Celerp
|
|
225
|
+
|
|
226
|
+
**Free business management software for you and your office. Setup in minutes. Easy enough for solo entrepreneurs and powerful enough for large enterprises**
|
|
227
|
+
|
|
228
|
+
Inventory, invoicing, purchasing, consignment, manufacturing, accounting, and CRM - in one app, on your computer. No subscription. No cloud required.
|
|
229
|
+
|
|
230
|
+
Website: [www.celerp.com](https://www.celerp.com)
|
|
231
|
+
|
|
232
|
+
Celerp is simple to use, flexible, customizable, and designed to transition your business into the AI age with no technical knowledge needed to setup your whole office. We want to put businesses back in charge of their data.
|
|
233
|
+
|
|
234
|
+
[](https://pepy.tech/project/celerp)
|
|
235
|
+
[](https://github.com/celerp/celerp/actions)
|
|
236
|
+
[](LICENSE)
|
|
237
|
+
|
|
238
|
+
<!-- PRESS_KIT:root-hero start -->
|
|
239
|
+

|
|
240
|
+
<!-- PRESS_KIT:root-hero end -->
|
|
241
|
+
|
|
242
|
+
## Screenshots
|
|
243
|
+
|
|
244
|
+
Real double-entry accounting, multi-location inventory, manufacturing, and a built-in REST API - one self-hosted app.
|
|
245
|
+
|
|
246
|
+
<!-- PRESS_KIT:root-grid start -->
|
|
247
|
+
| | |
|
|
248
|
+
|---|---|
|
|
249
|
+
| <br>**Dashboard** - revenue trend, AR aging, inventory mix | <br>**Inventory** - multi-location, barcode, valuation |
|
|
250
|
+
| <br>**Trial balance** - ties out to zero | <br>**Balance sheet** - live from the ledger |
|
|
251
|
+
| <br>**Production planning** - work orders, priorities, due dates | <br>**Shipping documents** - commercial invoice and customs |
|
|
252
|
+
| <br>**REST API** - integrate anything | <br>**Statement of account** - customer AR at a glance |
|
|
253
|
+
<!-- PRESS_KIT:root-grid end -->
|
|
254
|
+
|
|
255
|
+
More in the [press kit](docs/press-kit/).
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Install
|
|
260
|
+
|
|
261
|
+
| Platform | Link |
|
|
262
|
+
|----------|------|
|
|
263
|
+
| Windows (.exe) | [Download](https://celerp.com/download-thanks.html?dl=win) |
|
|
264
|
+
| Linux (.deb) | [Download](https://celerp.com/download-thanks.html?dl=linux) |
|
|
265
|
+
| macOS (.dmg) | [Download](https://celerp.com/download-thanks.html?dl=mac) |
|
|
266
|
+
|
|
267
|
+
**Double-click. No account. No credit card. Your computer securely becomes the server for your office**
|
|
268
|
+
|
|
269
|
+
Or install via pip:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
pip install celerp
|
|
273
|
+
celerp init # sets up the database and launches Celerp
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Open **http://localhost:8080**. Done.
|
|
277
|
+
Your office can securely access the system at your IP address :8080.
|
|
278
|
+
|
|
279
|
+
No PostgreSQL to install: `celerp init` uses your existing PostgreSQL server if one is
|
|
280
|
+
running, and otherwise starts a self-contained bundled database — no `sudo`, no system
|
|
281
|
+
service. Point it at a specific server with `celerp init --db-url postgresql+asyncpg://…`.
|
|
282
|
+
|
|
283
|
+
Running headless or under a process manager? Use `celerp init --no-start` to set up
|
|
284
|
+
without launching, then have your service run `celerp start` — see
|
|
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.
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## What's inside
|
|
292
|
+
|
|
293
|
+
- Track inventory across locations, scan barcodes, print labels
|
|
294
|
+
- Send invoices, purchase orders, quotations, credit notes
|
|
295
|
+
- Double-entry accounting with chart of accounts, P&L, balance sheet
|
|
296
|
+
- Connect Shopify, WooCommerce, QuickBooks, Xero
|
|
297
|
+
- Manufacturing - BOMs, production orders, merge/split/transform
|
|
298
|
+
- CRM - contacts, pipeline, memos, activity feed
|
|
299
|
+
- Recurring subscriptions with automatic invoicing
|
|
300
|
+
- CSV import/export everything - idempotent, audited, column-mapped
|
|
301
|
+
- Multi-company from one install
|
|
302
|
+
- Role-based permissions - five access levels (viewer, operator, manager, admin, owner) for controlled employee access
|
|
303
|
+
- Works offline, no internet required
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## How it works
|
|
308
|
+
|
|
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.
|
|
310
|
+
|
|
311
|
+
- **No setup** - the desktop app bundles Postgres, runs migrations on launch, opens in your browser
|
|
312
|
+
- **No lock-in** - your data stays in a standard Postgres database you control
|
|
313
|
+
- **Teams** - run as a local server, teammates connect over the LAN
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Modules
|
|
318
|
+
|
|
319
|
+
Every business domain is a self-contained module. The full set ships with the download:
|
|
320
|
+
|
|
321
|
+
| Module | What it does |
|
|
322
|
+
|--------|-------------|
|
|
323
|
+
| `celerp-inventory` | Items, stock levels, locations, barcode scanning, valuation |
|
|
324
|
+
| `celerp-contacts` | Contacts, addresses, tags, notes, file attachments |
|
|
325
|
+
| `celerp-docs` | Invoices, POs, quotations, credit notes, receipts |
|
|
326
|
+
| `celerp-accounting` | Chart of accounts, journal entries, P&L, balance sheet |
|
|
327
|
+
| `celerp-reports` | AR/AP aging, sales, purchases, inventory valuation |
|
|
328
|
+
| `celerp-subscriptions` | Recurring billing, auto-invoice generation |
|
|
329
|
+
| `celerp-manufacturing` | BOMs, production orders, merge/split/transform |
|
|
330
|
+
| `celerp-labels` | Label printing, barcode generation |
|
|
331
|
+
| `celerp-verticals` | Industry presets - configure for your business type on first run |
|
|
332
|
+
|
|
333
|
+
The onboarding wizard lets you pick your industry. Modules can be toggled any time at **Settings > Modules**.
|
|
334
|
+
|
|
335
|
+
### Build your own
|
|
336
|
+
|
|
337
|
+
> "My vision for Celerp is that anyone with AI coding tools can describe what their business needs and get a module that imports right into the system."
|
|
338
|
+
>
|
|
339
|
+
> Noah Severs, Founder
|
|
340
|
+
|
|
341
|
+
Every feature above is a module on one loader API, and you can build against the same API. A module is a Python package you drop into Celerp's `modules/` folder; it adds its own tables, API routes, and UI pages, no fork or build step.
|
|
342
|
+
|
|
343
|
+
- [**celerp-module-template**](https://github.com/celerp/celerp-module-template) - a working example module you can run in about ten minutes, plus a lint script
|
|
344
|
+
- [**Build a module**](https://www.celerp.com/docs/modules) - the guide
|
|
345
|
+
- [**community-modules**](https://github.com/celerp/community-modules) - a directory of community-built modules, and how to list yours
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Architecture
|
|
350
|
+
|
|
351
|
+
- **Event-sourced** - every change is an immutable ledger entry, projections materialize queryable state
|
|
352
|
+
- **Modular** - each domain is a plugin with its own models, routes, and projections
|
|
353
|
+
- **Python/FastAPI** backend, **FastHTML** UI, embedded **PostgreSQL**
|
|
354
|
+
- SQLite in-memory for tests - no external dependencies to run the test suite
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Development
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
git clone git@github.com:celerp/celerp.git
|
|
362
|
+
cd celerp
|
|
363
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
364
|
+
pip install -e ".[dev]"
|
|
365
|
+
celerp init # creates DB, runs migrations, starts servers
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
`celerp init` boots a bundled PostgreSQL when no server is running, so no `sudo` and no
|
|
369
|
+
system Postgres are required. To develop against your own server instead, pass
|
|
370
|
+
`--db-url postgresql+asyncpg://…`.
|
|
371
|
+
|
|
372
|
+
Open **http://localhost:8080**. Run tests with `pytest tests/`.
|
|
373
|
+
|
|
374
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for environment variables, troubleshooting, and coding guidelines.
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Contributing
|
|
379
|
+
|
|
380
|
+
Issues and PRs welcome. The module system makes it straightforward to add new business domains without touching the kernel.
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## License
|
|
385
|
+
|
|
386
|
+
**Free to download. Free to self-host. Free to build on.**
|
|
387
|
+
|
|
388
|
+
Celerp is open-core:
|
|
389
|
+
|
|
390
|
+
- **Source-available core engine** under the [Business Source License 1.1](LICENSE) -
|
|
391
|
+
self-hosting permitted, contributions welcome.
|
|
392
|
+
- **An MIT-licensed module ecosystem** - the default business modules are MIT, so you can
|
|
393
|
+
fork them, build your own modules, and ship them however you like. See [LICENSING.md](LICENSING.md).
|
|
394
|
+
- **A source available application** (official UI, document/PDF output and AI & Connect services).
|
|
395
|
+
|
|
396
|
+
See [LICENSING.md](LICENSING.md) for the full map and [TRADEMARK.md](legal/TRADEMARK.md) for use of the Celerp
|
|
397
|
+
name. One restriction: don't resell Celerp itself as a competing product.
|