matrx-utils 2.0.2__tar.gz → 2.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/CLAUDE.md +2 -2
  2. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/PKG-INFO +5 -5
  3. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/README.md +4 -4
  4. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/pyproject.toml +1 -1
  5. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/.gitignore +0 -0
  6. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/AGENTS.md +0 -0
  7. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/MODULE_README.md +0 -0
  8. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/RENDEZVOUS_FEATURE.md +0 -0
  9. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/__init__.py +0 -0
  10. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/backoff.py +0 -0
  11. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/MODULE_README.md +0 -0
  12. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/__init__.py +0 -0
  13. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/code_context.py +0 -0
  14. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/config.yaml +0 -0
  15. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/AST_UPGRADE_TASK.md +0 -0
  16. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/LANGUAGE_COVERAGE.md +0 -0
  17. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/MODULE_README_SPEC.md +0 -0
  18. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/MULTI_MODULE_TASK.md +0 -0
  19. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/README.md +0 -0
  20. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/docs/ROADMAP.md +0 -0
  21. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/generate_module_readme.py +0 -0
  22. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/MODULE_README.md +0 -0
  23. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/__init__.py +0 -0
  24. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/test_code_extractor.py +0 -0
  25. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/test_file_discovery.py +0 -0
  26. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/test_integration.py +0 -0
  27. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/test_output_modes.py +0 -0
  28. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/code_context/tests/test_tree_generator.py +0 -0
  29. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/conf.py +0 -0
  30. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/ctx.py +0 -0
  31. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/MODULE_README.md +0 -0
  32. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/__init__.py +0 -0
  33. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/data_transformer.py +0 -0
  34. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/errors.py +0 -0
  35. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/utils.py +0 -0
  36. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_handling/validators.py +0 -0
  37. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_in_code/current_data.py +0 -0
  38. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_in_code/current_ts_data.ts +0 -0
  39. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_in_code/make_updates.py +0 -0
  40. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/data_uri.py +0 -0
  41. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/diagnostics/__init__.py +0 -0
  42. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/diagnostics/inflight.py +0 -0
  43. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/diagnostics/loop_watchdog.py +0 -0
  44. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/MODULE_README.md +0 -0
  45. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/__init__.py +0 -0
  46. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/colors.py +0 -0
  47. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/fancy_prints.py +0 -0
  48. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/matrx_json_converter.py +0 -0
  49. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/matrx_print_logger.py +0 -0
  50. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/redaction.py +0 -0
  51. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/fancy_prints/truncation.py +0 -0
  52. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/field_processing/__init__.py +0 -0
  53. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/field_processing/dataclass_generator.py +0 -0
  54. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/field_processing/field_handler.py +0 -0
  55. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/hashing.py +0 -0
  56. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/http_client.py +0 -0
  57. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/ids.py +0 -0
  58. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/analyze-jsonl.py +0 -0
  59. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/copy_project.py +0 -0
  60. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/create_directories.py +0 -0
  61. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/extract_code.py +0 -0
  62. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/find_unused.py +0 -0
  63. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/generate_readme.py +0 -0
  64. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/import_checker.py +0 -0
  65. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/link_generator.py +0 -0
  66. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/local_mcp_tester.py +0 -0
  67. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/next_test_dir_config.py +0 -0
  68. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/package_inspector.py +0 -0
  69. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/package_size_analyzer.py +0 -0
  70. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/package_usage_scanner.py +0 -0
  71. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/local_dev_utils/react_links_direct.py +0 -0
  72. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/package_analysis/__init__.py +0 -0
  73. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/package_analysis/packages.py +0 -0
  74. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/package_analysis/reports.py +0 -0
  75. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/package_analysis/scan_excludes.py +0 -0
  76. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/profiler/__init__.py +0 -0
  77. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/profiler/profile_utility.py +0 -0
  78. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/quality_engine.py +0 -0
  79. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/MODULE_README.md +0 -0
  80. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/__init__.py +0 -0
  81. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/analyze_react_imports.py +0 -0
  82. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/collision_summary.py +0 -0
  83. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/extract_all_exports.py +0 -0
  84. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/extract_exports.py +0 -0
  85. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/find_invalid_imports.py +0 -0
  86. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/generate_full_index_with_files.py +0 -0
  87. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/generate_full_index_with_structure.py +0 -0
  88. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/generate_react_index.py +0 -0
  89. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/get_and_analyze.py +0 -0
  90. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/name_collision_analyer.py +0 -0
  91. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/utils.py +0 -0
  92. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/react_analysis/z_configs.py +0 -0
  93. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/rendezvous.py +0 -0
  94. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/runtime_env.py +0 -0
  95. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/secure_random.py +0 -0
  96. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/suggest.py +0 -0
  97. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/timeutils.py +0 -0
  98. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/__init__.py +0 -0
  99. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/clear_terminal.py +0 -0
  100. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/detached_task.py +0 -0
  101. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/get_dir_structure.py +0 -0
  102. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/singleflight.py +0 -0
  103. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/matrx_utils/utils/testing.py +0 -0
  104. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/scripts/release.sh +0 -0
  105. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/MODULE_README.md +0 -0
  106. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/conftest.py +0 -0
  107. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/field_generation.py +0 -0
  108. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/field_processing.py +0 -0
  109. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/get_dir_structure_test.py +0 -0
  110. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/load_env_for_test.py +0 -0
  111. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/print_link_test.py +0 -0
  112. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_backoff.py +0 -0
  113. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_data_uri.py +0 -0
  114. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_detached_task.py +0 -0
  115. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_http_client.py +0 -0
  116. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_loop_watchdog_signature.py +0 -0
  117. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_quality_engine.py +0 -0
  118. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_rendezvous.py +0 -0
  119. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_runtime_env.py +0 -0
  120. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_secure_random.py +0 -0
  121. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_singleflight.py +0 -0
  122. {matrx_utils-2.0.2 → matrx_utils-2.0.3}/tests/test_suggest.py +0 -0
