polymo 1.3.0__tar.gz → 1.4.1__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.
- {polymo-1.3.0 → polymo-1.4.1}/PKG-INFO +14 -3
- {polymo-1.3.0 → polymo-1.4.1}/README.md +11 -0
- polymo-1.4.1/pyproject.toml +92 -0
- polymo-1.3.0/pyproject.toml → polymo-1.4.1/pyproject.toml.orig +17 -6
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/__init__.py +2 -1
- polymo-1.4.1/src/polymo/builder/app.py +650 -0
- polymo-1.4.1/src/polymo/builder/databricks.py +268 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/preview.py +41 -0
- polymo-1.4.1/src/polymo/builder/static/main.css +1 -0
- polymo-1.4.1/src/polymo/builder/static/main.js +53 -0
- polymo-1.4.1/src/polymo/codegen/__init__.py +4 -0
- polymo-1.4.1/src/polymo/codegen/bundle.py +138 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/codegen/generator.py +80 -4
- polymo-1.4.1/src/polymo/codegen/templates/bundle/databricks.yml.jinja +26 -0
- polymo-1.4.1/src/polymo/codegen/templates/bundle/pipeline.py.jinja +7 -0
- polymo-1.4.1/src/polymo/codegen/templates/bundle/readme.md.jinja +14 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/codegen/templates/core.py.jinja +24 -5
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/codegen/templates/dp.py.jinja +7 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/config.py +87 -2
- polymo-1.3.0/src/polymo/builder/app.py +0 -283
- polymo-1.3.0/src/polymo/builder/static/main.css +0 -1
- polymo-1.3.0/src/polymo/builder/static/main.js +0 -80
- polymo-1.3.0/src/polymo/codegen/__init__.py +0 -3
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/__init__.py +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/examples/countries.polymo.json +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/examples/githubrepos.polymo.json +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/examples/jsonplaceholder.polymo.json +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/examples/jsonplaceholder_endpoints.polymo.json +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/examples/weather.polymo.json +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/favicon.ico +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/favicon.png +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/index.html +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/logo.png +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/logo192.png +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/static/mockServiceWorker.js +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/builder/templates/index.html +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/cli.py +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/codegen/templating.py +0 -0
- {polymo-1.3.0 → polymo-1.4.1}/src/polymo/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: polymo
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.1
|
|
4
4
|
Summary: Generate standalone Lakeflow Declarative Pipelines scripts from a point-and-click REST connector builder
|
|
5
5
|
Keywords: spark,pyspark,rest,api,ingestion,data-engineering,etl,http
|
|
6
6
|
Author: Daniel Tom
|
|
@@ -27,10 +27,10 @@ Requires-Dist: pyspark>=4
|
|
|
27
27
|
Requires-Dist: pyarrow>=13
|
|
28
28
|
Requires-Dist: requests>=2.31
|
|
29
29
|
Requires-Python: >=3.10
|
|
30
|
-
Project-URL: Documentation, https://dan1elt0m.github.io/polymo/
|
|
31
30
|
Project-URL: Homepage, https://github.com/dan1elt0m/polymo
|
|
32
|
-
Project-URL: Issues, https://github.com/dan1elt0m/polymo/issues
|
|
33
31
|
Project-URL: Repository, https://github.com/dan1elt0m/polymo.git
|
|
32
|
+
Project-URL: Documentation, https://dan1elt0m.github.io/polymo/
|
|
33
|
+
Project-URL: Issues, https://github.com/dan1elt0m/polymo/issues
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
<p align="center">
|
|
@@ -99,6 +99,17 @@ download the script. Every field you fill in is baked into that script as a
|
|
|
99
99
|
plain Python constant or a small block of generated code — there is nothing
|
|
100
100
|
left to configure at runtime, and no polymo import anywhere in the output.
|
|
101
101
|
|
|
102
|
+
Ready to run it on Databricks? Switch to the **Deploy** tab instead: pick a
|
|
103
|
+
CLI profile → catalog → schema, click **Bootstrap** to write a full
|
|
104
|
+
Databricks Asset Bundle project (same generated code, laid out under
|
|
105
|
+
`src/`), then **Deploy** and **Run** to drive `databricks bundle deploy`/`run`
|
|
106
|
+
without leaving the Builder. Requires the
|
|
107
|
+
[Databricks CLI](https://docs.databricks.com/dev-tools/cli/) and a
|
|
108
|
+
`~/.databrickscfg` profile — see
|
|
109
|
+
[Deploy to Databricks](docs/builder-ui.md#deploy-to-databricks) for the full
|
|
110
|
+
walkthrough, including how auth secrets can reference a Databricks secret
|
|
111
|
+
scope instead of a placeholder.
|
|
112
|
+
|
|
102
113
|
See the [Connector options reference](docs/config.md) for what every Builder
|
|
103
114
|
field generates, and the [Builder UI walkthrough](docs/builder-ui.md) for a
|
|
104
115
|
guided tour of the form.
|
|
@@ -64,6 +64,17 @@ download the script. Every field you fill in is baked into that script as a
|
|
|
64
64
|
plain Python constant or a small block of generated code — there is nothing
|
|
65
65
|
left to configure at runtime, and no polymo import anywhere in the output.
|
|
66
66
|
|
|
67
|
+
Ready to run it on Databricks? Switch to the **Deploy** tab instead: pick a
|
|
68
|
+
CLI profile → catalog → schema, click **Bootstrap** to write a full
|
|
69
|
+
Databricks Asset Bundle project (same generated code, laid out under
|
|
70
|
+
`src/`), then **Deploy** and **Run** to drive `databricks bundle deploy`/`run`
|
|
71
|
+
without leaving the Builder. Requires the
|
|
72
|
+
[Databricks CLI](https://docs.databricks.com/dev-tools/cli/) and a
|
|
73
|
+
`~/.databrickscfg` profile — see
|
|
74
|
+
[Deploy to Databricks](docs/builder-ui.md#deploy-to-databricks) for the full
|
|
75
|
+
walkthrough, including how auth secrets can reference a Databricks secret
|
|
76
|
+
scope instead of a placeholder.
|
|
77
|
+
|
|
67
78
|
See the [Connector options reference](docs/config.md) for what every Builder
|
|
68
79
|
field generates, and the [Builder UI walkthrough](docs/builder-ui.md) for a
|
|
69
80
|
guided tour of the form.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "polymo"
|
|
3
|
+
version = "1.4.1"
|
|
4
|
+
description = "Generate standalone Lakeflow Declarative Pipelines scripts from a point-and-click REST connector builder"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
keywords = [
|
|
8
|
+
"spark",
|
|
9
|
+
"pyspark",
|
|
10
|
+
"rest",
|
|
11
|
+
"api",
|
|
12
|
+
"ingestion",
|
|
13
|
+
"data-engineering",
|
|
14
|
+
"etl",
|
|
15
|
+
"http",
|
|
16
|
+
]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 5 - Production/Stable",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Intended Audience :: Information Technology",
|
|
21
|
+
"Topic :: Internet :: WWW/HTTP",
|
|
22
|
+
"Topic :: Software Development :: Libraries",
|
|
23
|
+
"Topic :: Database",
|
|
24
|
+
"License :: OSI Approved :: BSD License",
|
|
25
|
+
"Programming Language :: Python :: 3",
|
|
26
|
+
"Programming Language :: Python :: 3.10",
|
|
27
|
+
"Programming Language :: Python :: 3.11",
|
|
28
|
+
"Programming Language :: Python :: 3.12",
|
|
29
|
+
"Programming Language :: Python :: 3.13",
|
|
30
|
+
"Operating System :: OS Independent",
|
|
31
|
+
"Typing :: Typed",
|
|
32
|
+
]
|
|
33
|
+
dependencies = [
|
|
34
|
+
"jinja2>=3.1.6",
|
|
35
|
+
"fastapi>=0.110",
|
|
36
|
+
"uvicorn>=0.24",
|
|
37
|
+
"pyspark>=4",
|
|
38
|
+
"pyarrow>=13",
|
|
39
|
+
"requests>=2.31",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[[project.authors]]
|
|
43
|
+
name = "Daniel Tom"
|
|
44
|
+
email = "d.e.tom89@gmail.com"
|
|
45
|
+
|
|
46
|
+
[project.license]
|
|
47
|
+
text = "BSD-3"
|
|
48
|
+
|
|
49
|
+
[project.scripts]
|
|
50
|
+
polymo = "polymo.cli:main"
|
|
51
|
+
|
|
52
|
+
[project.urls]
|
|
53
|
+
Homepage = "https://github.com/dan1elt0m/polymo"
|
|
54
|
+
Repository = "https://github.com/dan1elt0m/polymo.git"
|
|
55
|
+
Documentation = "https://dan1elt0m.github.io/polymo/"
|
|
56
|
+
Issues = "https://github.com/dan1elt0m/polymo/issues"
|
|
57
|
+
|
|
58
|
+
[dependency-groups]
|
|
59
|
+
dev = [
|
|
60
|
+
"httpx>=0.26",
|
|
61
|
+
"pre-commit>=4.3.0",
|
|
62
|
+
"pytest>=8.4.2",
|
|
63
|
+
"pytest-cov>=7.0.0",
|
|
64
|
+
"pyyaml>=6.0",
|
|
65
|
+
"requests>=2.31",
|
|
66
|
+
"ruff>=0.13.3,<0.16",
|
|
67
|
+
]
|
|
68
|
+
docs = [
|
|
69
|
+
"mkdocs>=1.4.2",
|
|
70
|
+
"mkdocs-material>=9.1.4",
|
|
71
|
+
"mkdocs-gen-files>=0.4,<0.7",
|
|
72
|
+
"mkdocs-literate-nav>=0.6.0",
|
|
73
|
+
"mkdocstrings[python]>=0.20,<1.1",
|
|
74
|
+
"mkautodoc>=0.2.0",
|
|
75
|
+
"pymdown-extensions>=10.0.1",
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
[build-system]
|
|
79
|
+
requires = ["uv_build>=0.8.17,<0.13.0"]
|
|
80
|
+
build-backend = "uv_build"
|
|
81
|
+
|
|
82
|
+
[tool.uv.build-backend]
|
|
83
|
+
wheel-exclude = ["polymo/builder/static/mockServiceWorker.js"]
|
|
84
|
+
|
|
85
|
+
[tool.ruff]
|
|
86
|
+
extend-exclude = [
|
|
87
|
+
"tests/codegen/golden",
|
|
88
|
+
"tests/codegen/golden_bundle",
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
[tool.pytest.ini_options]
|
|
92
|
+
markers = ["spark: exercises a real local[1] PySpark session (slower: ~seconds of JVM startup)."]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "polymo"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.4.1"
|
|
4
4
|
description = "Generate standalone Lakeflow Declarative Pipelines scripts from a point-and-click REST connector builder"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -40,15 +40,26 @@ dev = [
|
|
|
40
40
|
"pre-commit>=4.3.0",
|
|
41
41
|
"pytest>=8.4.2",
|
|
42
42
|
"pytest-cov>=7.0.0",
|
|
43
|
+
# Test-only: parses generated databricks.yml in tests/codegen/test_bundle.py.
|
|
44
|
+
# Runtime code never imports yaml (bundle output is generated as text,
|
|
45
|
+
# not read back with a YAML parser).
|
|
46
|
+
"pyyaml>=6.0",
|
|
43
47
|
"requests>=2.31",
|
|
44
|
-
|
|
48
|
+
# Capped below 0.16: ruff 0.16 turned on new default lint rules
|
|
49
|
+
# (UP035, PLR0133) that flag polymo's own generated-code templates
|
|
50
|
+
# (checked byte-for-byte against tests/codegen/golden/) as violations.
|
|
51
|
+
# This is a linter-version regression, not a security issue -- ruff
|
|
52
|
+
# isn't on the dependency-vulnerability list -- so it's pinned here
|
|
53
|
+
# rather than rewriting the codegen templates to chase a newer
|
|
54
|
+
# linter's opinions.
|
|
55
|
+
"ruff>=0.13.3,<0.16",
|
|
45
56
|
]
|
|
46
57
|
docs = [
|
|
47
58
|
"mkdocs>=1.4.2",
|
|
48
59
|
"mkdocs-material>=9.1.4",
|
|
49
|
-
"mkdocs-gen-files>=0.4,<0.
|
|
60
|
+
"mkdocs-gen-files>=0.4,<0.7",
|
|
50
61
|
"mkdocs-literate-nav>=0.6.0",
|
|
51
|
-
"mkdocstrings[python]>=0.20,<
|
|
62
|
+
"mkdocstrings[python]>=0.20,<1.1",
|
|
52
63
|
"mkautodoc>=0.2.0",
|
|
53
64
|
"pymdown-extensions>=10.0.1",
|
|
54
65
|
]
|
|
@@ -57,7 +68,7 @@ docs = [
|
|
|
57
68
|
polymo = "polymo.cli:main"
|
|
58
69
|
|
|
59
70
|
[build-system]
|
|
60
|
-
requires = ["uv_build>=0.8.17,<0.
|
|
71
|
+
requires = ["uv_build>=0.8.17,<0.13.0"]
|
|
61
72
|
build-backend = "uv_build"
|
|
62
73
|
|
|
63
74
|
[tool.uv.build-backend]
|
|
@@ -76,7 +87,7 @@ Issues = "https://github.com/dan1elt0m/polymo/issues"
|
|
|
76
87
|
# Golden fixtures capture `generate()`'s literal output byte-for-byte; ruff
|
|
77
88
|
# must not reformat them or the golden tests would drift from what the
|
|
78
89
|
# generator actually produces.
|
|
79
|
-
extend-exclude = ["tests/codegen/golden"]
|
|
90
|
+
extend-exclude = ["tests/codegen/golden", "tests/codegen/golden_bundle"]
|
|
80
91
|
|
|
81
92
|
[tool.pytest.ini_options]
|
|
82
93
|
markers = [
|