batplot 1.8.8__tar.gz → 1.8.10__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 (83) hide show
  1. {batplot-1.8.8/batplot.egg-info → batplot-1.8.10}/PKG-INFO +1 -1
  2. {batplot-1.8.8 → batplot-1.8.10}/batplot/__init__.py +1 -1
  3. {batplot-1.8.8 → batplot-1.8.10}/batplot/batplot.py +23 -4
  4. {batplot-1.8.8 → batplot-1.8.10}/batplot/converters.py +2 -1
  5. {batplot-1.8.8 → batplot-1.8.10/batplot.egg-info}/PKG-INFO +1 -1
  6. {batplot-1.8.8 → batplot-1.8.10}/pyproject.toml +1 -1
  7. {batplot-1.8.8 → batplot-1.8.10}/LICENSE +0 -0
  8. {batplot-1.8.8 → batplot-1.8.10}/MANIFEST.in +0 -0
  9. {batplot-1.8.8 → batplot-1.8.10}/README.md +0 -0
  10. {batplot-1.8.8 → batplot-1.8.10}/USER_MANUAL.md +0 -0
  11. {batplot-1.8.8 → batplot-1.8.10}/batplot/args.py +0 -0
  12. {batplot-1.8.8 → batplot-1.8.10}/batplot/batch.py +0 -0
  13. {batplot-1.8.8 → batplot-1.8.10}/batplot/cif.py +0 -0
  14. {batplot-1.8.8 → batplot-1.8.10}/batplot/cli.py +0 -0
  15. {batplot-1.8.8 → batplot-1.8.10}/batplot/color_utils.py +0 -0
  16. {batplot-1.8.8 → batplot-1.8.10}/batplot/config.py +0 -0
  17. {batplot-1.8.8 → batplot-1.8.10}/batplot/cpc_interactive.py +0 -0
  18. {batplot-1.8.8 → batplot-1.8.10}/batplot/data/USER_MANUAL.md +0 -0
  19. {batplot-1.8.8 → batplot-1.8.10}/batplot/electrochem_interactive.py +0 -0
  20. {batplot-1.8.8 → batplot-1.8.10}/batplot/interactive.py +0 -0
  21. {batplot-1.8.8 → batplot-1.8.10}/batplot/manual.py +0 -0
  22. {batplot-1.8.8 → batplot-1.8.10}/batplot/modes.py +0 -0
  23. {batplot-1.8.8 → batplot-1.8.10}/batplot/operando.py +0 -0
  24. {batplot-1.8.8 → batplot-1.8.10}/batplot/operando_ec_interactive.py +0 -0
  25. {batplot-1.8.8 → batplot-1.8.10}/batplot/plotting.py +0 -0
  26. {batplot-1.8.8 → batplot-1.8.10}/batplot/readers.py +0 -0
  27. {batplot-1.8.8 → batplot-1.8.10}/batplot/session.py +0 -0
  28. {batplot-1.8.8 → batplot-1.8.10}/batplot/style.py +0 -0
  29. {batplot-1.8.8 → batplot-1.8.10}/batplot/ui.py +0 -0
  30. {batplot-1.8.8 → batplot-1.8.10}/batplot/utils.py +0 -0
  31. {batplot-1.8.8 → batplot-1.8.10}/batplot/version_check.py +0 -0
  32. {batplot-1.8.8 → batplot-1.8.10}/batplot.egg-info/SOURCES.txt +0 -0
  33. {batplot-1.8.8 → batplot-1.8.10}/batplot.egg-info/dependency_links.txt +0 -0
  34. {batplot-1.8.8 → batplot-1.8.10}/batplot.egg-info/entry_points.txt +0 -0
  35. {batplot-1.8.8 → batplot-1.8.10}/batplot.egg-info/requires.txt +0 -0
  36. {batplot-1.8.8 → batplot-1.8.10}/batplot.egg-info/top_level.txt +0 -0
  37. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/__init__.py +0 -0
  38. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/args.py +0 -0
  39. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/batch.py +0 -0
  40. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/batplot.py +0 -0
  41. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/cif.py +0 -0
  42. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/cli.py +0 -0
  43. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/color_utils.py +0 -0
  44. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/config.py +0 -0
  45. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/converters.py +0 -0
  46. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/cpc_interactive.py +0 -0
  47. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/electrochem_interactive.py +0 -0
  48. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/interactive.py +0 -0
  49. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/modes.py +0 -0
  50. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/operando.py +0 -0
  51. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/operando_ec_interactive.py +0 -0
  52. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/plotting.py +0 -0
  53. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/readers.py +0 -0
  54. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/session.py +0 -0
  55. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/style.py +0 -0
  56. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/ui.py +0 -0
  57. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/utils.py +0 -0
  58. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251121_223043/version_check.py +0 -0
  59. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/__init__.py +0 -0
  60. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/args.py +0 -0
  61. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/batch.py +0 -0
  62. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/batplot.py +0 -0
  63. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/cif.py +0 -0
  64. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/cli.py +0 -0
  65. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/color_utils.py +0 -0
  66. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/config.py +0 -0
  67. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/converters.py +0 -0
  68. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/cpc_interactive.py +0 -0
  69. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/electrochem_interactive.py +0 -0
  70. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/interactive.py +0 -0
  71. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/manual.py +0 -0
  72. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/modes.py +0 -0
  73. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/operando.py +0 -0
  74. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/operando_ec_interactive.py +0 -0
  75. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/plotting.py +0 -0
  76. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/readers.py +0 -0
  77. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/session.py +0 -0
  78. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/style.py +0 -0
  79. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/ui.py +0 -0
  80. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/utils.py +0 -0
  81. {batplot-1.8.8 → batplot-1.8.10}/batplot_backup_20251221_101150/version_check.py +0 -0
  82. {batplot-1.8.8 → batplot-1.8.10}/setup.cfg +0 -0
  83. {batplot-1.8.8 → batplot-1.8.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: batplot
3
- Version: 1.8.8
3
+ Version: 1.8.10
4
4
  Summary: Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing
5
5
  Author-email: Tian Dai <tianda@uio.no>
6
6
  License: MIT License
@@ -1,5 +1,5 @@
1
1
  """batplot: Interactive plotting for battery data visualization."""
2
2
 
3
- __version__ = "1.8.8"
3
+ __version__ = "1.8.10"
4
4
 
5
5
  __all__ = ["__version__"]
@@ -3099,16 +3099,35 @@ def batplot_main() -> int:
3099
3099
  # Step 2: Convert Q back to 2theta using second wavelength
3100
3100
  # Q = 4π sin(θ) / λ => sin(θ) = Qλ / (4π) => θ = arcsin(Qλ / (4π))
3101
3101
  sin_theta = Q * conversion_wavelength / (4 * np.pi)
3102
- # Clamp to valid range [-1, 1]
3103
- sin_theta = np.clip(sin_theta, -1.0, 1.0)
3102
+ # Check for physically impossible Q values (would require sin(θ) > 1)
3103
+ valid_mask = np.abs(sin_theta) <= 1.0
3104
+ if not np.all(valid_mask):
3105
+ # Some Q values are too high for the target wavelength
3106
+ n_invalid = np.sum(~valid_mask)
3107
+ q_max_possible = 4 * np.pi / conversion_wavelength
3108
+ print(f"Warning: {n_invalid} data points exceed Q_max={q_max_possible:.2f} Å⁻¹ for λ={conversion_wavelength} Å")
3109
+ print(f" Truncating data to physically accessible range.")
3110
+ # Truncate to valid range instead of clipping (which creates artificial data)
3111
+ x = x[valid_mask]
3112
+ y = y[valid_mask]
3113
+ sin_theta = sin_theta[valid_mask]
3104
3114
  theta_new_rad = np.arcsin(sin_theta)
3105
3115
  x_plot = np.degrees(2 * theta_new_rad)
3106
3116
  elif use_2th and file_ext == ".qye" and wavelength_file:
3107
3117
  # Convert Q to 2theta for .qye files when wavelength is provided
3108
3118
  # Q = 4π sin(θ) / λ => sin(θ) = Qλ / (4π) => θ = arcsin(Qλ / (4π))
3109
3119
  sin_theta = x * wavelength_file / (4 * np.pi)
3110
- # Clamp to valid range [-1, 1]
3111
- sin_theta = np.clip(sin_theta, -1.0, 1.0)
3120
+ # Check for physically impossible Q values
3121
+ valid_mask = np.abs(sin_theta) <= 1.0
3122
+ if not np.all(valid_mask):
3123
+ n_invalid = np.sum(~valid_mask)
3124
+ q_max_possible = 4 * np.pi / wavelength_file
3125
+ print(f"Warning: {n_invalid} data points exceed Q_max={q_max_possible:.2f} Å⁻¹ for λ={wavelength_file} Å")
3126
+ print(f" Truncating data to physically accessible range.")
3127
+ # Truncate to valid range
3128
+ x = x[valid_mask]
3129
+ y = y[valid_mask]
3130
+ sin_theta = sin_theta[valid_mask]
3112
3131
  theta_rad = np.arcsin(sin_theta)
3113
3132
  x_plot = np.degrees(2 * theta_rad)
3114
3133
  elif use_Q and file_ext not in (".qye", ".gr", ".nor"):
@@ -224,7 +224,8 @@ def convert_xrd_data(filenames, from_param: str, to_param: str):
224
224
 
225
225
  # Save converted data
226
226
  try:
227
- np.savetxt(output_fname, out_data, fmt="% .6f", header=header)
227
+ # Use UTF-8 encoding to support Greek letters (θ) in headers on all platforms
228
+ np.savetxt(output_fname, out_data, fmt="% .6f", header=header, encoding='utf-8')
228
229
  print(f"Saved {output_fname}")
229
230
  except Exception as e:
230
231
  print(f"Error saving {output_fname}: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: batplot
3
- Version: 1.8.8
3
+ Version: 1.8.10
4
4
  Summary: Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing
5
5
  Author-email: Tian Dai <tianda@uio.no>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "batplot"
7
- version = "1.8.8"
7
+ version = "1.8.10"
8
8
  description = "Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing"
9
9
  authors = [
10
10
  { name = "Tian Dai", email = "tianda@uio.no" }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes