sflkit 0.3.5__tar.gz → 0.4.0__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 (79) hide show
  1. {sflkit-0.3.5/src/sflkit.egg-info → sflkit-0.4.0}/PKG-INFO +3 -2
  2. {sflkit-0.3.5 → sflkit-0.4.0}/pyproject.toml +1 -1
  3. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/handler.py +4 -4
  4. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/runners/run.py +1 -0
  5. {sflkit-0.3.5 → sflkit-0.4.0/src/sflkit.egg-info}/PKG-INFO +3 -2
  6. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_visitors.py +4 -4
  7. {sflkit-0.3.5 → sflkit-0.4.0}/LICENSE +0 -0
  8. {sflkit-0.3.5 → sflkit-0.4.0}/README.md +0 -0
  9. {sflkit-0.3.5 → sflkit-0.4.0}/setup.cfg +0 -0
  10. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/__init__.py +0 -0
  11. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/__init__.py +0 -0
  12. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/analysis_type.py +0 -0
  13. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/analyzer.py +0 -0
  14. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/factory.py +0 -0
  15. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/mapping.py +0 -0
  16. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/predicate.py +0 -0
  17. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/similarity.py +0 -0
  18. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/spectra.py +0 -0
  19. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/analysis/suggestion.py +0 -0
  20. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/cli.py +0 -0
  21. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/color.py +0 -0
  22. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/config.py +0 -0
  23. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/evaluation.py +0 -0
  24. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/__init__.py +0 -0
  25. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/event_file.py +0 -0
  26. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/events/mapping.py +0 -0
  27. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/__init__.py +0 -0
  28. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/value.py +0 -0
  29. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/features/vector.py +0 -0
  30. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/__init__.py +0 -0
  31. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/dir_instrumentation.py +0 -0
  32. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/instrumentation/file_instrumentation.py +0 -0
  33. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/__init__.py +0 -0
  34. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/extract.py +0 -0
  35. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/finder.py +0 -0
  36. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/__init__.py +0 -0
  37. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/extract.py +0 -0
  38. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/factory.py +0 -0
  39. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/finder.py +0 -0
  40. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/java/visitor.py +0 -0
  41. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/language.py +0 -0
  42. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/meta.py +0 -0
  43. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/__init__.py +0 -0
  44. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/extract.py +0 -0
  45. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/factory.py +0 -0
  46. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/finder.py +0 -0
  47. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/python/visitor.py +0 -0
  48. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/language/visitor.py +0 -0
  49. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/logger.py +0 -0
  50. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/__init__.py +0 -0
  51. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/model.py +0 -0
  52. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/model/scope.py +0 -0
  53. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/runners/__init__.py +0 -0
  54. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/__init__.py +0 -0
  55. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/analyzer.py +0 -0
  56. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit/weights/models.py +0 -0
  57. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/SOURCES.txt +0 -0
  58. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/dependency_links.txt +0 -0
  59. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/entry_points.txt +0 -0
  60. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/requires.txt +0 -0
  61. {sflkit-0.3.5 → sflkit-0.4.0}/src/sflkit.egg-info/top_level.txt +0 -0
  62. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_analysis_objects.py +0 -0
  63. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_analyzer.py +0 -0
  64. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_cli.py +0 -0
  65. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_color.py +0 -0
  66. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_config.py +0 -0
  67. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_coverage.py +0 -0
  68. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_dependency_weights.py +0 -0
  69. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_evaluation.py +0 -0
  70. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_events.py +0 -0
  71. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_execution.py +0 -0
  72. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_instrumentation.py +0 -0
  73. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_language.py +0 -0
  74. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_predicates.py +0 -0
  75. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_runner.py +0 -0
  76. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_runner_pytest_versions.py +0 -0
  77. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_scope.py +0 -0
  78. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_spectra.py +0 -0
  79. {sflkit-0.3.5 → sflkit-0.4.0}/tests/test_suggestions.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: sflkit
3
- Version: 0.3.5
3
+ Version: 0.4.0
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
5
  Author-email: Marius Smytzek <marius.smytzek@cispa.de>
6
6
  License: MIT License
@@ -47,6 +47,7 @@ Requires-Dist: pytest-cov>=6.0.0; extra == "test"
47
47
  Requires-Dist: pytest-html>=4.1.1; extra == "test"
48
48
  Requires-Dist: pytest-rerunfailures>=15.0; extra == "test"
49
49
  Requires-Dist: parameterized>=0.9.0; extra == "test"
50
+ Dynamic: license-file
50
51
 
51
52
  # SFLKit: A Workbench for Statistical Fault Localization
