python-ort 0.9.5__tar.gz → 0.10.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 (118) hide show
  1. {python_ort-0.9.5 → python_ort-0.10.0}/PKG-INFO +2 -2
  2. {python_ort-0.9.5 → python_ort-0.10.0}/pyproject.toml +14 -13
  3. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/scan_storage_configuration.py +1 -1
  4. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/identifier.py +1 -1
  5. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/provenance.py +0 -6
  6. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/vulnerability.py +6 -0
  7. {python_ort-0.9.5 → python_ort-0.10.0}/src/tools/ort_validate.py +8 -2
  8. {python_ort-0.9.5 → python_ort-0.10.0}/LICENSE +0 -0
  9. {python_ort-0.9.5 → python_ort-0.10.0}/README.md +0 -0
  10. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/__init__.py +1 -1
  11. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/__init__.py +3 -3
  12. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/advisor_capability.py +0 -0
  13. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/advisor_details.py +0 -0
  14. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/advisor_result.py +0 -0
  15. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/advisor_run.py +0 -0
  16. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/advisor_summary.py +0 -0
  17. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/analyzer_result.py +0 -0
  18. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/analyzer_run.py +0 -0
  19. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/base_run.py +0 -0
  20. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/__init__.py +0 -0
  21. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/advisor_configuration.py +0 -0
  22. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/analyzer_configuration.py +0 -0
  23. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/curations.py +0 -0
  24. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/excludes.py +0 -0
  25. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/file_archiver_configuration.py +0 -0
  26. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/file_list_storage_configuration.py +0 -0
  27. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/file_storage_configuration.py +0 -0
  28. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/http_file_storage_configuration.py +0 -0
  29. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/includes.py +0 -0
  30. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/issue_resolution.py +0 -0
  31. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/issue_resolution_reason.py +0 -0
  32. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/license_choices.py +0 -0
  33. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/license_finding_curation.py +0 -0
  34. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/license_finding_curation_reason.py +0 -0
  35. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/local_file_storage_configuration.py +0 -0
  36. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/package_configuration.py +0 -0
  37. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/package_manager_configuration.py +0 -0
  38. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/path_exclude.py +0 -0
  39. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/path_exclude_reason.py +0 -0
  40. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/path_include.py +0 -0
  41. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/path_include_reason.py +0 -0
  42. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/postgres_connection.py +0 -0
  43. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/provenance_storage_configuration.py +0 -0
  44. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/repository_analyzer_configuration.py +0 -0
  45. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/repository_configuration.py +0 -0
  46. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/resolutions.py +0 -0
  47. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/rule_violation_reason.py +0 -0
  48. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/rule_violation_resolution.py +0 -0
  49. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/s3_file_storage_configuration.py +0 -0
  50. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/scanner_configuration.py +0 -0
  51. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/scope_exclude.py +0 -0
  52. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/scope_exclude_reason.py +0 -0
  53. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/snippet/__init__.py +0 -0
  54. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/snippet/snippet_choice.py +0 -0
  55. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/snippet/snippet_choice_reason.py +0 -0
  56. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/snippet/snippet_choices.py +0 -0
  57. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/snippet/snippet_provenance.py +0 -0
  58. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/vcsmatcher.py +0 -0
  59. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/vulnerability_resolution.py +0 -0
  60. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/config/vulnerability_resolution_reason.py +0 -0
  61. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/copyright_finding.py +0 -0
  62. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/defect.py +0 -0
  63. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/dependency_graph.py +0 -0
  64. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/dependency_graph_edge.py +0 -0
  65. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/dependency_graph_node.py +0 -0
  66. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/dependency_reference.py +0 -0
  67. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/evaluator_run.py +0 -0
  68. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/file_list.py +0 -0
  69. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/hash.py +0 -0
  70. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/issue.py +0 -0
  71. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/license_finding.py +0 -0
  72. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/license_source.py +0 -0
  73. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/licenses/license_categorization.py +0 -0
  74. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/licenses/license_category.py +0 -0
  75. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/licenses/license_classifications.py +0 -0
  76. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/ort_result.py +0 -0
  77. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/package.py +0 -0
  78. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/package_curation.py +0 -0
  79. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/package_curation_data.py +0 -0
  80. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/package_linkage.py +0 -0
  81. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/package_reference.py +0 -0
  82. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/project.py +0 -0
  83. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/provenance_resolution_result.py +0 -0
  84. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/remote_artifact.py +0 -0
  85. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/repository.py +0 -0
  86. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/resolutions.py +0 -0
  87. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/root_dependency_index.py +0 -0
  88. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/rule_violation.py +0 -0
  89. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/scan_result.py +0 -0
  90. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/scan_summary.py +0 -0
  91. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/scanner_details.py +0 -0
  92. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/scanner_run.py +0 -0
  93. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/scope.py +0 -0
  94. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/severity.py +0 -0
  95. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/snippet.py +0 -0
  96. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/snippet_finding.py +0 -0
  97. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/source_code_origin.py +0 -0
  98. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/text_location.py +0 -0
  99. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vcsinfo.py +0 -0
  100. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vcsinfo_curation_data.py +0 -0
  101. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vcstype.py +0 -0
  102. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/__init__.py +0 -0
  103. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/cvss2_rating.py +0 -0
  104. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/cvss3_rating.py +0 -0
  105. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/cvss4_rating.py +0 -0
  106. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/models/vulnerabilities/vulnerability_reference.py +0 -0
  107. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/severity.py +0 -0
  108. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/types/__init__.py +0 -0
  109. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/types/purl_type.py +0 -0
  110. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/__init__.py +0 -0
  111. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/environment.py +0 -0
  112. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/processed_declared_license.py +0 -0
  113. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/spdx/__init__.py +0 -0
  114. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/spdx/spdx_expression.py +0 -0
  115. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/spdx/spdx_license_choice.py +0 -0
  116. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/validated_enum.py +0 -0
  117. {python_ort-0.9.5 → python_ort-0.10.0}/src/ort/utils/yaml_loader.py +0 -0
  118. {python_ort-0.9.5 → python_ort-0.10.0}/src/tools/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-ort