@@ -25,7 +25,7 @@ If you catch yourself writing `from matrx_connect import …` at the top of a fi
25
25
  - **Data handling** (`matrx_utils.data_handling`): `DataTransformer`, validators, URL tools.
26
26
  - **File handling** (`matrx_files`): `FileManager`, `FileHandler`, `BatchHandler`, `open_any_file`.
27
27
  - **Image variant presets** (`matrx_files`): `PODCAST_VARIANTS`, `SOCIAL_VARIANTS`, `WEB_VARIANTS`, `EMAIL_VARIANTS`, `LOGO_VARIANTS`, `AVATAR_VARIANTS`, `FAVICON_VARIANTS`, `SOCIAL_BASELINE`, plus the `PRESETS` registry and the composer helpers `compose_preset(name, include_baseline, extra_variants)`, `get_preset(name)`, `list_preset_names()`. Hosts consume these to render the same variant set everywhere — every public asset gets the social baseline (og + thumbnail + tiny) appended automatically unless explicitly disabled.
28
- - **Cloud storage** (`matrx_files.cloud_sync`): `S3Backend`, `SupabaseBackend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine`, permissions + versioning.
28
+ - **Cloud storage** (`matrx_files.cloud_sync`): `S3Backend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine`, permissions + versioning.
29
29
  - **Centralized URL minting** — `SyncEngine.build_urls_for_record(_async)` is the **single source of truth** for the `{url, cdn_url, signed_url, download_url}` contract a file response carries. `managed_write_async` and `replace_file_async` populate the same shape on every `SyncResult`. Callers MUST consume `result.url` / `result.cdn_url` directly and never re-mint via `_router.get_url_async(...)`. The backends accept `response_content_disposition` and `response_content_type` kwargs so attachment-URLs flow through to S3 unchanged.
30
30
  - **Field / schema processing** (`matrx_utils.field_processing`): `camel_to_snake`, `process_field_definitions`, `generate_complete_code`.
31
31
  - **Code analysis tools** (`matrx_utils.code_context`, `matrx_utils.package_analysis`, `matrx_utils.react_analysis`): developer utilities for scanning codebases.
@@ -58,7 +58,7 @@ Inside this package:
58
58
 
59
59
  - **Never** read `os.environ["…"]` directly outside `conf.py`. Route through `settings`, which already falls back to env vars.
60
60
  - **Never** reach into a specific host's context shape. The `UserContext` protocol defines what we need; if you need more, extend the protocol and provide defaults.
61
- - The `CloudSyncConfig` / `SupabaseBackend` / `S3Backend` classes must accept explicit credentials in their constructors and only fall back to `settings` if the caller didn't pass them in. See `file_handling/cloud_sync/` for the pattern.
61
+ - The `CloudSyncConfig` / `S3Backend` classes must accept explicit credentials in their constructors and only fall back to `settings` if the caller didn't pass them in. See `file_handling/cloud_sync/` for the pattern.
62
62
 
63
63
  ---
64
64
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrx-utils
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Core shared utilities for the Matrx ecosystem (file handling now lives in matrx-files)
5
5
  Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
6
6
  Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
@@ -28,7 +28,7 @@ Description-Content-Type: text/markdown
28
28
 
29
29
  # matrx-utils
30
30
 
31
- Foundation utilities for the Matrx ecosystem — cloud file handling (AWS S3, Supabase Storage, local/server filesystems), a pluggable settings + request-context layer, and a set of developer helpers (fancy printing, data transforms, field-processing, code analysis).
31
+ Foundation utilities for the Matrx ecosystem — cloud file handling (AWS S3 and local/server filesystems), a pluggable settings + request-context layer, and a set of developer helpers (fancy printing, data transforms, field-processing, code analysis).
32
32
 
