dsgrid-toolkit 0.3.1__tar.gz → 0.3.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 (159) hide show
  1. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/PKG-INFO +1 -1
  2. dsgrid_toolkit-0.3.3/build_backend.py +93 -0
  3. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/__init__.py +1 -1
  4. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/pyproject.toml +1 -0
  5. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/rust/Cargo.lock +5 -5
  6. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/rust/Cargo.toml +1 -1
  7. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/LICENSE +0 -0
  8. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/README.md +0 -0
  9. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/api/__init__.py +0 -0
  10. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/api/api_manager.py +0 -0
  11. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/api/app.py +0 -0
  12. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/api/models.py +0 -0
  13. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/api/response_models.py +0 -0
  14. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/apps/__init__.py +0 -0
  15. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/apps/project_viewer/app.py +0 -0
  16. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/apps/registration_gui.py +0 -0
  17. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/chronify.py +0 -0
  18. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/__init__.py +0 -0
  19. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/common.py +0 -0
  20. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/config.py +0 -0
  21. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/download.py +0 -0
  22. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/dsgrid.py +0 -0
  23. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/dsgrid_admin.py +0 -0
  24. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/install_notebooks.py +0 -0
  25. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/query.py +0 -0
  26. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cli/registry.py +0 -0
  27. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cloud/__init__.py +0 -0
  28. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cloud/cloud_storage_interface.py +0 -0
  29. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cloud/factory.py +0 -0
  30. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cloud/fake_storage_interface.py +0 -0
  31. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/cloud/s3_storage_interface.py +0 -0
  32. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/common.py +0 -0
  33. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/__init__.py +0 -0
  34. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/annual_time_dimension_config.py +0 -0
  35. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/common.py +0 -0
  36. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/config_base.py +0 -0
  37. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dataset_config.py +0 -0
  38. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dataset_schema_handler_factory.py +0 -0
  39. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/date_time_dimension_config.py +0 -0
  40. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimension_config.py +0 -0
  41. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimension_config_factory.py +0 -0
  42. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimension_mapping_base.py +0 -0
  43. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimension_mappings_config.py +0 -0
  44. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimensions.py +0 -0
  45. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/dimensions_config.py +0 -0
  46. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/file_schema.py +0 -0
  47. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/index_time_dimension_config.py +0 -0
  48. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/input_dataset_requirements.py +0 -0
  49. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/mapping_tables.py +0 -0
  50. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/noop_time_dimension_config.py +0 -0
  51. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/project_config.py +0 -0
  52. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/registration_models.py +0 -0
  53. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/representative_period_time_dimension_config.py +0 -0
  54. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/simple_models.py +0 -0
  55. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/supplemental_dimension.py +0 -0
  56. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/config/time_dimension_base_config.py +0 -0
  57. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/data_models.py +0 -0
  58. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/__init__.py +0 -0
  59. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset.py +0 -0
  60. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset_expression_handler.py +0 -0
  61. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset_mapping_manager.py +0 -0
  62. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset_schema_handler_base.py +0 -0
  63. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset_schema_handler_one_table.py +0 -0
  64. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/dataset_schema_handler_two_table.py +0 -0
  65. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/growth_rates.py +0 -0
  66. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/models.py +0 -0
  67. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/table_format_handler_base.py +0 -0
  68. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/table_format_handler_factory.py +0 -0
  69. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dataset/unpivoted_table.py +0 -0
  70. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/__init__.py +0 -0
  71. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/base_models.py +0 -0
  72. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/dimension_filters.py +0 -0
  73. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/standard.py +0 -0
  74. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/time.py +0 -0
  75. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dimension/time_utils.py +0 -0
  76. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/dsgrid_rc.py +0 -0
  77. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/exceptions.py +0 -0
  78. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/__init__.py +0 -0
  79. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/cloud_filesystem.py +0 -0
  80. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/factory.py +0 -0
  81. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/filesystem_interface.py +0 -0
  82. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/local_filesystem.py +0 -0
  83. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/filesystem/s3_filesystem.py +0 -0
  84. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/loggers.py +0 -0
  85. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/notebooks/connect_to_dsgrid_registry.ipynb +0 -0
  86. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/notebooks/registration.ipynb +0 -0
  87. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/notebooks/start_notebook.sh +0 -0
  88. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/project.py +0 -0
  89. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/__init__.py +0 -0
  90. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/dataset_mapping_plan.py +0 -0
  91. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/derived_dataset.py +0 -0
  92. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/models.py +0 -0
  93. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/query_context.py +0 -0
  94. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/query_submitter.py +0 -0
  95. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/report_factory.py +0 -0
  96. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/report_peak_load.py +0 -0
  97. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/query/reports_base.py +0 -0
  98. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/__init__.py +0 -0
  99. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/bulk_register.py +0 -0
  100. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/common.py +0 -0
  101. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/config_update_checker_base.py +0 -0
  102. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/data_store_factory.py +0 -0
  103. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/data_store_interface.py +0 -0
  104. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dataset_config_generator.py +0 -0
  105. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dataset_registry_manager.py +0 -0
  106. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dataset_update_checker.py +0 -0
  107. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dimension_mapping_registry_manager.py +0 -0
  108. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dimension_mapping_update_checker.py +0 -0
  109. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dimension_registry_manager.py +0 -0
  110. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/dimension_update_checker.py +0 -0
  111. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/duckdb_data_store.py +0 -0
  112. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/filesystem_data_store.py +0 -0
  113. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/filter_registry_manager.py +0 -0
  114. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/project_config_generator.py +0 -0
  115. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/project_registry_manager.py +0 -0
  116. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/project_update_checker.py +0 -0
  117. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registration_context.py +0 -0
  118. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registry_auto_updater.py +0 -0
  119. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registry_database.py +0 -0
  120. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registry_interface.py +0 -0
  121. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registry_manager.py +0 -0
  122. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/registry_manager_base.py +0 -0
  123. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/registry/versioning.py +0 -0
  124. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/rust_ext/__init__.py +0 -0
  125. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/rust_ext/find_minimal_patterns.py +0 -0
  126. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/spark/__init__.py +0 -0
  127. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/spark/functions.py +0 -0
  128. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/spark/types.py +0 -0
  129. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/tests/__init__.py +0 -0
  130. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/tests/common.py +0 -0
  131. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/tests/make_us_data_registry.py +0 -0
  132. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/tests/register_derived_datasets.py +0 -0
  133. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/tests/utils.py +0 -0
  134. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/time/__init__.py +0 -0
  135. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/time/time_conversions.py +0 -0
  136. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/time/types.py +0 -0
  137. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/units/__init__.py +0 -0
  138. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/units/constants.py +0 -0
  139. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/units/convert.py +0 -0
  140. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/units/energy.py +0 -0
  141. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/units/power.py +0 -0
  142. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/__init__.py +0 -0
  143. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/dataset.py +0 -0
  144. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/files.py +0 -0
  145. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/filters.py +0 -0
  146. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/id_remappings.py +0 -0
  147. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/py_expression_eval/LICENSE +0 -0
  148. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/py_expression_eval/README.md +0 -0
  149. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/py_expression_eval/__init__.py +0 -0
  150. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/py_expression_eval/tests.py +0 -0
  151. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/run_command.py +0 -0
  152. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/scratch_dir_context.py +0 -0
  153. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/spark.py +0 -0
  154. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/spark_partition.py +0 -0
  155. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/timing.py +0 -0
  156. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/utilities.py +0 -0
  157. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/dsgrid/utils/versioning.py +0 -0
  158. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/rust/README.md +0 -0
  159. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.3}/rust/src/lib.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dsgrid-toolkit
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Science/Research
6
6
  Classifier: License :: OSI Approved :: BSD License