3
- Version: 0.9.5
3
+ Version: 0.10.0
4
4
  Summary: A Python Ort model serialization library
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Classifier: Programming Language :: Python :: 3.14
15
15
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
- Requires-Dist: click>=8.4.1
16
+ Requires-Dist: click>=8.4.2
17
17
  Requires-Dist: license-expression>=30.4.4
18
18
  Requires-Dist: packageurl-python>=0.17.6
19
19
  Requires-Dist: pydantic>=2.13.4
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-ort"
3
- version = "0.9.5"
3
+ version = "0.10.0"
4
4
  description = "A Python Ort model serialization library"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -18,11 +18,11 @@ classifiers = [
18
18
  "Topic :: Software Development :: Libraries :: Python Modules",
19
19
  ]
20
20
  dependencies = [
21
- "click>=8.4.1",
22
- "license-expression>=30.4.4",
23
- "packageurl-python>=0.17.6",
24
- "pydantic>=2.13.4",
25
- "pyyaml>=6.0.3",
21
+ "click>=8.4.2",
22
+ "license-expression>=30.4.4",
23
+ "packageurl-python>=0.17.6",
24
+ "pydantic>=2.13.4",
25
+ "pyyaml>=6.0.3",
26
26
  ]
27
27
 
28
28
  [project.scripts]
@@ -30,12 +30,12 @@ ort-validate = "tools.ort_validate:main"
30
30
 
31
31
  [dependency-groups]
32
32
  dev = [
33
- "datamodel-code-generator[http]>=0.64.0",
34
- "pytest>=9.1.0",
35
- "rich>=15.0.0",
36
- "ruff>=0.15.17",
37
- "ty>=0.0.50",
38
- "types-pyyaml>=6.0.12.20260518",
33
+ "datamodel-code-generator[http]>=0.71.0",
34
+ "pytest>=9.1.1",
35
+ "rich>=15.0.0",
36
+ "ruff>=0.16.0",
37
+ "ty>=0.0.64",
38
+ "types-pyyaml>=6.0.12.20260724",
39
39
  ]
40
40
 
41
41
  [build-system]
@@ -44,7 +44,8 @@ build-backend = "uv_build"
44
44
 
45
45
  [tool.codespell]
46
46
  skip = [
47
- ".agents",
47
+ ".agents/*",
48
+
48
49
  ]
49
50
 
50
51
  [tool.pylint.messages_control]
@@ -38,7 +38,7 @@ class ScanStorageConfiguration(BaseModel):
38
38
  @classmethod
39
39
  def validate_provenance(cls, v):
40
40
  if not isinstance(v, dict):
41
- raise ValueError("Config must be a dictionary.")
41
+ raise TypeError("Config must be a dictionary.")
42
42
  # Return the dict as-is; ScanStorageConfiguration with extra="allow"
