sflkit 0.3.3__tar.gz → 0.3.5__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.3/src/sflkit.egg-info → sflkit-0.3.5}/PKG-INFO +3 -2
  2. {sflkit-0.3.3 → sflkit-0.3.5}/pyproject.toml +5 -2
  3. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/config.py +1 -1
  4. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/python/extract.py +2 -5
  5. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/runners/run.py +5 -1
  6. {sflkit-0.3.3 → sflkit-0.3.5/src/sflkit.egg-info}/PKG-INFO +3 -2
  7. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit.egg-info/requires.txt +1 -1
  8. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_visitors.py +2 -2
  9. {sflkit-0.3.3 → sflkit-0.3.5}/LICENSE +0 -0
  10. {sflkit-0.3.3 → sflkit-0.3.5}/README.md +0 -0
  11. {sflkit-0.3.3 → sflkit-0.3.5}/setup.cfg +0 -0
  12. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/__init__.py +0 -0
  13. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/__init__.py +0 -0
  14. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/analysis_type.py +0 -0
  15. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/analyzer.py +0 -0
  16. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/factory.py +0 -0
  17. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/mapping.py +0 -0
  18. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/predicate.py +0 -0
  19. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/similarity.py +0 -0
  20. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/spectra.py +0 -0
  21. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/analysis/suggestion.py +0 -0
  22. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/cli.py +0 -0
  23. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/color.py +0 -0
  24. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/evaluation.py +0 -0
  25. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/events/__init__.py +0 -0
  26. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/events/event_file.py +0 -0
  27. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/events/mapping.py +0 -0
  28. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/features/__init__.py +0 -0
  29. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/features/handler.py +0 -0
  30. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/features/value.py +0 -0
  31. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/features/vector.py +0 -0
  32. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/instrumentation/__init__.py +0 -0
  33. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/instrumentation/dir_instrumentation.py +0 -0
  34. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/instrumentation/file_instrumentation.py +0 -0
  35. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/__init__.py +0 -0
  36. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/extract.py +0 -0
  37. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/finder.py +0 -0
  38. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/java/__init__.py +0 -0
  39. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/java/extract.py +0 -0
  40. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/java/factory.py +0 -0
  41. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/java/finder.py +0 -0
  42. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/java/visitor.py +0 -0
  43. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/language.py +0 -0
  44. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/meta.py +0 -0
  45. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/python/__init__.py +0 -0
  46. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/python/factory.py +0 -0
  47. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/python/finder.py +0 -0
  48. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/python/visitor.py +0 -0
  49. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/language/visitor.py +0 -0
  50. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/logger.py +0 -0
  51. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/model/__init__.py +0 -0
  52. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/model/model.py +0 -0
  53. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/model/scope.py +0 -0
  54. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/runners/__init__.py +0 -0
  55. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/weights/__init__.py +0 -0
  56. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/weights/analyzer.py +0 -0
  57. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit/weights/models.py +0 -0
  58. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit.egg-info/SOURCES.txt +0 -0
  59. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit.egg-info/dependency_links.txt +0 -0
  60. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit.egg-info/entry_points.txt +0 -0
  61. {sflkit-0.3.3 → sflkit-0.3.5}/src/sflkit.egg-info/top_level.txt +0 -0
  62. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_analysis_objects.py +0 -0
  63. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_analyzer.py +0 -0
  64. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_cli.py +0 -0
  65. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_color.py +0 -0
  66. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_config.py +0 -0
  67. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_coverage.py +0 -0
  68. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_dependency_weights.py +0 -0
  69. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_evaluation.py +0 -0
  70. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_events.py +0 -0
  71. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_execution.py +0 -0
  72. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_instrumentation.py +0 -0
  73. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_language.py +0 -0
  74. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_predicates.py +0 -0
  75. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_runner.py +0 -0
  76. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_runner_pytest_versions.py +0 -0
  77. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_scope.py +0 -0
  78. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_spectra.py +0 -0
  79. {sflkit-0.3.3 → sflkit-0.3.5}/tests/test_suggestions.py +0 -0
@@ -1,7 +1,8 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sflkit
3
- Version: 0.3.3
3
+ Version: 0.3.5
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
+ Author-email: Marius Smytzek <marius.smytzek@cispa.de>
5
6
  License: MIT License
6
7
 
7
8
  Copyright (c) 2022 Marius Smytzek
@@ -34,7 +35,7 @@ Classifier: Topic :: Software Development :: Testing
34
35
  Requires-Python: >=3.10
35
36
  Description-Content-Type: text/markdown
36
37
  License-File: LICENSE
37
- Requires-Dist: sflkitlib>=0.1.0
38
+ Requires-Dist: sflkitlib>=0.1.1
38
39
  Requires-Dist: numpy>=2.1.3
39
40
  Requires-Dist: matplotlib>=3.10.0
40
41
  Requires-Dist: pandas>=2.2.3