@@ -0,0 +1,93 @@
1
+ """Custom build backend that wraps maturin but allows fallback when Rust is unavailable.
2
+
3
+ This allows `pip install -e .` to succeed even without a Rust toolchain installed,
4
+ while still building the Rust extension when building wheels for distribution.
5
+ """
6
+
7
+ import shutil
8
+ import sys
9
+ import warnings
10
+
11
+ # Check if Rust toolchain is available
12
+ RUST_AVAILABLE = shutil.which("cargo") is not None
13
+
14
+
15
+ def _warn_no_rust():
16
+ """Warn that Rust extension will not be built."""
17
+ msg = (
18
+ "Rust toolchain (cargo) not found. The dsgrid Rust extension (minimal_patterns) "
19
+ "will not be built. Some functionality will be unavailable. "
20
+ "To build the Rust extension, install Rust from https://rustup.rs/"
21
+ )
22
+ # Use warnings module - this is typically shown by pip
23
+ warnings.warn(msg, UserWarning, stacklevel=2)
24
+ # Also print directly to stderr for visibility
25
+ print(f"\n{'='*70}", file=sys.stderr)
26
+ print("WARNING: Rust toolchain not found.", file=sys.stderr)
27
+ print("Building dsgrid without Rust extension (minimal_patterns).", file=sys.stderr)
28
+ print("Some functionality will be unavailable.", file=sys.stderr)
29
+ print(f"{'='*70}\n", file=sys.stderr)
30
+ # Flush to ensure it appears
31
+ sys.stderr.flush()
32
+
33
+
34
+ # For wheel builds, use maturin if Rust is available, otherwise fall back to setuptools
35
+ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
36
+ """Build wheel - uses Rust if available, otherwise falls back to setuptools."""
37
+ if RUST_AVAILABLE:
38
+ import maturin
39
+
40
+ return maturin.build_wheel(wheel_directory, config_settings, metadata_directory)
41
+ else:
42
+ _warn_no_rust()
43
+ # Fall back to setuptools for wheel build without Rust extension
44
+ import setuptools.build_meta
45
+
46
+ return setuptools.build_meta.build_wheel(
47
+ wheel_directory, config_settings, metadata_directory
48
+ )
49
+
50
+
51
+ def build_sdist(sdist_directory, config_settings=None):
52
+ """Build source distribution."""
53
+ import maturin
54
+
55
+ return maturin.build_sdist(sdist_directory, config_settings)
56
+
57
+
58
+ def get_requires_for_build_wheel(config_settings=None):
59
+ """Get requirements for building wheel."""
60
+ if RUST_AVAILABLE:
61
+ return ["maturin>=1.0,<2.0"]
62
+ else:
63
+ return ["setuptools>=61.0"]
64
+
65
+
66
+ def get_requires_for_build_sdist(config_settings=None):
67
+ """Get requirements for building sdist."""
68
+ return ["maturin>=1.0,<2.0"]
69
+
70
+
71
+ # For editable installs, allow fallback without Rust
72
+ def build_editable(wheel_directory, config_settings=None, metadata_directory=None):
73
+ """Build editable install - can work without Rust."""
74
+ if RUST_AVAILABLE:
75
+ import maturin
76
+
77
+ return maturin.build_editable(wheel_directory, config_settings, metadata_directory)
78
+ else:
79
+ _warn_no_rust()
80
+ # Fall back to setuptools for editable install without Rust extension
81
+ import setuptools.build_meta
82
+
83
+ return setuptools.build_meta.build_editable(
84
+ wheel_directory, config_settings, metadata_directory
85
+ )
86
+
87
+
88
+ def get_requires_for_build_editable(config_settings=None):
89
+ """Get requirements for editable install."""
90
+ if RUST_AVAILABLE:
91
+ return ["maturin>=1.0,<2.0"]
92
+ else:
93
+ return ["setuptools>=61.0"]
@@ -9,7 +9,7 @@ __description__ = (
9
9
  "Python API for registring and accessing demand-side grid model (dsgrid) datasets"
10
10
  )
