python-ort 0.8.12__tar.gz → 0.8.15__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 (113) hide show
  1. {python_ort-0.8.12 → python_ort-0.8.15}/PKG-INFO +2 -2
  2. {python_ort-0.8.12 → python_ort-0.8.15}/pyproject.toml +6 -6
  3. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/advisor_details.py +10 -0
  4. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/advisor_result.py +10 -0
  5. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/package_configuration.py +5 -1
  6. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/scan_storage_configuration.py +2 -2
  7. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/copyright_finding.py +8 -0
  8. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/license_finding.py +8 -0
  9. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/text_location.py +0 -2
  10. {python_ort-0.8.12 → python_ort-0.8.15}/LICENSE +0 -0
  11. {python_ort-0.8.12 → python_ort-0.8.15}/README.md +0 -0
  12. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/__init__.py +0 -0
  13. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/__init__.py +0 -0
  14. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/advisor_capability.py +0 -0
  15. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/advisor_run.py +0 -0
  16. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/advisor_summary.py +0 -0
  17. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/analyzer_result.py +0 -0
  18. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/analyzer_run.py +0 -0
  19. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/base_run.py +0 -0
  20. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/__init__.py +0 -0
  21. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/advisor_configuration.py +0 -0
  22. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/analyzer_configuration.py +0 -0
  23. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/curations.py +0 -0
  24. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/excludes.py +0 -0
  25. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/file_archiver_configuration.py +0 -0
  26. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/file_list_storage_configuration.py +0 -0
  27. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/file_storage_configuration.py +0 -0
  28. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/http_file_storage_configuration.py +0 -0
  29. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/includes.py +0 -0
  30. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/issue_resolution.py +0 -0
  31. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/issue_resolution_reason.py +0 -0
  32. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/license_choices.py +0 -0
  33. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/license_finding_curation.py +0 -0
  34. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/license_finding_curation_reason.py +0 -0
  35. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/local_file_storage_configuration.py +0 -0
  36. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/package_manager_configuration.py +0 -0
  37. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/path_exclude.py +0 -0
  38. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/path_exclude_reason.py +0 -0
  39. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/path_include.py +0 -0
  40. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/path_include_reason.py +0 -0
  41. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/postgres_connection.py +0 -0
  42. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/provenance_storage_configuration.py +0 -0
  43. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/repository_analyzer_configuration.py +0 -0
  44. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/repository_configuration.py +0 -0
  45. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/resolutions.py +0 -0
  46. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/rule_violation_reason.py +0 -0
  47. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/rule_violation_resolution.py +0 -0
  48. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/s3_file_storage_configuration.py +0 -0
  49. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/scanner_configuration.py +0 -0
  50. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/scope_exclude.py +0 -0
  51. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/scope_exclude_reason.py +0 -0
  52. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/snippet/__init__.py +0 -0
  53. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/snippet/snippet_choice.py +0 -0
  54. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/snippet/snippet_choice_reason.py +0 -0
  55. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/snippet/snippet_choices.py +0 -0
  56. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/snippet/snippet_provenance.py +0 -0
  57. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/vcsmatcher.py +0 -0
  58. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/vulnerability_resolution.py +0 -0
  59. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/config/vulnerability_resolution_reason.py +0 -0
  60. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/defect.py +0 -0
  61. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/dependency_graph.py +0 -0
  62. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/dependency_graph_edge.py +0 -0
  63. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/dependency_graph_node.py +0 -0
  64. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/dependency_reference.py +0 -0
  65. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/evaluator_run.py +0 -0
  66. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/file_list.py +0 -0
  67. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/hash.py +0 -0
  68. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/identifier.py +0 -0
  69. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/issue.py +0 -0
  70. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/license_source.py +0 -0
  71. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/ort_result.py +0 -0
  72. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/package.py +0 -0
  73. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/package_curation.py +0 -0
  74. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/package_curation_data.py +0 -0
  75. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/package_linkage.py +0 -0
  76. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/package_reference.py +0 -0
  77. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/project.py +0 -0
  78. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/provenance.py +0 -0
  79. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/provenance_resolution_result.py +0 -0
  80. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/remote_artifact.py +0 -0
  81. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/repository.py +0 -0
  82. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/resolutions.py +0 -0
  83. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/root_dependency_index.py +0 -0
  84. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/rule_violation.py +0 -0
  85. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/scan_result.py +0 -0
  86. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/scan_summary.py +0 -0
  87. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/scanner_details.py +0 -0
  88. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/scanner_run.py +0 -0
  89. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/scope.py +0 -0
  90. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/severity.py +0 -0
  91. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/snippet.py +0 -0
  92. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/snippet_finding.py +0 -0
  93. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/source_code_origin.py +0 -0
  94. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vcsinfo.py +0 -0
  95. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vcsinfo_curation_data.py +0 -0
  96. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vcstype.py +0 -0
  97. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/__init__.py +0 -0
  98. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/cvss2_rating.py +0 -0
  99. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/cvss3_rating.py +0 -0
  100. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/cvss4_rating.py +0 -0
  101. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/vulnerability.py +0 -0
  102. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/models/vulnerabilities/vulnerability_reference.py +0 -0
  103. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/severity.py +0 -0
  104. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/types/__init__.py +0 -0
  105. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/types/purl_type.py +0 -0
  106. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/__init__.py +0 -0
  107. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/environment.py +0 -0
  108. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/processed_declared_license.py +0 -0
  109. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/spdx/__init__.py +0 -0
  110. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/spdx/spdx_expression.py +0 -0
  111. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/spdx/spdx_license_choice.py +0 -0
  112. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/validated_enum.py +0 -0
  113. {python_ort-0.8.12 → python_ort-0.8.15}/src/ort/utils/yaml_loader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-ort
