data-validation-engine 0.7.0__tar.gz → 0.7.2__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 (105) hide show
  1. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/PKG-INFO +9 -3
  2. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/pyproject.toml +29 -7
  3. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/readers/csv.py +4 -2
  4. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/rules.py +1 -1
  5. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/rules.py +1 -1
  6. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/metadata/reporting.py +7 -0
  7. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/v1/filters.py +2 -0
  8. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/foundry_ddb_pipeline.py +6 -2
  9. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/reporting/excel_report.py +4 -1
  10. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/LICENSE +0 -0
  11. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/README.md +0 -0
  12. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/__init__.py +0 -0
  13. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/common/__init__.py +0 -0
  14. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/common/error_utils.py +0 -0
  15. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/__init__.py +0 -0
  16. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/__init__.py +0 -0
  17. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/__init__.py +0 -0
  18. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/auditing.py +0 -0
  19. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/backend.py +0 -0
  20. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/contract.py +0 -0
  21. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/core.py +0 -0
  22. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/reader.py +0 -0
  23. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/reference_data.py +0 -0
  24. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/rules.py +0 -0
  25. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/base/utilities.py +0 -0
  26. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/exceptions.py +0 -0
  27. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/__init__.py +0 -0
  28. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/__init__.py +0 -0
  29. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/auditing.py +0 -0
  30. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/contract.py +0 -0
  31. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/duckdb_helpers.py +0 -0
  32. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/readers/__init__.py +0 -0
  33. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/readers/json.py +0 -0
  34. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/readers/xml.py +0 -0
  35. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/reference_data.py +0 -0
  36. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/types.py +0 -0
  37. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/duckdb/utilities.py +0 -0
  38. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/__init__.py +0 -0
  39. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/auditing.py +0 -0
  40. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/backend.py +0 -0
  41. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/contract.py +0 -0
  42. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/readers/__init__.py +0 -0
  43. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/readers/csv.py +0 -0
  44. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/readers/json.py +0 -0
  45. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/readers/xml.py +0 -0
  46. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/reference_data.py +0 -0
  47. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/spark_helpers.py +0 -0
  48. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/types.py +0 -0
  49. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/implementations/spark/utilities.py +0 -0
  50. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/metadata/__init__.py +0 -0
  51. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/metadata/contract.py +0 -0
  52. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/metadata/rules.py +0 -0
  53. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/readers/__init__.py +0 -0
  54. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/readers/csv.py +0 -0
  55. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/readers/utilities.py +0 -0
  56. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/readers/xml.py +0 -0
  57. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/readers/xml_linting.py +0 -0
  58. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/types.py +0 -0
  59. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/backends/utilities.py +0 -0
  60. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/__init__.py +0 -0
  61. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/base.py +0 -0
  62. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/v1/__init__.py +0 -0
  63. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/v1/rule_stores/__init__.py +0 -0
  64. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/v1/rule_stores/models.py +0 -0
  65. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/configuration/v1/steps.py +0 -0
  66. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/constants.py +0 -0
  67. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/engine.py +0 -0
  68. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/exceptions.py +0 -0
  69. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/functions/__init__.py +0 -0
  70. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/functions/implementations.py +0 -0
  71. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/loggers.py +0 -0
  72. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/message.py +0 -0
  73. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/models.py +0 -0
  74. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/templating.py +0 -0
  75. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/type_hints.py +0 -0
  76. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/core_engine/validation.py +0 -0
  77. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/__init__.py +0 -0
  78. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/domain_types.py +0 -0
  79. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/exc.py +0 -0
  80. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/function_library.py +0 -0
  81. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/function_wrapper.py +0 -0
  82. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/model_generator.py +0 -0
  83. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/models.py +0 -0
  84. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/metadata_parser/utilities.py +0 -0
  85. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/__init__.py +0 -0
  86. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/exceptions.py +0 -0
  87. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/__init__.py +0 -0
  88. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/helpers.py +0 -0
  89. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/implementations/__init__.py +0 -0
  90. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/implementations/base.py +0 -0
  91. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/implementations/dbfs.py +0 -0
  92. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/implementations/file.py +0 -0
  93. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/implementations/s3.py +0 -0
  94. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/log_handler.py +0 -0
  95. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/service.py +0 -0
  96. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/file_handling/utilities.py +0 -0
  97. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/type_hints.py +0 -0
  98. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/parser/utilities.py +0 -0
  99. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/__init__.py +0 -0
  100. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/duckdb_pipeline.py +0 -0
  101. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/pipeline.py +0 -0
  102. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/spark_pipeline.py +0 -0
  103. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/pipeline/utils.py +0 -0
  104. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/reporting/__init__.py +0 -0
  105. {data_validation_engine-0.7.0 → data_validation_engine-0.7.2}/src/dve/reporting/error_report.py +0 -0
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: data-validation-engine
3
- Version: 0.7.0
3
+ Version: 0.7.2
4
4
  Summary: `nhs data validation engine` is a framework used to validate data