11
11
  __url__ = "https://github.com/dsgrid/dsgrid"
12
- __version__ = "0.3.1"
12
+ __version__ = "0.3.3"
13
13
  __author__ = "NREL"
14
14
  __maintainer_email__ = "elaine.hale@nrel.gov"
15
15
  __license__ = "BSD-3"
@@ -61,6 +61,7 @@ module-name = "dsgrid.minimal_patterns"
61
61
  python-source = "."
62
62
  features = ["pyo3/extension-module"]
63
63
  manifest-path = "rust/Cargo.toml"
64
+ include = ["build_backend.py"]
64
65
 
65
66
  [tool.setuptools]
66
67
  # Used as fallback when Rust toolchain is not available
@@ -185,9 +185,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
185
185
 
186
186
  [[package]]
187
187
  name = "cc"
188
- version = "1.2.53"
188
+ version = "1.2.54"
189
189
  source = "registry+https://github.com/rust-lang/crates.io-index"
190
- checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
190
+ checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
191
191
  dependencies = [
192
192
  "find-msvc-tools",
193
193
  "jobserver",
@@ -246,7 +246,7 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
246
246
 
247
247
  [[package]]
248
248
  name = "dsgrid-patterns"
249
- version = "0.3.1"
249
+ version = "0.3.3"
250
250
  dependencies = [
251
251
  "ahash",
252
252
  "anyhow",
@@ -668,9 +668,9 @@ dependencies = [
668
668
 
669
669
  [[package]]
670
670
  name = "quote"
671
- version = "1.0.43"
671
+ version = "1.0.44"
672
672
  source = "registry+https://github.com/rust-lang/crates.io-index"
673
- checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
673
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
674
674
  dependencies = [
675
675
  "proc-macro2",
676
676
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "dsgrid-patterns"
3
- version = "0.3.1"
3
+ version = "0.3.3"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
 
File without changes
File without changes