@@ -7,7 +7,10 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "sflkit"
10
- version = "0.3.3"
10
+ version = "0.3.5"
11
+ authors = [
12
+ { name = "Marius Smytzek", email = "marius.smytzek@cispa.de" },
13
+ ]
11
14
  description = "SFLKit: : A Workbench for Statistical Fault Localization"
12
15
  readme = "README.md"
13
16
  license = { file = "LICENSE" }
@@ -20,7 +23,7 @@ classifiers = [
20
23
  "Topic :: Software Development :: Testing"
21
24
  ]
22
25
  dependencies = [
23
- "sflkitlib>=0.1.0",
26
+ "sflkitlib>=0.1.1",
24
27
  "numpy>=2.1.3",
25
28
  "matplotlib>=3.10.0",
26
29
  "pandas>=2.2.3",
@@ -62,7 +62,7 @@ class Config:
62
62
 
63
63
  def __init__(self, path: Union[str, configparser.ConfigParser] = None):
64
64
  self.target_path = None
65
- self.language = None
65
+ self.language: Language = None
66
66
  self.predicates = list()
67
67
  self.factory = None
68
68
  self.test_factory = None
@@ -54,11 +54,8 @@ class PythonVarExtract(ast.NodeVisitor, VariableExtract):
54
54
  def visit_Attribute(self, node: ast.Attribute) -> Any:
55
55
  variables = self.visit(node.value)
56
56
  if self.check_Attribute(node):
57
- return (variables if self.use else {}) | OrderedSet(
58
- f"{variable}.{node.attr}"
59
- for variable in variables
60
- if variable not in self.current_ignores
61
- )
57
+ return (variables if self.use else {}) | OrderedSet([
58
+ ast.unparse(node)])
62
59
  else:
63
60
  return variables
64
61
 
@@ -400,8 +400,9 @@ class PytestRunner(Runner):
400
400
  env=environ,
401
401
  cwd=directory,
402
402
  )
403
- LOGGER.info(f"pytest collection finished with {process.returncode}")
403
+ LOGGER.debug(f"pytest collection finished with {process.returncode}")
404
404
  tests = PytestStructure.parse_tests(process.stdout.decode("utf8"))
405
+ LOGGER.debug(f"pytest collection found {len(tests)} tests")
405
406
  return self.normalize_paths(tests, file_bases, directory, root_dir)
406
407
 
407
408
  @staticmethod
@@ -439,10 +440,13 @@ class PytestRunner(Runner):
439
440
  if passing > 0 and failing == 0:
440
441
  return TestResult.PASSING
441
442
  elif failing > 0 and passing == 0:
443
+ LOGGER.debug(output.decode("utf8"))
442
444
  return TestResult.FAILING
443
445
  else:
446
+ LOGGER.debug(output.decode("utf8"))
444
447
  return TestResult.UNDEFINED
445
448
  else:
449
+ LOGGER.debug(output.decode("utf8"))
446
450
  return TestResult.UNDEFINED
447
451
 
448
452
 
@@ -1,7 +1,8 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sflkit
3
- Version: 0.3.3
3
+ Version: 0.3.5
4
4
  Summary: SFLKit: : A Workbench for Statistical Fault Localization
5
+ Author-email: Marius Smytzek <marius.smytzek@cispa.de>
5
6
  License: MIT License
6
7
 
7
8
  Copyright (c) 2022 Marius Smytzek
@@ -34,7 +35,7 @@ Classifier: Topic :: Software Development :: Testing
34
35
  Requires-Python: >=3.10
35
36
  Description-Content-Type: text/markdown
36
37
  License-File: LICENSE
37
- Requires-Dist: sflkitlib>=0.1.0
38
+ Requires-Dist: sflkitlib>=0.1.1
38
39
  Requires-Dist: numpy>=2.1.3
39
40
  Requires-Dist: matplotlib>=3.10.0
40
41
  Requires-Dist: pandas>=2.2.3
@@ -1,4 +1,4 @@
1
- sflkitlib>=0.1.0
1
+ sflkitlib>=0.1.1
2
2
  numpy>=2.1.3
3
3
  matplotlib>=3.10.0
4
4
  pandas>=2.2.3
@@ -53,9 +53,9 @@ class VarExtractionTest(unittest.TestCase):
53
53
 
54
54
  def test_attribute(self):
55
55
  self._test_extract("x.y", ["x", "x.y"], ["y"])
56
- self._test_extract("x.y.z", ["x", "x.y", "x.y.z"], ["y", "z", "y.z"])
56
+ self._test_extract("x.y.z", ["x", "x.y", "x.y.z"], ["y", "z", "y.z", "x.z"])
57
57
  self._test_extract("x.y", ["x.y"], ["x", "y"], use=False)
58
- self._test_extract("x.y.z", ["x.y.z"], ["x", "x.y", "y", "z", "y.z"], use=False)
58
+ self._test_extract("x.y.z", ["x.y.z"], ["x", "x.y", "y", "z", "y.z", "x.z"], use=False)
59
59
  self._test_extract(
60
60
  "x.f().z", ["x", "x.f"], ["f()", "z", "x.f()", "x.f().z", "f().z"]
61
61
  )
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