5
+ License-Expression: MIT
5
6
  License-File: LICENSE
6
7
  Author: NHS England
7
8
  Author-email: england.contactus@nhs.net
8
9
  Requires-Python: >=3.10,<3.12
9
- Classifier: Operating System :: OS Independent
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Operating System :: OS Independent
13
14
  Classifier: Topic :: Software Development :: Libraries
14
15
  Classifier: Typing :: Typed
15
16
  Requires-Dist: Jinja2 (==3.1.*)
@@ -22,9 +23,14 @@ Requires-Dist: openpyxl (>=3.1,<4.0)
22
23
  Requires-Dist: pandas (>=2.2.2,<3.0.0)
23
24
  Requires-Dist: polars (==0.20.*)
24
25
  Requires-Dist: pyarrow (>=17.0.0,<18.0.0)
25
- Requires-Dist: pydantic (==1.10.15)
26
+ Requires-Dist: pydantic (==1.10.16)
26
27
  Requires-Dist: pyspark (==3.4.*)
27
28
  Requires-Dist: typing_extensions (>=4.6.2,<5.0.0)
29
+ Project-URL: Changelog, https://github.com/NHSDigital/data-validation-engine/blob/main/CHANGELOG.md
30
+ Project-URL: Documentation, https://nhsdigital.github.io/data-validation-engine/
31
+ Project-URL: Homepage, https://github.com/NHSDigital/data-validation-engine
32
+ Project-URL: Issues, https://github.com/NHSDigital/data-validation-engine/issues
33
+ Project-URL: Repository, https://github.com/NHSDigital/data-validation-engine.git
28
34
  Description-Content-Type: text/markdown
29
35
 
30
36
  <h1 style="display: flex; align-items: center; gap: 10px;">
@@ -1,12 +1,11 @@
1
- [tool.poetry]
1
+ [project]
2
2
  name = "data-validation-engine"
3
- version = "0.7.0"
3
+ dynamic = [ "version" ]
4
4
  description = "`nhs data validation engine` is a framework used to validate data"