3
- Version: 0.8.12
3
+ Version: 0.8.15
4
4
  Summary: A Python Ort model serialization library
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.14
15
15
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
16
  Requires-Dist: license-expression>=30.4.4
17
17
  Requires-Dist: packageurl-python>=0.17.6
18
- Requires-Dist: pydantic>=2.13.2
18
+ Requires-Dist: pydantic>=2.13.4
19
19
  Requires-Python: >=3.10
20
20
  Description-Content-Type: text/markdown
21
21
 
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "python-ort"
7
- version = "0.8.12"
7
+ version = "0.8.15"
8
8
  description = "A Python Ort model serialization library"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -13,7 +13,7 @@ requires-python = ">=3.10"
13
13
  dependencies = [
14
14
  "license-expression>=30.4.4",
15
15
  "packageurl-python>=0.17.6",
16
- "pydantic>=2.13.2",
16
+ "pydantic>=2.13.4",
17
17
  ]
18
18
  classifiers = [
19
19
  "Development Status :: 4 - Beta",
@@ -36,12 +36,12 @@ module-root = "src"
36
36
 
37
37
  [dependency-groups]
38
38
  dev = [
39
- "datamodel-code-generator[http]>=0.56.1",
39
+ "datamodel-code-generator[http]>=0.57.0",
40
40
  "pytest>=9.0.3",
41
41
  "rich>=15.0.0",
42
- "ruff>=0.15.11",
43
- "ty>=0.0.31",
44
- "types-pyyaml>=6.0.12.20260408",
42
+ "ruff>=0.15.12",
43
+ "ty>=0.0.35",
44
+ "types-pyyaml>=6.0.12.20260510",
45
45
  ]
46
46
 
47
47
  [tool.pytest.ini_options]
@@ -4,6 +4,8 @@
4
4
 
5
5
  from pydantic import BaseModel, ConfigDict, Field
6
6
 
7
+ from ort.models import AdvisorCapability
8
+
7
9
 
8
10
  class AdvisorDetails(BaseModel):
9
11
  """
@@ -16,3 +18,11 @@ class AdvisorDetails(BaseModel):
16
18
  )
17
19
 
18
20
  name: str = Field(description="The name of the used advisor.")
21
+ capabilities: set[AdvisorCapability] | None = Field(
22
+ default=None,
23
+ repr=False,
24
+ exclude=True,
25
+ deprecated=True,
26
+ description="The capabilities of the used advisor. This property indicates, which kind of findings"
27
+ "are retrieved by the advisor.",
28
+ )
@@ -2,11 +2,13 @@
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from pydantic import BaseModel, ConfigDict, Field
5
+ from typing_extensions import deprecated
5
6
 
6
7
  from ort.models.vulnerabilities import Vulnerability
7
8
 
8
9
  from .advisor_details import AdvisorDetails
9
10
  from .advisor_summary import AdvisorSummary
11
+ from .defect import Defect
10
12
 
11
13
 
12
14
  class AdvisorResult(BaseModel):
@@ -34,3 +36,11 @@ class AdvisorResult(BaseModel):
34
36
  default_factory=list,
35
37
  description="The vulnerabilities.",
36
38
  )
39
+
40
+ defects: list[Defect] = Field(
41
+ default_factory=list,
42
+ repr=False,
43
+ exclude=True,
44
+ deprecated=deprecated("Deprecated field."),
45
+ description="The defects.",
46
+ )
@@ -2,7 +2,7 @@
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
 
5
- from pydantic import BaseModel, ConfigDict, Field
5
+ from pydantic import BaseModel, ConfigDict, Field, field_serializer
6
6
 
7
7
  from ort.models.config.license_finding_curation import LicenseFindingCuration
8
8
  from ort.models.config.path_exclude import PathExclude
@@ -66,3 +66,7 @@ class PackageConfiguration(BaseModel):
66
66
  default_factory=list,
67
67
  description="License finding curations.",
68
68
  )
69
+
70
+ @field_serializer("id")
71
+ def serialize_id(self, value: Identifier):
72
+ return str(value)
@@ -64,7 +64,7 @@ class FileBasedStorageConfiguration(ScanStorageConfiguration):
64
64
  )
65
65
  ort_type: StorageType = Field(
66
66
  alias="type",
67
- default="PROVENANCE_BASED",
67
+ default=StorageType.PROVENANCE_BASED,
68
68
  description=("The way that scan results are stored, defaults to StorageType.PROVENANCE_BASED."),
69
69
  )
70
70
 
@@ -79,6 +79,6 @@ class PostgresStorageConfiguration(ScanStorageConfiguration):
79
79
  )
80
80
  ort_type: StorageType = Field(
81
81
  alias="type",
82
- default="PROVENANCE_BASED",
82
+ default=StorageType.PROVENANCE_BASED,
83
83
  description=("The way that scan results are stored, defaults to StorageType.PROVENANCE_BASED."),
84
84
  )
@@ -21,3 +21,11 @@ class CopyrightFinding(BaseModel):
21
21
  location: TextLocation = Field(
22
22
  description="The text location where the copyright statement was found.",
23
23
  )
24
+
25
+ def __hash__(self) -> int:
26
+ return hash(self.statement)
27
+
28
+ def __eq__(self, other) -> bool:
29
+ if not isinstance(other, CopyrightFinding):
30
+ return NotImplemented
31
+ return self.statement == other.statement
@@ -43,3 +43,11 @@ class LicenseFinding(BaseModel):
43
43
  return value
44
44
  except ExpressionError as e:
45
45
  raise ValueError(str(e)) from e
46
+
47
+ def __hash__(self) -> int:
48
+ return hash(self.license)
49
+
50
+ def __eq__(self, other) -> bool:
51
+ if not isinstance(other, LicenseFinding):
52
+ return NotImplemented
53
+ return self.license == other.license
@@ -31,8 +31,6 @@ class TextLocation(BaseModel):
31
31
  def validate_line_numbers(cls, value):
32
32
  if isinstance(value, str):
33
33
  value = int(value)
34
- if value < 0:
35
- raise ValueError("Line numbers must be greater than or equal to 0.")
36
34
  return value
37
35
 
38
36
  def __hash__(self) -> int:
File without changes
File without changes