sflkit 0.5.5__tar.gz → 0.5.6__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 (84) hide show
  1. {sflkit-0.5.5/src/sflkit.egg-info → sflkit-0.5.6}/PKG-INFO +1 -1
  2. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/__init__.py +1 -2
  3. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/runners/run.py +1 -1
  4. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/weights/__init__.py +2 -2
  5. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/weights/analyzer.py +5 -3
  6. {sflkit-0.5.5 → sflkit-0.5.6/src/sflkit.egg-info}/PKG-INFO +1 -1
  7. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_dependency_weights.py +8 -8
  8. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_runner_parallel.py +3 -1
  9. {sflkit-0.5.5 → sflkit-0.5.6}/LICENSE +0 -0
  10. {sflkit-0.5.5 → sflkit-0.5.6}/README.md +0 -0
  11. {sflkit-0.5.5 → sflkit-0.5.6}/pyproject.toml +0 -0
  12. {sflkit-0.5.5 → sflkit-0.5.6}/setup.cfg +0 -0
  13. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/__init__.py +0 -0
  14. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/analysis_type.py +0 -0
  15. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/analyzer.py +0 -0
  16. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/factory.py +0 -0
  17. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/mapping.py +0 -0
  18. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/predicate.py +0 -0
  19. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/similarity.py +0 -0
  20. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/spectra.py +0 -0
  21. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/analysis/suggestion.py +0 -0
  22. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/cli.py +0 -0
  23. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/color.py +0 -0
  24. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/config.py +0 -0
  25. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/evaluation.py +0 -0
  26. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/events/__init__.py +0 -0
  27. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/events/event_file.py +0 -0
  28. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/events/mapping.py +0 -0
  29. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/features/__init__.py +0 -0
  30. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/features/handler.py +0 -0
  31. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/features/value.py +0 -0
  32. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/features/vector.py +0 -0
  33. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/instrumentation/__init__.py +0 -0
  34. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/instrumentation/dir_instrumentation.py +0 -0
  35. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/instrumentation/file_instrumentation.py +0 -0
  36. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/__init__.py +0 -0
  37. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/extract.py +0 -0
  38. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/finder.py +0 -0
  39. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/java/__init__.py +0 -0
  40. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/java/extract.py +0 -0
  41. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/java/factory.py +0 -0
  42. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/java/finder.py +0 -0
  43. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/java/visitor.py +0 -0
  44. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/language.py +0 -0
  45. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/meta.py +0 -0
  46. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/python/__init__.py +0 -0
  47. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/python/extract.py +0 -0
  48. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/python/factory.py +0 -0
  49. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/python/finder.py +0 -0
  50. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/python/visitor.py +0 -0
  51. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/language/visitor.py +0 -0
  52. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/logger.py +0 -0
  53. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/model/__init__.py +0 -0
  54. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/model/model.py +0 -0
  55. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/model/parallel.py +0 -0
  56. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/model/scope.py +0 -0
  57. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/runners/__init__.py +0 -0
  58. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit/weights/models.py +0 -0
  59. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit.egg-info/SOURCES.txt +0 -0
  60. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit.egg-info/dependency_links.txt +0 -0
  61. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit.egg-info/entry_points.txt +0 -0
  62. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit.egg-info/requires.txt +0 -0
  63. {sflkit-0.5.5 → sflkit-0.5.6}/src/sflkit.egg-info/top_level.txt +0 -0
  64. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_analysis_objects.py +0 -0
  65. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_analyzer.py +0 -0
  66. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_cli.py +0 -0
  67. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_color.py +0 -0
  68. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_config.py +0 -0
  69. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_coverage.py +0 -0
  70. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_evaluation.py +0 -0
  71. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_events.py +0 -0
  72. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_execution.py +0 -0
  73. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_expression.py +0 -0
  74. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_features.py +0 -0
  75. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_instrumentation.py +0 -0
  76. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_language.py +0 -0
  77. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_parallelization.py +0 -0
  78. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_predicates.py +0 -0
  79. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_runner.py +0 -0
  80. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_runner_pytest_versions.py +0 -0
  81. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_scope.py +0 -0
  82. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_spectra.py +0 -0
  83. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_suggestions.py +0 -0
  84. {sflkit-0.5.5 → sflkit-0.5.6}/tests/test_visitors.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sflkit