43
43
  # will store all fields without needing to instantiate subclasses.
44
44
  return v
@@ -64,7 +64,7 @@ class Identifier(BaseModel):
64
64
  raise TypeError("Identifier must be a dict or a string in the correct format")
65
65
 
66
66
  def __str__(self) -> str:
67
- return ":".join([self.orttype, self.namespace, self.name, self.version])
67
+ return f"{self.orttype}:{self.namespace}:{self.name}:{self.version}"
68
68
 
69
69
  @model_serializer(mode="plain")
70
70
  def serialize(self) -> str:
@@ -27,24 +27,18 @@ class UnknownProvenance(Provenance):
27
27
  Provenance information about the origin of source code.
28
28
  """
29
29
 
30
- pass
31
-
32
30
 
33
31
  class KnownProvenance(Provenance):
34
32
  """
35
33
  Provenance information about the origin of source code.
36
34
  """
37
35
 
38
- pass
39
-
40
36
 
41
37
  class RemoteProvenance(KnownProvenance):
42
38
  """
43
39
  Provenance information about the origin of source code.
44
40
  """
45
41
 
46
- pass
47
-
48
42
 
49
43
  class ArtifactProvenance(RemoteProvenance):
50
44
  """
@@ -37,3 +37,9 @@ class Vulnerability(BaseModel):
37
37
  ...,
38
38
  description="A list with detailed information for this vulnerability obtained from different sources.",
39
39
  )
40
+
41
+ first_fixed_versions: set[str] = Field(
42
+ default_factory=set,
43
+ description="The first package versions that contain a fix for this [Vulnerability]. There could be multiple"
44
+ "first versions in case vulnerability fixes are back-ported to distinct release branches.",
45
+ )
@@ -9,7 +9,7 @@ from typing import TypeVar
9
9
  import click
10
10
  from pydantic import BaseModel, ValidationError
11
11
 
12
- from ort import RepositoryConfiguration, ort_yaml_load
12
+ from ort import OrtResult, RepositoryConfiguration, ort_yaml_load
13
13
  from ort.models import LicenseClassifications
14
14
 
15
15
  logger = logging.getLogger()
@@ -40,7 +40,6 @@ def main(debug: bool = False) -> None:
40
40
  logging.basicConfig(level=logging.DEBUG)
41
41
  if debug:
42
42
  logging.basicConfig(level=logging.DEBUG)
43
- pass
44
43
 
45
44
 
46
45
  @click.command()
@@ -55,8 +54,15 @@ def repository_configuration(datafile):
55
54
  load_and_validate(RepositoryConfiguration, datafile)
56
55
 
57
56
 
57
+ @click.command()
58
+ @click.argument("datafile")
59
+ def ort_result(datafile):
60
+ load_and_validate(OrtResult, datafile)
61
+
62
+
58
63
  main.add_command(repository_configuration)
59
64
  main.add_command(license_classifications)
65
+ main.add_command(ort_result)
60
66
 
61
67
  if __name__ == "__main__":
62
68
  main()
File without changes
File without changes
@@ -9,8 +9,8 @@ from .utils.yaml_loader import OrtYamlLoader, ort_yaml_load
9
9
 
10
10
  __all__ = [
11
11
  "AnalyzerResult",
12
+ "OrtResult",
12
13
  "OrtYamlLoader",
13
14
  "RepositoryConfiguration",
14
- "OrtResult",
15
15
  "ort_yaml_load",
16
16
  ]
@@ -47,10 +47,10 @@ __all__ = [
47
47
  "DependencyGraphEdge",
48
48
  "DependencyGraphNode",
49
49
  "DependencyReference",
50
+ "Excludes",
50
51
  "Hash",
51
52
  "Identifier",
52
53
  "Includes",
53
- "Excludes",
54
54
  "Issue",
55
55
  "LicenseClassifications",
56
56
  "OrtResult",
@@ -59,10 +59,10 @@ __all__ = [
59
59
  "PackageCurationData",
60
60
  "PackageLinkage",
61
61
  "PackageReference",
62
- "PathExcludeReason",
63
- "PathIncludeReason",
64
62
  "PathExclude",
63
+ "PathExcludeReason",
65
64
  "PathInclude",
65
+ "PathIncludeReason",
66
66
  "Project",
67
67
  "RemoteArtifact",
68
68
  "Repository",