sinter 1.16.dev1748073630__tar.gz → 1.16.dev1750923543__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.

Potentially problematic release.


This version of sinter might be problematic. Click here for more details.

Files changed (67) hide show
  1. {sinter-1.16.dev1748073630/src/sinter.egg-info → sinter-1.16.dev1750923543}/PKG-INFO +1 -1
  2. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/setup.py +1 -1
  3. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/__init__.py +1 -1
  4. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_anon_task_stats.py +6 -5
  5. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_csv_out.py +3 -0
  6. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_task_stats.py +11 -11
  7. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_task_stats_test.py +1 -1
  8. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543/src/sinter.egg-info}/PKG-INFO +1 -1
  9. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/MANIFEST.in +0 -0
  10. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/README.md +0 -0
  11. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/readme_example_plot.png +0 -0
  12. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/requirements.txt +0 -0
  13. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/setup.cfg +0 -0
  14. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/__init__.py +0 -0
  15. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection.py +0 -0
  16. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_manager.py +0 -0
  17. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_manager_test.py +0 -0
  18. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_test.py +0 -0
  19. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_worker_loop.py +0 -0
  20. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_worker_state.py +0 -0
  21. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_collection_worker_test.py +0 -0
  22. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_mux_sampler.py +0 -0
  23. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_printer.py +0 -0
  24. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_sampler_ramp_throttled.py +0 -0
  25. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_collection/_sampler_ramp_throttled_test.py +0 -0
  26. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/__init__.py +0 -0
  27. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main.py +0 -0
  28. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_collect.py +0 -0
  29. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_collect_test.py +0 -0
  30. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_combine.py +0 -0
  31. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_combine_test.py +0 -0
  32. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_plot.py +0 -0
  33. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_plot_test.py +0 -0
  34. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_predict.py +0 -0
  35. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_command/_main_predict_test.py +0 -0
  36. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/__init__.py +0 -0
  37. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_anon_task_stats_test.py +0 -0
  38. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_collection_options.py +0 -0
  39. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_collection_options_test.py +0 -0
  40. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_existing_data.py +0 -0
  41. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_existing_data_test.py +0 -0
  42. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_task.py +0 -0
  43. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_data/_task_test.py +0 -0
  44. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/__init__.py +0 -0
  45. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding.py +0 -0
  46. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_all_built_in_decoders.py +0 -0
  47. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_decoder_class.py +0 -0
  48. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_fusion_blossom.py +0 -0
  49. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_mwpf.py +0 -0
  50. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_pymatching.py +0 -0
  51. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_test.py +0 -0
  52. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_decoding_vacuous.py +0 -0
  53. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_perfectionist_sampler.py +0 -0
  54. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_sampler.py +0 -0
  55. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_stim_then_decode_sampler.py +0 -0
  56. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_decoding/_stim_then_decode_sampler_test.py +0 -0
  57. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_plotting.py +0 -0
  58. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_plotting_test.py +0 -0
  59. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_predict.py +0 -0
  60. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_predict_test.py +0 -0
  61. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_probability_util.py +0 -0
  62. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter/_probability_util_test.py +0 -0
  63. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter.egg-info/SOURCES.txt +0 -0
  64. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter.egg-info/dependency_links.txt +0 -0
  65. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter.egg-info/entry_points.txt +0 -0
  66. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter.egg-info/requires.txt +0 -0
  67. {sinter-1.16.dev1748073630 → sinter-1.16.dev1750923543}/src/sinter.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sinter
3
- Version: 1.16.dev1748073630
3
+ Version: 1.16.dev1750923543
4
4
  Summary: Samples stim circuits and decodes them using pymatching.
5
5
  Author: Craig Gidney
6
6
  Author-email: craig.gidney@gmail.com
@@ -19,7 +19,7 @@ with open('README.md', encoding='UTF-8') as f:
19
19
  with open('requirements.txt', encoding='UTF-8') as f:
20
20
  requirements = f.read().splitlines()
21
21
 
22
- __version__ = '1.16.dev1748073630'
22
+ __version__ = '1.16.dev1750923543'
23
23
 
