validio-sdk 7.3.1__tar.gz → 7.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 (55) hide show
  1. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/PKG-INFO +1 -1
  2. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/pyproject.toml +1 -1
  3. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/_api/api.py +2 -0
  4. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_serde.py +2 -2
  5. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_server_resources.py +2 -0
  6. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/credentials.py +10 -0
  7. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test__diff.py +48 -0
  8. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/validators.py +1 -1
  9. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/LICENSE +0 -0
  10. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/README_PUBLIC.md +0 -0
  11. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/__init__.py +0 -0
  12. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/_api/__init__.py +0 -0
  13. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/client/__init__.py +0 -0
  14. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/client/client.py +0 -0
  15. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/__init__.py +0 -0
  16. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/_import.py +0 -0
  17. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/_progress.py +0 -0
  18. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/apply.py +0 -0
  19. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/plan.py +0 -0
  20. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/scaffold.py +0 -0
  21. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/code/settings.py +0 -0
  22. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/config.py +0 -0
  23. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/dbt.py +0 -0
  24. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/exception.py +0 -0
  25. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/metadata.py +0 -0
  26. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/py.typed +0 -0
  27. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/__init__.py +0 -0
  28. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_diff.py +0 -0
  29. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_diff_util.py +0 -0
  30. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_diffable.py +0 -0
  31. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_errors.py +0 -0
  32. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_resource.py +0 -0
  33. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_resource_graph.py +0 -0
  34. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_update_namespace.py +0 -0
  35. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/_util.py +0 -0
  36. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/channels.py +0 -0
  37. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/enums.py +0 -0
  38. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/filters.py +0 -0
  39. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/notification_rules.py +0 -0
  40. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/replacement.py +0 -0
  41. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/segmentations.py +0 -0
  42. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/sources.py +0 -0
  43. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tags.py +0 -0
  44. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/__init__.py +0 -0
  45. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/assets/example_manifest.json +0 -0
  46. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/assets/expected_trimmed_manifest.json +0 -0
  47. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test__dbt.py +0 -0
  48. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test__plan.py +0 -0
  49. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test__resource.py +0 -0
  50. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test__sql_validation.py +0 -0
  51. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/tests/test_import.py +0 -0
  52. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/thresholds.py +0 -0
  53. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/resource/windows.py +0 -0
  54. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/scalars.py +0 -0
  55. {validio_sdk-7.3.1 → validio_sdk-7.4.0}/validio_sdk/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validio-sdk
3
- Version: 7.3.1
3
+ Version: 7.4.0
4
4
  Summary: SDK to interact with the Validio platform
5
5
  Home-page: https://validio.io/
6
6
  License: Apache-2.0
@@ -3,7 +3,7 @@ name = "validio-sdk"
3
3
  # This version does not represent the released version or any tag. For each
4
4
  # release we automatically bump this before building and publishing so this
5
5
  # should be kept at 0.0.1dev1
6
- version = "7.3.1"
6
+ version = "7.4.0"
7
7
  description = "SDK to interact with the Validio platform"
8
8
  authors = ["Validio <support@validio.io>"]
9
9
  license = "Apache-2.0"
@@ -1093,6 +1093,8 @@ async def get_credentials(
1093
1093
  user
1094
1094
  }
1095
1095
  }
1096
+ tlsEnabled
1097
+ tlsCaCertificates
1096
1098
  }
1097
1099
  enableCatalog
1098
1100
  }