5
- authors = ["NHS England <england.contactus@nhs.net>"]
6
- readme = "README.md"
7
- packages = [
8
- { include = "dve", from = "src" },
5
+ authors = [
6
+ { name = "NHS England", email = "england.contactus@nhs.net" }
9
7
  ]
8
+ readme = "README.md"
10
9
  classifiers = [
11
10
  "Programming Language :: Python :: 3",
12
11
  "Programming Language :: Python :: 3.10",
@@ -15,6 +14,20 @@ classifiers = [
15
14
  "Topic :: Software Development :: Libraries",
16
15
  "Typing :: Typed",
17
16
  ]
17
+ license = "MIT"
18
+
19
+ [project.urls]
20
+ Homepage = "https://github.com/NHSDigital/data-validation-engine"
21
+ Documentation = "https://nhsdigital.github.io/data-validation-engine/"
22
+ Repository = "https://github.com/NHSDigital/data-validation-engine.git"
23
+ Issues = "https://github.com/NHSDigital/data-validation-engine/issues"
24
+ Changelog = "https://github.com/NHSDigital/data-validation-engine/blob/main/CHANGELOG.md"
25
+
26
+ [tool.poetry]
27
+ version = "0.7.2"
28
+ packages = [
29
+ { include = "dve", from = "src" },
30
+ ]
18
31
 
19
32
  [tool.poetry.dependencies]
20
33
  python = ">=3.10,<3.12"
@@ -28,7 +41,7 @@ openpyxl = "^3.1"
28
41
  pandas = "^2.2.2"
29
42
  polars = "0.20.*"
30
43
  pyarrow = "^17.0.0"
31
- pydantic = "1.10.15"
44
+ pydantic = "1.10.16"
32
45
  pyspark = "3.4.*"
33
46
  typing_extensions = "^4.6.2"
34
47
 
@@ -78,6 +91,15 @@ types-setuptools = "68.2.0.0"
78
91
  types-urllib3 = "1.26.25.14"
79
92
  types-xmltodict = "0.13.0.3"
80
93
 
94
+ [tool.poetry.group.docs]
95
+ optional = true
96
+
97
+ [tool.poetry.group.docs.dependencies]
98
+ click = "8.2.1"
99
+ mkdocs = "^1.6.1"
100
+ mkdocstrings = { version = "^1.0.3", extras = ["python"] }
101
+ zensical = "~=0.0.23"
102
+
81
103
  [tool.ruff]
82
104
  line-length = 100
83
105
 
@@ -82,11 +82,12 @@ class DuckDBCSVReader(BaseFileReader):
82
82
  messages=[
83
83
  FeedbackMessage(
84
84
  entity=entity_name,
85
- record=None,
85
+ record={"missing_fields": missing},
86
86
  failure_type="submission",
87
87
  error_location="Whole File",
88
+ reporting_field="missing_fields",
88
89
  error_code=self.field_check_error_code,
89
- error_message=f"{self.field_check_error_message} - missing fields: {missing}", # pylint: disable=line-too-long
90
+ error_message=f"{self.field_check_error_message}", # pylint: disable=line-too-long
90
91
  )
91
92
  ],
92
93
  )
@@ -202,6 +203,7 @@ class DuckDBCSVRepeatingHeaderReader(PolarsToDuckDBCSVReader):
202
203
  `NonDistinctHeaderError`.
203
204
 
204
205
  So using the example above, the expected entity would look like this...
206
+
205
207
  | headerCol1 | headerCol2 | headerCol3 |
206
208
  | ---------- | ---------- | ---------- |
207
209
  | shop1 | clothes | 2025-01-01 |
@@ -505,7 +505,7 @@ class DuckDBStepImplementations(BaseStepImplementations[DuckDBPyRelation]):
505
505
  messages.append(
506
506
  FeedbackMessage(
507
507
  entity=config.reporting.reporting_entity_override or config.entity_name,
508
- original_entity=config.entity_name,
508
+ original_entity=config.reporting.original_entity_override or config.entity_name,
509
509
  record=record, # type: ignore
510
510
  error_location=config.reporting.legacy_location,
511
511
  error_message=template_object(config.reporting.message, record), # type: ignore
@@ -401,7 +401,7 @@ class SparkStepImplementations(BaseStepImplementations[DataFrame]):
401
401
  # more complex extraction done in reporting module
402
402
  FeedbackMessage(
403
403
  entity=config.reporting.reporting_entity_override or config.entity_name,
404
- original_entity=config.entity_name,
404
+ original_entity=config.reporting.original_entity_override or config.entity_name,
405
405
  record=record.asDict(recursive=True),
406
406
  error_location=config.reporting.legacy_location,
407
407
  error_message=template_object(
@@ -10,6 +10,7 @@ from typing_extensions import Literal
10
10
 
11
11
  from dve.core_engine.templating import template_object
12
12
  from dve.core_engine.type_hints import (
13
+ EntityName,
13
14
  ErrorCategory,
14
15
  ErrorCode,
15
16
  ErrorEmitValue,
@@ -102,6 +103,12 @@ class BaseReportingConfig(BaseModel):
102
103
  If this is not provided, the top level names from the `location` field
103
104
  will be used in the report.
104
105
 
106
+ """
107
+ original_entity_override: Optional[EntityName] = None
108
+ """
109
+ This should only be populated where you need to refer back to an originally defined entity that
110
+ contains the key field(s) of interest. This might be required in cases where you've created
111
+ lots of new entities during a complex rule.
105
112
  """
106
113
 
107
114
  def template(
@@ -24,6 +24,7 @@ class ConcreteFilterConfig(BaseModel):
24
24
  reporting_field: Optional[Union[str, list[str]]] = None
25
25
  reporting_field_name: Optional[str] = None
26
26
  category: ErrorCategory = "Bad value"
27
+ original_entity_override: Optional[str] = None
27
28
 
28
29
  def to_step(self) -> AbstractStep:
29
30
  """Create a deferred filter from the concrete filter config."""
@@ -37,6 +38,7 @@ class ConcreteFilterConfig(BaseModel):
37
38
  legacy_is_informational=self.is_informational,
38
39
  legacy_location=self.error_location,
39
40
  legacy_reporting_field=self.reporting_field,
41
+ original_entity_override=self.original_entity_override,
40
42
  )
41
43
 
42
44
  return DeferredFilter(
@@ -42,11 +42,15 @@ class FoundryDDBPipeline(DDBDVEPipeline):
42
42
  write_to.parent.mkdir(parents=True, exist_ok=True)
43
43
  write_to = write_to.as_posix()
44
44
  self.write_parquet( # type: ignore # pylint: disable=E1101
45
- self._audit_tables._processing_status.get_relation(), # pylint: disable=W0212
45
+ self._audit_tables._processing_status.get_relation().filter( # pylint: disable=W0212
46
+ f"submission_id = '{submission_info.submission_id}'"
47
+ ),
46
48
  fh.joinuri(write_to, "processing_status.parquet"),
47
49
  )
48
50
  self.write_parquet( # type: ignore # pylint: disable=E1101
49
- self._audit_tables._submission_statistics.get_relation(), # pylint: disable=W0212
51
+ self._audit_tables._submission_statistics.get_relation().filter( # pylint: disable=W0212
52
+ f"submission_id = '{submission_info.submission_id}'"
53
+ ),
50
54
  fh.joinuri(write_to, "submission_statistics.parquet"),
51
55
  )
52
56
  return write_to
@@ -135,8 +135,11 @@ class SummaryItems:
135
135
  if "Status" not in self.summary_dict:
136
136
  summary.append(["", "Status", status])
137
137
 
138
+ _key_renames = {
139
+ "File Size": "File Size (Bytes)",
140
+ }
138
141
  for key, value in self.summary_dict.items():
139
- summary.append(["", key, str(value)])
142
+ summary.append(["", _key_renames.get(key, key), str(value)])
140
143
 
141
144
  summary.append(["", ""])
142
145