dsgrid-toolkit 0.3.1__tar.gz → 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/PKG-INFO +1 -1
  2. dsgrid_toolkit-0.3.2/build_backend.py +81 -0
  3. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/__init__.py +1 -1
  4. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/pyproject.toml +1 -0
  5. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/rust/Cargo.lock +3 -3
  6. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/rust/Cargo.toml +1 -1
  7. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/LICENSE +0 -0
  8. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/README.md +0 -0
  9. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/api/__init__.py +0 -0
  10. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/api/api_manager.py +0 -0
  11. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/api/app.py +0 -0
  12. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/api/models.py +0 -0
  13. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/api/response_models.py +0 -0
  14. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/apps/__init__.py +0 -0
  15. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/apps/project_viewer/app.py +0 -0
  16. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/apps/registration_gui.py +0 -0
  17. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/chronify.py +0 -0
  18. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/__init__.py +0 -0
  19. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/common.py +0 -0
  20. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/config.py +0 -0
  21. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/download.py +0 -0
  22. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/dsgrid.py +0 -0
  23. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/dsgrid_admin.py +0 -0
  24. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/install_notebooks.py +0 -0
  25. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/query.py +0 -0
  26. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cli/registry.py +0 -0
  27. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cloud/__init__.py +0 -0
  28. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cloud/cloud_storage_interface.py +0 -0
  29. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cloud/factory.py +0 -0
  30. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cloud/fake_storage_interface.py +0 -0
  31. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/cloud/s3_storage_interface.py +0 -0
  32. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/common.py +0 -0
  33. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/__init__.py +0 -0
  34. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/annual_time_dimension_config.py +0 -0
  35. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/common.py +0 -0
  36. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/config_base.py +0 -0
  37. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dataset_config.py +0 -0
  38. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dataset_schema_handler_factory.py +0 -0
  39. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/date_time_dimension_config.py +0 -0
  40. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimension_config.py +0 -0
  41. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimension_config_factory.py +0 -0
  42. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimension_mapping_base.py +0 -0
  43. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimension_mappings_config.py +0 -0
  44. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimensions.py +0 -0
  45. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/dimensions_config.py +0 -0
  46. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/file_schema.py +0 -0
  47. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/index_time_dimension_config.py +0 -0
  48. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/input_dataset_requirements.py +0 -0
  49. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/mapping_tables.py +0 -0
  50. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/noop_time_dimension_config.py +0 -0
  51. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/project_config.py +0 -0
  52. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/registration_models.py +0 -0
  53. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/representative_period_time_dimension_config.py +0 -0
  54. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/simple_models.py +0 -0
  55. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/supplemental_dimension.py +0 -0
  56. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/config/time_dimension_base_config.py +0 -0
  57. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/data_models.py +0 -0
  58. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/__init__.py +0 -0
  59. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset.py +0 -0
  60. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset_expression_handler.py +0 -0
  61. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset_mapping_manager.py +0 -0
  62. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset_schema_handler_base.py +0 -0
  63. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset_schema_handler_one_table.py +0 -0
  64. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/dataset_schema_handler_two_table.py +0 -0
  65. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/growth_rates.py +0 -0
  66. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/models.py +0 -0
  67. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/table_format_handler_base.py +0 -0
  68. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/table_format_handler_factory.py +0 -0
  69. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dataset/unpivoted_table.py +0 -0
  70. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/__init__.py +0 -0
  71. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/base_models.py +0 -0
  72. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/dimension_filters.py +0 -0
  73. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/standard.py +0 -0
  74. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/time.py +0 -0
  75. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dimension/time_utils.py +0 -0
  76. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/dsgrid_rc.py +0 -0
  77. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/exceptions.py +0 -0
  78. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/__init__.py +0 -0
  79. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/cloud_filesystem.py +0 -0
  80. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/factory.py +0 -0
  81. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/filesystem_interface.py +0 -0
  82. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/local_filesystem.py +0 -0
  83. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/filesystem/s3_filesystem.py +0 -0
  84. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/loggers.py +0 -0
  85. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/notebooks/connect_to_dsgrid_registry.ipynb +0 -0
  86. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/notebooks/registration.ipynb +0 -0
  87. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/notebooks/start_notebook.sh +0 -0
  88. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/project.py +0 -0
  89. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/__init__.py +0 -0
  90. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/dataset_mapping_plan.py +0 -0
  91. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/derived_dataset.py +0 -0
  92. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/models.py +0 -0
  93. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/query_context.py +0 -0
  94. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/query_submitter.py +0 -0
  95. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/report_factory.py +0 -0
  96. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/report_peak_load.py +0 -0
  97. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/query/reports_base.py +0 -0
  98. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/__init__.py +0 -0
  99. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/bulk_register.py +0 -0
  100. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/common.py +0 -0
  101. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/config_update_checker_base.py +0 -0
  102. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/data_store_factory.py +0 -0
  103. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/data_store_interface.py +0 -0
  104. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dataset_config_generator.py +0 -0
  105. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dataset_registry_manager.py +0 -0
  106. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dataset_update_checker.py +0 -0
  107. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dimension_mapping_registry_manager.py +0 -0
  108. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dimension_mapping_update_checker.py +0 -0
  109. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dimension_registry_manager.py +0 -0
  110. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/dimension_update_checker.py +0 -0
  111. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/duckdb_data_store.py +0 -0
  112. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/filesystem_data_store.py +0 -0
  113. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/filter_registry_manager.py +0 -0
  114. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/project_config_generator.py +0 -0
  115. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/project_registry_manager.py +0 -0
  116. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/project_update_checker.py +0 -0
  117. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registration_context.py +0 -0
  118. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registry_auto_updater.py +0 -0
  119. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registry_database.py +0 -0
  120. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registry_interface.py +0 -0
  121. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registry_manager.py +0 -0
  122. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/registry_manager_base.py +0 -0
  123. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/registry/versioning.py +0 -0
  124. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/rust_ext/__init__.py +0 -0
  125. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/rust_ext/find_minimal_patterns.py +0 -0
  126. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/spark/__init__.py +0 -0
  127. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/spark/functions.py +0 -0
  128. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/spark/types.py +0 -0
  129. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/tests/__init__.py +0 -0
  130. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/tests/common.py +0 -0
  131. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/tests/make_us_data_registry.py +0 -0
  132. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/tests/register_derived_datasets.py +0 -0
  133. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/tests/utils.py +0 -0
  134. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/time/__init__.py +0 -0
  135. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/time/time_conversions.py +0 -0
  136. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/time/types.py +0 -0
  137. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/units/__init__.py +0 -0
  138. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/units/constants.py +0 -0
  139. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/units/convert.py +0 -0
  140. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/units/energy.py +0 -0
  141. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/units/power.py +0 -0
  142. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/__init__.py +0 -0
  143. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/dataset.py +0 -0
  144. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/files.py +0 -0
  145. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/filters.py +0 -0
  146. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/id_remappings.py +0 -0
  147. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/py_expression_eval/LICENSE +0 -0
  148. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/py_expression_eval/README.md +0 -0
  149. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/py_expression_eval/__init__.py +0 -0
  150. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/py_expression_eval/tests.py +0 -0
  151. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/run_command.py +0 -0
  152. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/scratch_dir_context.py +0 -0
  153. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/spark.py +0 -0
  154. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/spark_partition.py +0 -0
  155. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/timing.py +0 -0
  156. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/utilities.py +0 -0
  157. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/dsgrid/utils/versioning.py +0 -0
  158. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/rust/README.md +0 -0
  159. {dsgrid_toolkit-0.3.1 → dsgrid_toolkit-0.3.2}/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.2
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,81 @@
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 (CI), always use maturin
35
+ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
36
+ """Build wheel - requires Rust for distribution builds."""
37
+ import maturin
38
+
39
+ return maturin.build_wheel(wheel_directory, config_settings, metadata_directory)
40
+
41
+
42
+ def build_sdist(sdist_directory, config_settings=None):
43
+ """Build source distribution."""
44
+ import maturin
45
+
46
+ return maturin.build_sdist(sdist_directory, config_settings)
47
+
48
+
49
+ def get_requires_for_build_wheel(config_settings=None):
50
+ """Get requirements for building wheel."""
51
+ return ["maturin>=1.0,<2.0"]
52
+
53
+
54
+ def get_requires_for_build_sdist(config_settings=None):
55
+ """Get requirements for building sdist."""
56
+ return ["maturin>=1.0,<2.0"]
57
+
58
+
59
+ # For editable installs, allow fallback without Rust
60
+ def build_editable(wheel_directory, config_settings=None, metadata_directory=None):
61
+ """Build editable install - can work without Rust."""
62
+ if RUST_AVAILABLE:
63
+ import maturin
64
+
65
+ return maturin.build_editable(wheel_directory, config_settings, metadata_directory)
66
+ else:
67
+ _warn_no_rust()
68
+ # Fall back to setuptools for editable install without Rust extension
69
+ import setuptools.build_meta
70
+
71
+ return setuptools.build_meta.build_editable(
72
+ wheel_directory, config_settings, metadata_directory
73
+ )
74
+
75
+
76
+ def get_requires_for_build_editable(config_settings=None):
77
+ """Get requirements for editable install."""
78
+ if RUST_AVAILABLE:
79
+ return ["maturin>=1.0,<2.0"]
80
+ else:
81
+ 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.2"
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
@@ -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.2"
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.2"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
 
File without changes
File without changes