@@ -389,9 +389,9 @@ def _import_value_repr(
389
389
  # single long line.
390
390
  if "\n" not in value:
391
391
  value_repr = repr(value)
392
- elif "'''" not in value:
392
+ elif not any(["'''" in value, value.startswith("'"), value.endswith("'")]):
393
393
  value_repr = f"'''{value}'''"
394
- elif '"""' not in value:
394
+ elif not any(['"""' in value, value.startswith('"'), value.endswith('"')]):
395
395
  value_repr = f'"""{value}"""'
396
396
  else:
397
397
  value_repr = repr(value)
@@ -427,6 +427,8 @@ async def load_credentials(
427
427
  port=c["config"]["port"],
428
428
  database=c["config"]["database"],
429
429
  auth=oracle_auth,
430
+ tls_enabled=c["config"]["tlsEnabled"],
431
+ tls_ca_certificates=c["config"]["tlsCaCertificates"],
430
432
  display_name=display_name,
431
433
  enable_catalog=c["enableCatalog"],
432
434
  __internal__=g,
@@ -1692,6 +1692,8 @@ class OracleCredential(Credential):
1692
1692
  port: int,
1693
1693
  database: str,
1694
1694
  auth: OracleCredentialAuth,
1695
+ tls_enabled: bool | None = None,
1696
+ tls_ca_certificates: str | None = None,
1695
1697
  enable_catalog: bool = False,
1696
1698
  display_name: str | None = None,
1697
1699
  ignore_changes: bool = False,
@@ -1705,6 +1707,10 @@ class OracleCredential(Credential):
1705
1707
  :param port: Port number of the server.
1706
1708
  :param auth: Credentials to use for authentication.
1707
1709
  :param database: Name of the database to connect to
1710
+ :param tls_enabled: If set to true, connections will be
1711
+ established using the TLS protocol.
1712
+ :param tls_ca_certificates: PEM certificate bundle used to
1713
+ verify the server TLS certificate.
1708
1714
  :param enable_catalog: If set to true, this credential will
1709
1715
  be used to fetch catalog information.
1710
1716
  :param display_name: Human-readable name for the credential. This name is
@@ -1722,6 +1728,8 @@ class OracleCredential(Credential):
1722
1728
  self.port = port
1723
1729
  self.database = database
1724
1730
  self.auth = auth
1731
+ self.tls_enabled = tls_enabled
1732
+ self.tls_ca_certificates = tls_ca_certificates
1725
1733
  self.enable_catalog = enable_catalog
1726
1734
 
1727
1735
  def _immutable_fields(self) -> set[str]:
@@ -1734,6 +1742,8 @@ class OracleCredential(Credential):
1734
1742
  "host",
1735
1743
  "port",
1736
1744
  "database",
1745
+ "tls_enabled",
1746
+ "tls_ca_certificates",
1737
1747
  "enable_catalog",
1738
1748
  },
1739
1749
  }
@@ -1,5 +1,6 @@
1
1
  import pytest
2
2
 
3
+ from validio_sdk.code._import import ImportContext
3
4
  from validio_sdk.resource._diff import (
4
5
  CascadeReplacementReason,
5
6
  DiffContext,
@@ -11,6 +12,7 @@ from validio_sdk.resource._diff import (
11
12
  _diff_resource_graph,
12
13
  )
13
14
  from validio_sdk.resource._resource import ResourceGraph
15
+ from validio_sdk.resource._serde import _import_value_repr
14
16
  from validio_sdk.resource.channels import Channel, SlackChannel, WebhookChannel
15
17
  from validio_sdk.resource.credentials import AwsCredential, Credential, DemoCredential
16
18
  from validio_sdk.resource.filters import (
@@ -1774,3 +1776,49 @@ def test_enum_filter_values_should_ignore_order() -> None:
1774
1776
 
1775
1777
  _add_namespace(namespace, server_ctx)
1776
1778
  assert expected == _diff_resource_graph(namespace, manifest_ctx, server_ctx)
1779
+
1780
+
1781
+ @pytest.mark.parametrize(
1782
+ ("input", "expected"),
1783
+ [
1784
+ (
1785
+ "this string has no special characters",
1786
+ "'this string has no special characters'",
1787
+ ),
1788
+ (
1789
+ "this string contains '",
1790
+ '"this string contains \'"',
1791
+ ),
1792
+ (
1793
+ "this\nmultiline\nshould be\ntripple quoted",
1794
+ "'''this\nmultiline\nshould be\ntripple quoted'''",
1795
+ ),
1796
+ (
1797
+ "multiline with '''\nshould be\ndouble quotes",
1798
+ '"""multiline with \'\'\'\nshould be\ndouble quotes"""',
1799
+ ),
1800
+ (
1801
+ "multiline trailing\nshould be\ndouble quotes'",
1802
+ '"""multiline trailing\nshould be\ndouble quotes\'"""',
1803
+ ),
1804
+ (
1805
+ "'multiline leading\nshould be\ndouble quotes",
1806
+ '"""\'multiline leading\nshould be\ndouble quotes"""',
1807
+ ),
1808
+ (
1809
+ 'multiline with """\nshould be\nsingle quotes',
1810
+ "'''multiline with \"\"\"\nshould be\nsingle quotes'''",
1811
+ ),
1812
+ (
1813
+ 'multiline trailing\nshould be\nsingle quotes"',
1814
+ "'''multiline trailing\nshould be\nsingle quotes\"'''",
1815
+ ),
1816
+ (
1817
+ '"multiline leading\nshould be\nsingle quotes',
1818
+ "'''\"multiline leading\nshould be\nsingle quotes'''",
1819
+ ),
1820
+ ],
1821
+ )
1822
+ def test_import_value_repr(input: str, expected: str) -> None:
1823
+ got = _import_value_repr(input, 0, ImportContext())
1824
+ assert got == expected
@@ -416,7 +416,7 @@ class Validator(Resource, ABC):
416
416
  def _mutable_fields(self) -> set[str]:
417
417
  return {
418
418
  *super()._mutable_fields(),
419
- *{"description", "filter_name", "owner", "priority"},
419
+ *{"description", "filter_name", "owner", "priority", "tag_names"},
420
420
  }
421
421
 
422
422
  def _ignored_fields(self) -> set[str]:
File without changes