33
33
  `matrx-utils` is the bottom of the Matrx dependency graph. It has **no sibling dependencies**. Everything else (`matrx-connect`, `matrx-orm`, `matrx-graph`, `matrx-scraper`, `matrx-ai`) depends on it, directly or transitively.
34
34
 
@@ -49,7 +49,7 @@ Python 3.13+ required.
49
49
  | `matrx_utils.fancy_prints` | `vcprint`, `vclist`, `print_link`, `MatrixPrintLog`, `to_matrx_json` |
50
50
  | `matrx_utils.data_handling` | `DataTransformer`, URL and value validators |
51
51
  | `matrx_files` | `FileManager`, `FileHandler`, `BatchHandler`, `open_any_file` |
52
- | `matrx_files.cloud_sync` | `S3Backend`, `SupabaseBackend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine` + permissions and versioning |
52
+ | `matrx_files.cloud_sync` | `S3Backend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine` + permissions and versioning |
53
53
  | `matrx_utils.field_processing` | `camel_to_snake`, `process_field_definitions`, `generate_complete_code` |
54
54
  | `matrx_utils.code_context`, `matrx_utils.package_analysis`, `matrx_utils.react_analysis` | Developer utilities for scanning codebases |
55
55
 
@@ -59,11 +59,11 @@ Out of the box, `matrx-utils` reads its configuration from environment variables
59
59
 
60
60
  ```python
61
61
  from matrx_utils import vcprint, settings
62
- from matrx_files.cloud_sync import SupabaseBackend
62
+ from matrx_files.cloud_sync import S3Backend
63
63
 
64
64
  vcprint("hello")
65
65
  vcprint(settings.SUPABASE_URL) # read from env
66
- backend = SupabaseBackend() # credentials resolved from settings
66
+ backend = S3Backend() # credentials resolved from settings
67
67
  backend.write("reports/today.json", b"{}")
68
68
  ```
69
69
 
@@ -1,6 +1,6 @@
1
1
  # matrx-utils
2
2
 
3
- Foundation utilities for the Matrx ecosystem — cloud file handling (AWS S3, Supabase Storage, local/server filesystems), a pluggable settings + request-context layer, and a set of developer helpers (fancy printing, data transforms, field-processing, code analysis).
3
+ Foundation utilities for the Matrx ecosystem — cloud file handling (AWS S3 and local/server filesystems), a pluggable settings + request-context layer, and a set of developer helpers (fancy printing, data transforms, field-processing, code analysis).
4
4
 
5
5
  `matrx-utils` is the bottom of the Matrx dependency graph. It has **no sibling dependencies**. Everything else (`matrx-connect`, `matrx-orm`, `matrx-graph`, `matrx-scraper`, `matrx-ai`) depends on it, directly or transitively.
6
6
 
@@ -21,7 +21,7 @@ Python 3.13+ required.
21
21
  | `matrx_utils.fancy_prints` | `vcprint`, `vclist`, `print_link`, `MatrixPrintLog`, `to_matrx_json` |
22
22
  | `matrx_utils.data_handling` | `DataTransformer`, URL and value validators |
23
23
  | `matrx_files` | `FileManager`, `FileHandler`, `BatchHandler`, `open_any_file` |
24
- | `matrx_files.cloud_sync` | `S3Backend`, `SupabaseBackend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine` + permissions and versioning |
24
+ | `matrx_files.cloud_sync` | `S3Backend`, `ServerBackend`, `CloudSyncConfig`, `SyncEngine` + permissions and versioning |
25
25
  | `matrx_utils.field_processing` | `camel_to_snake`, `process_field_definitions`, `generate_complete_code` |
26
26
  | `matrx_utils.code_context`, `matrx_utils.package_analysis`, `matrx_utils.react_analysis` | Developer utilities for scanning codebases |
27
27
 
@@ -31,11 +31,11 @@ Out of the box, `matrx-utils` reads its configuration from environment variables
31
31
 
32
32
  ```python
33
33
  from matrx_utils import vcprint, settings
34
- from matrx_files.cloud_sync import SupabaseBackend
34
+ from matrx_files.cloud_sync import S3Backend
35
35
 
36
36
  vcprint("hello")
37
37
  vcprint(settings.SUPABASE_URL) # read from env
38
- backend = SupabaseBackend() # credentials resolved from settings
38
+ backend = S3Backend() # credentials resolved from settings
39
39
  backend.write("reports/today.json", b"{}")
40
40
  ```
41
41
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "matrx-utils"
3
- version = "2.0.2"
3
+ version = "2.0.3"
4
4
  description = "Core shared utilities for the Matrx ecosystem (file handling now lives in matrx-files)"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
File without changes
File without changes