52
53
 
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "sflkit"
10
- version = "0.3.5"
10
+ version = "0.4.0"
11
11
  authors = [
12
12
  { name = "Marius Smytzek", email = "marius.smytzek@cispa.de" },
13
13
  ]
@@ -78,14 +78,14 @@ class FeatureBuilder(CombinationFactory):
78
78
  def hit(self, id_, *args, **kwargs):
79
79
  event: Event
80
80
  for a in self.analysis:
81
- if isinstance(a, Spectrum):
82
- feature = BinaryFeature(str(a), a)
81
+ if isinstance(a, Predicate):
82
+ feature = TertiaryFeature(str(a), a)
83
83
  self.feature_vectors[id_].set_feature(
84
84
  feature, self.map_evaluation(a, id_)
85
85
  )
86
86
  self.all_features.add(feature)
87
- elif isinstance(a, Predicate):
88
- feature = TertiaryFeature(str(a), a)
87
+ elif isinstance(a, Spectrum):
88
+ feature = BinaryFeature(str(a), a)
89
89
  self.feature_vectors[id_].set_feature(
90
90
  feature, self.map_evaluation(a, id_)
91
91
  )
@@ -401,6 +401,7 @@ class PytestRunner(Runner):
401
401
  cwd=directory,
402
402
  )
403
403
  LOGGER.debug(f"pytest collection finished with {process.returncode}")
404
+ LOGGER.debug(process.stderr.decode("utf8"))
404
405
  tests = PytestStructure.parse_tests(process.stdout.decode("utf8"))
405
406
  LOGGER.debug(f"pytest collection found {len(tests)} tests")
406
407
  return self.normalize_paths(tests, file_bases, directory, root_dir)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: sflkit
3
- Version: 0.3.5
3
+ Version: 0.4.0
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
5
  Author-email: Marius Smytzek <marius.smytzek@cispa.de>
6
6
  License: MIT License
@@ -47,6 +47,7 @@ Requires-Dist: pytest-cov>=6.0.0; extra == "test"
47
47
  Requires-Dist: pytest-html>=4.1.1; extra == "test"
48
48
  Requires-Dist: pytest-rerunfailures>=15.0; extra == "test"
49
49
  Requires-Dist: parameterized>=0.9.0; extra == "test"
50
+ Dynamic: license-file
50
51
 
51
52
  # SFLKit: A Workbench for Statistical Fault Localization
52
53
 
@@ -24,7 +24,7 @@ class VarExtractionTest(unittest.TestCase):
24
24
  "[d + r for d in ds if any(r for r in ds)]", ["ds", "r"], ["d"]
25
25
  )
26
26
  self._test_extract(
27
- '[d for d in ds if d.name == "test"]', ["ds"], ["d", "d.name"]
27
+ '[d for d in ds if d.name == "test"]', ["ds", "d.name"], ["d"]
28
28
  )
29
29
  self._test_extract("(d for d in ds)", ["ds"], ["d"])
30
30
  self._test_extract("(d for d in ds if any(r for r in ds))", ["ds"], ["d", "r"])
@@ -32,7 +32,7 @@ class VarExtractionTest(unittest.TestCase):
32
32
  "(d + r for d in ds if any(r for r in ds))", ["ds", "r"], ["d"]
33
33
  )
34
34
  self._test_extract(
35
- '(d for d in ds if d.name == "test")', ["ds"], ["d", "d.name"]
35
+ '(d for d in ds if d.name == "test")', ["ds", "d.name"], ["d"]
36
36
  )
37
37
  self._test_extract("{d for d in ds}", ["ds"], ["d"])
38
38
  self._test_extract("{d for d in ds if any(r for r in ds)}", ["ds"], ["d", "r"])
@@ -40,12 +40,12 @@ class VarExtractionTest(unittest.TestCase):
40
40
  "{d + r for d in ds if any(r for r in ds)}", ["ds", "r"], ["d"]
41
41
  )
42
42
  self._test_extract(
43
- '{d for d in ds if d.name == "test"}', ["ds"], ["d", "d.name"]
43
+ '{d for d in ds if d.name == "test"}', ["ds", "d.name"], ["d"]
44
44
  )
45
45
 
46
46
  def test_lambda(self):
47
47
  self._test_extract("lambda d: d + r", ["r"], ["d"])
48
- self._test_extract("lambda d: d.name", [], ["d", "d.name"])
48
+ self._test_extract("lambda d: d.name", ["d.name"], ["d"])
49
49
 
50
50
  def test_arguments(self):
51
51
  self._test_extract("def f(x=y):\n pass", ["x"], ["y"], use=False)
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