3
- Version: 0.5.5
3
+ Version: 0.5.6
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
5
  Author-email: Marius Smytzek <marius.smytzek@cispa.de>
6
6
  Project-URL: Homepage, https://github.com/smythi93/sflkit/
@@ -5,8 +5,7 @@ from sflkit.analysis.analyzer import Analyzer
5
5
  from sflkit.config import Config, parse_config
6
6
  from sflkit.instrumentation.dir_instrumentation import DirInstrumentation
7
7
 
8
-
9
- __version__ = "0.5.5"
8
+ __version__ = "0.5.6"
10
9
 
11
10
 
12
11
  def instrument_config(conf: Config):
@@ -666,7 +666,7 @@ class ParallelInputRunner(InputRunner):
666
666
 
667
667
  with ProcessPoolExecutor(max_workers=self.workers) as executor:
668
668
  # Consume the iterator to ensure all tasks complete
669
- executor.map(self.process_test, tests)
669
+ list(executor.map(self.process_test, tests))
670
670
 
671
671
  # Ensure all files are flushed to disk (helps with race conditions in CI)
672
672
  os.sync()
@@ -1,4 +1,4 @@
1
- from sflkit.weights.analyzer import TimeAnalyzer
1
+ from sflkit.weights.analyzer import ProximityAnalyzer
2
2
  from sflkit.weights.models import (
3
3
  TestTimeModel,
4
4
  TestFunctionModel,
@@ -10,7 +10,7 @@ from sflkit.weights.models import (
10
10
  )
11
11
 
12
12
  __all__ = [
13
- "TimeAnalyzer",
13
+ "ProximityAnalyzer",
14
14
  "TestTimeModel",
15
15
  "TestFunctionModel",
16
16
  "TestLineModel",
@@ -12,7 +12,7 @@ from sflkit.events.event_file import EventFile
12
12
  from sflkit.model.model import MetaModel
13
13
 
14
14
 
15
- class TimeAnalyzer(Analyzer):
15
+ class ProximityAnalyzer(Analyzer):
16
16
  def __init__(
17
17
  self,
18
18
  model_class: Type[TestTimeModel],
@@ -51,10 +51,12 @@ class TimeAnalyzer(Analyzer):
51
51
 
52
52
  @staticmethod
53
53
  def load_with_dependencies(path: os.PathLike, model_class: Type[TestTimeModel]):
54
- return TimeAnalyzer(model_class, meta_model=MetaModel(load_analysis_json(path)))
54
+ return ProximityAnalyzer(
55
+ model_class, meta_model=MetaModel(load_analysis_json(path))
56
+ )
55
57
 
56
58
  @staticmethod
57
59
  def loads_with_dependencies(data: str, model_class: Type[TestTimeModel]):
58
- return TimeAnalyzer(
60
+ return ProximityAnalyzer(
59
61
  model_class, meta_model=MetaModel(set(map(deserialize, json.loads(data))))
60
62
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sflkit
3
- Version: 0.5.5
3
+ Version: 0.5.6
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
5
  Author-email: Marius Smytzek <marius.smytzek@cispa.de>
6
6
  Project-URL: Homepage, https://github.com/smythi93/sflkit/
@@ -4,7 +4,7 @@ from pathlib import Path
4
4
  from sflkit import Config, instrument_config
5
5
  from sflkit.analysis.analysis_type import AnalysisType
6
6
  from sflkit.analysis.suggestion import Location
7
- from sflkit.weights.analyzer import TimeAnalyzer
7
+ from sflkit.weights.analyzer import ProximityAnalyzer
8
8
  from sflkit.weights.models import (
9
9
  TestLineModel,
10
10
  TestDefUseModel,
@@ -39,7 +39,7 @@ class TestTimeWeights(BaseTest):
39
39
  output = Path(BaseTest.TEST_DIR, "events").absolute()
40
40
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
41
41
  mapping = EventMapping.load(config)
42
- analyzer = TimeAnalyzer(
42
+ analyzer = ProximityAnalyzer(
43
43
  TestFunctionModel,
44
44
  [
45
45
  EventFile(
@@ -82,7 +82,7 @@ class TestTimeWeights(BaseTest):
82
82
  output = Path(BaseTest.TEST_DIR, "events").absolute()
83
83
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
84
84
  mapping = EventMapping.load(config)
85
- analyzer = TimeAnalyzer(
85
+ analyzer = ProximityAnalyzer(
86
86
  TestLineModel,
87
87
  [
88
88
  EventFile(
@@ -130,7 +130,7 @@ class TestTimeWeights(BaseTest):
130
130
  output = Path(BaseTest.TEST_DIR, "events").absolute()
131
131
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
132
132
  mapping = EventMapping.load(config)
133
- analyzer = TimeAnalyzer(
133
+ analyzer = ProximityAnalyzer(
134
134
  TestDefUseModel,
135
135
  [
136
136
  EventFile(
@@ -178,7 +178,7 @@ class TestTimeWeights(BaseTest):
178
178
  output = Path(BaseTest.TEST_DIR, "events").absolute()
179
179
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
180
180
  mapping = EventMapping.load(config)
181
- analyzer = TimeAnalyzer(
181
+ analyzer = ProximityAnalyzer(
182
182
  TestDefUsesModel,
183
183
  [
184
184
  EventFile(
@@ -225,7 +225,7 @@ class TestTimeWeights(BaseTest):
225
225
  output = Path(BaseTest.TEST_DIR, "events").absolute()
226
226
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
227
227
  mapping = EventMapping.load(config)
228
- analyzer = TimeAnalyzer(
228
+ analyzer = ProximityAnalyzer(
229
229
  TestAssertDefUseModel,
230
230
  [
231
231
  EventFile(
@@ -272,7 +272,7 @@ class TestTimeWeights(BaseTest):
272
272
  output = Path(BaseTest.TEST_DIR, "events").absolute()
273
273
  runner.run(Path(BaseTest.TEST_DIR), output, files=["test.py"])
274
274
  mapping = EventMapping.load(config)
275
- analyzer = TimeAnalyzer(
275
+ analyzer = ProximityAnalyzer(
276
276
  TestAssertDefUsesModel,
277
277
  [
278
278
  EventFile(
@@ -337,7 +337,7 @@ class TestTimeWeights(BaseTest):
337
337
  ],
338
338
  expectations,
339
339
  ):
340
- analyzer = TimeAnalyzer(
340
+ analyzer = ProximityAnalyzer(
341
341
  model_class,
342
342
  [
343
343
  EventFile(
@@ -80,13 +80,15 @@ class ParallelRunnerTests(BaseTest):
80
80
  working=BaseTest.TEST_DIR,
81
81
  exclude="tests",
82
82
  mapping_path=BaseTest.TEST_MAPPING,
83
+ thread_support=True,
83
84
  )
84
85
  instrument_config(config)
85
86
  runner = ParallelInputRunner(
86
- "main.py",
87
+ Path("main.py"),
87
88
  failing=[["2", "1", "3"]],
88
89
  passing=[["3", "2", "1"], ["3", "1", "2"]],
89
90
  workers=4,
91
+ thread_support=True,
90
92
  )
91
93
  output = Path(BaseTest.TEST_DIR, "events").absolute()
92
94
  runner.run(Path(BaseTest.TEST_DIR), output)
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes