interloper-core 0.2.0__tar.gz → 0.3.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.
- {interloper_core-0.2.0 → interloper_core-0.3.0}/PKG-INFO +5 -4
- {interloper_core-0.2.0 → interloper_core-0.3.0}/pyproject.toml +8 -3
- interloper_core-0.3.0/src/interloper/__init__.py +99 -0
- interloper_core-0.3.0/src/interloper/asset/__init__.py +5 -0
- interloper_core-0.3.0/src/interloper/asset/base.py +743 -0
- {interloper_core-0.2.0/src/interloper/assets → interloper_core-0.3.0/src/interloper/asset}/context.py +32 -77
- interloper_core-0.3.0/src/interloper/asset/decorator.py +168 -0
- interloper_core-0.3.0/src/interloper/catalog/__init__.py +5 -0
- interloper_core-0.3.0/src/interloper/catalog/base.py +169 -0
- interloper_core-0.3.0/src/interloper/cli/__init__.py +0 -0
- interloper_core-0.3.0/src/interloper/cli/commands/__init__.py +1 -0
- interloper_core-0.3.0/src/interloper/cli/commands/agent.py +80 -0
- interloper_core-0.3.0/src/interloper/cli/commands/app.py +152 -0
- interloper_core-0.3.0/src/interloper/cli/commands/db.py +114 -0
- interloper_core-0.3.0/src/interloper/cli/commands/launch.py +76 -0
- interloper_core-0.3.0/src/interloper/cli/commands/run.py +228 -0
- interloper_core-0.3.0/src/interloper/cli/main.py +109 -0
- interloper_core-0.3.0/src/interloper/cli/runtime.py +84 -0
- interloper_core-0.3.0/src/interloper/cli/services.py +244 -0
- interloper_core-0.3.0/src/interloper/component/__init__.py +4 -0
- interloper_core-0.3.0/src/interloper/component/base.py +276 -0
- interloper_core-0.3.0/src/interloper/component/build.py +89 -0
- interloper_core-0.3.0/src/interloper/config/__init__.py +4 -0
- interloper_core-0.3.0/src/interloper/config/base.py +27 -0
- interloper_core-0.3.0/src/interloper/config/decorator.py +75 -0
- interloper_core-0.3.0/src/interloper/connection/__init__.py +4 -0
- interloper_core-0.3.0/src/interloper/connection/base.py +46 -0
- interloper_core-0.3.0/src/interloper/connection/decorator.py +76 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/dag/__init__.py +2 -2
- interloper_core-0.3.0/src/interloper/dag/base.py +370 -0
- interloper_core-0.3.0/src/interloper/dag/spec.py +43 -0
- interloper_core-0.3.0/src/interloper/destination/__init__.py +22 -0
- interloper_core-0.3.0/src/interloper/destination/adapter.py +63 -0
- interloper_core-0.3.0/src/interloper/destination/base.py +137 -0
- {interloper_core-0.2.0/src/interloper/io → interloper_core-0.3.0/src/interloper/destination}/context.py +3 -10
- {interloper_core-0.2.0/src/interloper/io → interloper_core-0.3.0/src/interloper/destination}/csv.py +11 -30
- interloper_core-0.3.0/src/interloper/destination/database.py +243 -0
- interloper_core-0.3.0/src/interloper/destination/decorator.py +85 -0
- interloper_core-0.3.0/src/interloper/destination/file.py +92 -0
- {interloper_core-0.2.0/src/interloper/io → interloper_core-0.3.0/src/interloper/destination}/memory.py +22 -53
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/errors.py +81 -25
- interloper_core-0.3.0/src/interloper/events/__init__.py +15 -0
- interloper_core-0.3.0/src/interloper/events/bus.py +199 -0
- interloper_core-0.3.0/src/interloper/events/event.py +136 -0
- interloper_core-0.3.0/src/interloper/events/logger.py +58 -0
- interloper_core-0.3.0/src/interloper/events/stderr.py +42 -0
- interloper_core-0.3.0/src/interloper/events/types.py +51 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/normalizer/base.py +39 -16
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/normalizer/strategy.py +3 -3
- interloper_core-0.3.0/src/interloper/resource/__init__.py +24 -0
- interloper_core-0.3.0/src/interloper/resource/base.py +81 -0
- interloper_core-0.3.0/src/interloper/resource/fields.py +309 -0
- interloper_core-0.3.0/src/interloper/resource/ref.py +108 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/rest/__init__.py +1 -1
- interloper_core-0.3.0/src/interloper/runner/__init__.py +24 -0
- interloper_core-0.3.0/src/interloper/runner/async_runner.py +221 -0
- interloper_core-0.3.0/src/interloper/runner/base.py +169 -0
- interloper_core-0.3.0/src/interloper/runner/multi_process.py +156 -0
- interloper_core-0.3.0/src/interloper/runner/multi_thread.py +50 -0
- {interloper_core-0.2.0/src/interloper/runners → interloper_core-0.3.0/src/interloper/runner}/results.py +51 -22
- interloper_core-0.3.0/src/interloper/runner/serial.py +47 -0
- interloper_core-0.3.0/src/interloper/runner/state.py +340 -0
- interloper_core-0.3.0/src/interloper/runner/sync_runner.py +218 -0
- interloper_core-0.3.0/src/interloper/schema/__init__.py +4 -0
- interloper_core-0.3.0/src/interloper/schema/base.py +196 -0
- interloper_core-0.3.0/src/interloper/schema/decorator.py +59 -0
- interloper_core-0.3.0/src/interloper/settings.py +195 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/source/__init__.py +0 -3
- interloper_core-0.3.0/src/interloper/source/base.py +537 -0
- interloper_core-0.3.0/src/interloper/source/decorator.py +229 -0
- interloper_core-0.3.0/src/interloper/utils/__init__.py +6 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/utils/imports.py +28 -29
- interloper_core-0.3.0/src/interloper/utils/text.py +77 -0
- interloper_core-0.2.0/src/interloper/__init__.py +0 -140
- interloper_core-0.2.0/src/interloper/assets/__init__.py +0 -8
- interloper_core-0.2.0/src/interloper/assets/base.py +0 -594
- interloper_core-0.2.0/src/interloper/assets/decorator.py +0 -92
- interloper_core-0.2.0/src/interloper/assets/keys.py +0 -22
- interloper_core-0.2.0/src/interloper/backfillers/__init__.py +0 -8
- interloper_core-0.2.0/src/interloper/backfillers/base.py +0 -254
- interloper_core-0.2.0/src/interloper/backfillers/results.py +0 -99
- interloper_core-0.2.0/src/interloper/backfillers/serial.py +0 -38
- interloper_core-0.2.0/src/interloper/backfillers/state.py +0 -141
- interloper_core-0.2.0/src/interloper/cli/__init__.py +0 -5
- interloper_core-0.2.0/src/interloper/cli/config.py +0 -50
- interloper_core-0.2.0/src/interloper/cli/display.py +0 -1068
- interloper_core-0.2.0/src/interloper/cli/main.py +0 -265
- interloper_core-0.2.0/src/interloper/dag/base.py +0 -404
- interloper_core-0.2.0/src/interloper/events/__init__.py +0 -29
- interloper_core-0.2.0/src/interloper/events/base.py +0 -480
- interloper_core-0.2.0/src/interloper/events/server.py +0 -148
- interloper_core-0.2.0/src/interloper/io/__init__.py +0 -21
- interloper_core-0.2.0/src/interloper/io/adapter.py +0 -106
- interloper_core-0.2.0/src/interloper/io/base.py +0 -73
- interloper_core-0.2.0/src/interloper/io/database.py +0 -378
- interloper_core-0.2.0/src/interloper/io/file.py +0 -153
- interloper_core-0.2.0/src/interloper/runners/__init__.py +0 -14
- interloper_core-0.2.0/src/interloper/runners/base.py +0 -279
- interloper_core-0.2.0/src/interloper/runners/multi_process.py +0 -158
- interloper_core-0.2.0/src/interloper/runners/multi_thread.py +0 -100
- interloper_core-0.2.0/src/interloper/runners/serial.py +0 -42
- interloper_core-0.2.0/src/interloper/runners/state.py +0 -229
- interloper_core-0.2.0/src/interloper/schema/__init__.py +0 -5
- interloper_core-0.2.0/src/interloper/schema/base.py +0 -179
- interloper_core-0.2.0/src/interloper/serialization/__init__.py +0 -21
- interloper_core-0.2.0/src/interloper/serialization/asset.py +0 -100
- interloper_core-0.2.0/src/interloper/serialization/backfiller.py +0 -29
- interloper_core-0.2.0/src/interloper/serialization/base.py +0 -43
- interloper_core-0.2.0/src/interloper/serialization/config.py +0 -45
- interloper_core-0.2.0/src/interloper/serialization/dag.py +0 -29
- interloper_core-0.2.0/src/interloper/serialization/io.py +0 -28
- interloper_core-0.2.0/src/interloper/serialization/runner.py +0 -29
- interloper_core-0.2.0/src/interloper/serialization/source.py +0 -68
- interloper_core-0.2.0/src/interloper/source/base.py +0 -389
- interloper_core-0.2.0/src/interloper/source/config.py +0 -20
- interloper_core-0.2.0/src/interloper/source/decorator.py +0 -77
- interloper_core-0.2.0/src/interloper/utils/__init__.py +0 -6
- interloper_core-0.2.0/src/interloper/utils/text.py +0 -94
- {interloper_core-0.2.0 → interloper_core-0.3.0}/README.md +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/normalizer/__init__.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/partitioning/__init__.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/partitioning/base.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/partitioning/time.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/rest/auth.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/rest/client.py +0 -0
- {interloper_core-0.2.0 → interloper_core-0.3.0}/src/interloper/rest/paginator.py +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: interloper-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Interloper
|
|
5
5
|
Author: Guillaume Onfroy
|
|
6
6
|
Author-email: Guillaume Onfroy <guillaume@digitlcloud.com>
|
|
7
7
|
Requires-Dist: pydantic>=2.11.7
|
|
8
8
|
Requires-Dist: pydantic-settings>=2.11.0
|
|
9
9
|
Requires-Dist: httpx>=0.28.1
|
|
10
|
-
Requires-Dist: pyyaml>=6.0.0
|
|
11
|
-
Requires-Dist:
|
|
10
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
11
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
12
|
+
Requires-Dist: interloper-google-cloud ; extra == 'google-cloud'
|
|
12
13
|
Requires-Python: >=3.10
|
|
13
|
-
Provides-Extra:
|
|
14
|
+
Provides-Extra: google-cloud
|
|
14
15
|
Description-Content-Type: text/markdown
|
|
15
16
|
|
|
16
17
|
# interloper-core
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# ###############
|
|
4
4
|
[project]
|
|
5
5
|
name = "interloper-core"
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.3.0"
|
|
7
7
|
description = "Interloper"
|
|
8
8
|
authors = [{ name = "Guillaume Onfroy", email = "guillaume@digitlcloud.com" }]
|
|
9
9
|
readme = "README.md"
|
|
@@ -12,16 +12,21 @@ dependencies = [
|
|
|
12
12
|
"pydantic>=2.11.7",
|
|
13
13
|
"pydantic-settings>=2.11.0",
|
|
14
14
|
"httpx>=0.28.1",
|
|
15
|
+
"pyyaml>=6.0.0",
|
|
16
|
+
"typing_extensions>=4.0.0",
|
|
15
17
|
]
|
|
16
18
|
|
|
17
19
|
[project.optional-dependencies]
|
|
18
|
-
|
|
20
|
+
google-cloud = ["interloper-google-cloud"]
|
|
19
21
|
|
|
20
22
|
[dependency-groups]
|
|
21
23
|
dev = ["pytest>=8.0.0", "pytest-cov>=7.0.0"]
|
|
22
24
|
|
|
25
|
+
[tool.uv.sources]
|
|
26
|
+
interloper-google-cloud = { workspace = true }
|
|
27
|
+
|
|
23
28
|
[build-system]
|
|
24
|
-
requires = ["uv_build>=0.
|
|
29
|
+
requires = ["uv_build>=0.11.5,<0.12"]
|
|
25
30
|
build-backend = "uv_build"
|
|
26
31
|
|
|
27
32
|
[tool.uv.build-backend]
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
from interloper.asset import Asset, AssetDefinition, ExecutionContext, asset
|
|
2
|
+
from interloper.catalog import Catalog
|
|
3
|
+
from interloper.component import Component, ComponentDefinition, ComponentSpec
|
|
4
|
+
from interloper.config import Config, config
|
|
5
|
+
from interloper.connection import Connection, connection
|
|
6
|
+
from interloper.dag import DAG
|
|
7
|
+
from interloper.destination import (
|
|
8
|
+
CSVDestination,
|
|
9
|
+
Destination,
|
|
10
|
+
DestinationDefinition,
|
|
11
|
+
FileDestination,
|
|
12
|
+
IOContext,
|
|
13
|
+
MemoryDestination,
|
|
14
|
+
destination,
|
|
15
|
+
)
|
|
16
|
+
from interloper.events import Event, EventBus, EventType
|
|
17
|
+
from interloper.normalizer import MaterializationStrategy, Normalizer
|
|
18
|
+
from interloper.partitioning import (
|
|
19
|
+
Partition,
|
|
20
|
+
PartitionConfig,
|
|
21
|
+
PartitionWindow,
|
|
22
|
+
TimePartition,
|
|
23
|
+
TimePartitionConfig,
|
|
24
|
+
TimePartitionWindow,
|
|
25
|
+
)
|
|
26
|
+
from interloper.resource import Resource, ResourceDefinition, ResourceRef
|
|
27
|
+
from interloper.resource.fields import (
|
|
28
|
+
FetchField,
|
|
29
|
+
InputField,
|
|
30
|
+
JsonField,
|
|
31
|
+
OAuthConfig,
|
|
32
|
+
SecretField,
|
|
33
|
+
SelectField,
|
|
34
|
+
TextField,
|
|
35
|
+
)
|
|
36
|
+
from interloper.rest import HTTPBearerAuth, OAuth2Auth, OAuth2ClientCredentialsAuth, OAuth2RefreshTokenAuth, RESTClient
|
|
37
|
+
from interloper.runner import AsyncRunner, MultiProcessRunner, MultiThreadRunner, Runner, RunResult, SerialRunner
|
|
38
|
+
from interloper.schema import Schema, schema
|
|
39
|
+
from interloper.source import Source, SourceDefinition, source
|
|
40
|
+
|
|
41
|
+
__all__ = [
|
|
42
|
+
"DAG",
|
|
43
|
+
"Asset",
|
|
44
|
+
"AssetDefinition",
|
|
45
|
+
"AsyncRunner",
|
|
46
|
+
"CSVDestination",
|
|
47
|
+
"Catalog",
|
|
48
|
+
"Component",
|
|
49
|
+
"ComponentDefinition",
|
|
50
|
+
"ComponentSpec",
|
|
51
|
+
"Config",
|
|
52
|
+
"Connection",
|
|
53
|
+
"Destination",
|
|
54
|
+
"DestinationDefinition",
|
|
55
|
+
"Event",
|
|
56
|
+
"EventBus",
|
|
57
|
+
"EventType",
|
|
58
|
+
"ExecutionContext",
|
|
59
|
+
"FetchField",
|
|
60
|
+
"FileDestination",
|
|
61
|
+
"HTTPBearerAuth",
|
|
62
|
+
"IOContext",
|
|
63
|
+
"InputField",
|
|
64
|
+
"JsonField",
|
|
65
|
+
"MaterializationStrategy",
|
|
66
|
+
"MemoryDestination",
|
|
67
|
+
"MultiProcessRunner",
|
|
68
|
+
"MultiThreadRunner",
|
|
69
|
+
"Normalizer",
|
|
70
|
+
"OAuth2Auth",
|
|
71
|
+
"OAuth2ClientCredentialsAuth",
|
|
72
|
+
"OAuth2RefreshTokenAuth",
|
|
73
|
+
"OAuthConfig",
|
|
74
|
+
"Partition",
|
|
75
|
+
"PartitionConfig",
|
|
76
|
+
"PartitionWindow",
|
|
77
|
+
"RESTClient",
|
|
78
|
+
"Resource",
|
|
79
|
+
"ResourceDefinition",
|
|
80
|
+
"ResourceRef",
|
|
81
|
+
"RunResult",
|
|
82
|
+
"Runner",
|
|
83
|
+
"Schema",
|
|
84
|
+
"SecretField",
|
|
85
|
+
"SelectField",
|
|
86
|
+
"SerialRunner",
|
|
87
|
+
"Source",
|
|
88
|
+
"SourceDefinition",
|
|
89
|
+
"TextField",
|
|
90
|
+
"TimePartition",
|
|
91
|
+
"TimePartitionConfig",
|
|
92
|
+
"TimePartitionWindow",
|
|
93
|
+
"asset",
|
|
94
|
+
"config",
|
|
95
|
+
"connection",
|
|
96
|
+
"destination",
|
|
97
|
+
"schema",
|
|
98
|
+
"source",
|
|
99
|
+
]
|