24
24
  setup(
25
25
  name='sinter',
@@ -1,4 +1,4 @@
1
- __version__ = '1.16.dev1748073630'
1
+ __version__ = '1.16.dev1750923543'
2
2
 
3
3
  from sinter._collection import (
4
4
  collect,
@@ -1,6 +1,7 @@
1
1
  import collections
2
2
  import dataclasses
3
3
  from typing import Counter, Union, TYPE_CHECKING
4
+ import numpy as np
4
5
 
5
6
  if TYPE_CHECKING:
6
7
  from sinter._data._task_stats import TaskStats
@@ -34,16 +35,16 @@ class AnonTaskStats:
34
35
  custom_counts: Counter[str] = dataclasses.field(default_factory=collections.Counter)
35
36
 
36
37
  def __post_init__(self):
37
- assert isinstance(self.errors, int)
38
- assert isinstance(self.shots, int)
39
- assert isinstance(self.discards, int)
40
- assert isinstance(self.seconds, (int, float))
38
+ assert isinstance(self.errors, (int, np.integer))
39
+ assert isinstance(self.shots, (int, np.integer))
40
+ assert isinstance(self.discards, (int, np.integer))
41
+ assert isinstance(self.seconds, (int, float, np.integer, np.floating))
41
42
  assert isinstance(self.custom_counts, collections.Counter)
42
43
  assert self.errors >= 0
43
44
  assert self.discards >= 0
44
45
  assert self.seconds >= 0
45
46
  assert self.shots >= self.errors + self.discards
46
- assert all(isinstance(k, str) and isinstance(v, int) for k, v in self.custom_counts.items())
47
+ assert all(isinstance(k, str) and isinstance(v, (int, np.integer)) for k, v in self.custom_counts.items())
47
48
 
48
49
  def __repr__(self) -> str:
49
50
  terms = []
@@ -36,6 +36,9 @@ def csv_line(*,
36
36
  separators=(',', ':'),
37
37
  sort_keys=True)
38
38
  if custom_counts:
39
+ # Ensure all custom_counts values are integers before dumping to JSON
40
+ for k in custom_counts:
41
+ custom_counts[k] = int(custom_counts[k])
39
42
  custom_counts = escape_csv(
40
43
  json.dumps(custom_counts,
41
44
  separators=(',', ':'),
@@ -4,7 +4,7 @@ from typing import Counter, List, Any
4
4
  from typing import Optional
5
5
  from typing import Union
6
6
  from typing import overload
7
-
7
+ import numpy as np
8
8
  from sinter._data._anon_task_stats import AnonTaskStats
9
9
  from sinter._data._csv_out import csv_line
10
10
 
@@ -71,10 +71,10 @@ class TaskStats:
71
71
  custom_counts: Counter[str] = dataclasses.field(default_factory=collections.Counter)
72
72
 
73
73
  def __post_init__(self):
74
- assert isinstance(self.errors, int)
75
- assert isinstance(self.shots, int)
76
- assert isinstance(self.discards, int)
77
- assert isinstance(self.seconds, (int, float))
74
+ assert isinstance(self.errors, (int, np.integer))
75
+ assert isinstance(self.shots, (int, np.integer))
76
+ assert isinstance(self.discards, (int, np.integer))
77
+ assert isinstance(self.seconds, (int, float, np.integer, np.floating))
78
78
  assert isinstance(self.custom_counts, collections.Counter)
79
79
  assert isinstance(self.decoder, str)
80
80
  assert isinstance(self.strong_id, str)
@@ -83,7 +83,7 @@ class TaskStats:
83
83
  assert self.discards >= 0
84
84
  assert self.seconds >= 0
85
85
  assert self.shots >= self.errors + self.discards
86
- assert all(isinstance(k, str) and isinstance(v, int) for k, v in self.custom_counts.items())
86
+ assert all(isinstance(k, str) and isinstance(v, (int, np.integer)) for k, v in self.custom_counts.items())
87
87
 
88
88
  def with_edits(
89
89
  self,
@@ -190,13 +190,13 @@ class TaskStats:
190
190
  >>> print(sinter.CSV_HEADER)
191
191
  shots, errors, discards, seconds,decoder,strong_id,json_metadata,custom_counts
192
192
  >>> print(stat.to_csv_line())
193
- 22, 3, 0, 5,pymatching,test,"{""a"":[1,2,3]}",
193
+ 22, 3, 0, 5.00,pymatching,test,"{""a"":[1,2,3]}",
194
194
  """
195
195
  return csv_line(
196
- shots=self.shots,
197
- errors=self.errors,
198
- seconds=self.seconds,
199
- discards=self.discards,
196
+ shots=int(self.shots),
197
+ errors=int(self.errors),
198
+ seconds=float(self.seconds),
199
+ discards=int(self.discards),
200
200
  strong_id=self.strong_id,
201
201
  decoder=self.decoder,
202
202
  json_metadata=self.json_metadata,
@@ -29,7 +29,7 @@ def test_to_csv_line():
29
29
  discards=4,
30
30
  seconds=5,
31
31
  )
32
- assert v.to_csv_line() == str(v) == ' 22, 3, 4, 5,pymatching,test,"{""a"":[1,2,3]}",'
32
+ assert v.to_csv_line() == str(v) == ' 22, 3, 4, 5.00,pymatching,test,"{""a"":[1,2,3]}",'
33
33
 
34
34
 
35
35
  def test_to_anon_stats():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sinter
3
- Version: 1.16.dev1748073630
3
+ Version: 1.16.dev1750923543
4
4
  Summary: Samples stim circuits and decodes them using pymatching.
5
5
  Author: Craig Gidney
6
6
  Author-email: craig.gidney@gmail.com