jerry-thomas 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

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.
datapipeline/cli/app.py CHANGED
@@ -40,7 +40,7 @@ def main() -> None:
40
40
  p_prep.add_argument(
41
41
  "--project",
42
42
  "-p",
43
- default="config/recipes/default/project.yaml",
43
+ default="config/datasets/default/project.yaml",
44
44
  help="path to project.yaml",
45
45
  )
46
46
  p_prep.add_argument("--limit", "-n", type=int, default=20)
@@ -54,7 +54,7 @@ def main() -> None:
54
54
  p_prep_stage.add_argument(
55
55
  "--project",
56
56
  "-p",
57
- default="config/recipes/default/project.yaml",
57
+ default="config/datasets/default/project.yaml",
58
58
  help="path to project.yaml",
59
59
  )
60
60
  p_prep_stage.add_argument("--limit", "-n", type=int, default=20)
@@ -69,7 +69,7 @@ def main() -> None:
69
69
  p_serve.add_argument(
70
70
  "--project",
71
71
  "-p",
72
- default="config/recipes/default/project.yaml",
72
+ default="config/datasets/default/project.yaml",
73
73
  help="path to project.yaml",
74
74
  )
75
75
  p_serve.add_argument(
@@ -81,9 +81,9 @@ def main() -> None:
81
81
  help="output destination: 'print', 'stream', or a file ending in .pt",
82
82
  )
83
83
 
84
- # distillery (sources)
84
+ # source
85
85
  p_dist = sub.add_parser(
86
- "distillery",
86
+ "source",
87
87
  help="add or list raw sources",
88
88
  parents=[common],
89
89
  )
@@ -116,9 +116,9 @@ def main() -> None:
116
116
  )
117
117
  dist_sub.add_parser("list", help="list known sources")
118
118
 
119
- # spirit (domains)
119
+ # domain
120
120
  p_spirit = sub.add_parser(
121
- "spirit",
121
+ "domain",
122
122
  help="add or list domains",
123
123
  parents=[common],
124
124
  )
@@ -134,13 +134,13 @@ def main() -> None:
134
134
  # contract (link source ↔ domain)
135
135
  p_contract = sub.add_parser(
136
136
  "contract",
137
- help="link a distillery source to a spirit domain",
137
+ help="link a source to a domain",
138
138
  parents=[common],
139
139
  )
140
140
 
141
- # bar (plugin scaffolding)
141
+ # plugin (plugin scaffolding)
142
142
  p_bar = sub.add_parser(
143
- "bar",
143
+ "plugin",
144
144
  help="scaffold plugin workspaces",
145
145
  parents=[common],
146
146
  )
@@ -176,7 +176,7 @@ def main() -> None:
176
176
  p_inspect_report.add_argument(
177
177
  "--project",
178
178
  "-p",
179
- default="config/recipes/default/project.yaml",
179
+ default="config/datasets/default/project.yaml",
180
180
  help="path to project.yaml",
181
181
  )
182
182
  p_inspect_report.add_argument(
@@ -207,7 +207,7 @@ def main() -> None:
207
207
  p_inspect_cov.add_argument(
208
208
  "--project",
209
209
  "-p",
210
- default="config/recipes/default/project.yaml",
210
+ default="config/datasets/default/project.yaml",
211
211
  help="path to project.yaml",
212
212
  )
213
213
  p_inspect_cov.add_argument(
@@ -244,7 +244,7 @@ def main() -> None:
244
244
  p_inspect_matrix.add_argument(
245
245
  "--project",
246
246
  "-p",
247
- default="config/recipes/default/project.yaml",
247
+ default="config/datasets/default/project.yaml",
248
248
  help="path to project.yaml",
249
249
  )
250
250
  p_inspect_matrix.add_argument(
@@ -297,7 +297,7 @@ def main() -> None:
297
297
  p_inspect_parts.add_argument(
298
298
  "--project",
299
299
  "-p",
300
- default="config/recipes/default/project.yaml",
300
+ default="config/datasets/default/project.yaml",
301
301
  help="path to project.yaml",
302
302
  )
303
303
  p_inspect_parts.add_argument(
@@ -318,7 +318,7 @@ def main() -> None:
318
318
  if args.cmd == "prep":
319
319
  from datapipeline.cli.commands.run import handle_prep_stage
320
320
  handle_prep_stage(
321
- project=getattr(args, "project", "config/recipes/default/project.yaml"),
321
+ project=getattr(args, "project", "config/datasets/default/project.yaml"),
322
322
  stage=getattr(args, "num", 0),
323
323
  limit=getattr(args, "limit", 20),
324
324
  )
@@ -337,7 +337,7 @@ def main() -> None:
337
337
  subcmd = getattr(args, "inspect_cmd", None)
338
338
  if subcmd in (None, "report"):
339
339
  handle_inspect_report(
340
- project=getattr(args, "project", "config/recipes/default/project.yaml"),
340
+ project=getattr(args, "project", "config/datasets/default/project.yaml"),
341
341
  output=None,
342
342
  threshold=getattr(args, "threshold", 0.95),
343
343
  match_partition=getattr(args, "match_partition", "base"),
@@ -385,7 +385,7 @@ def main() -> None:
385
385
  )
386
386
  return
387
387
 
388
- if args.cmd == "distillery":
388
+ if args.cmd == "source":
389
389
  if args.dist_cmd == "list":
390
390
  handle_list(subcmd="sources")
391
391
  else:
@@ -398,7 +398,7 @@ def main() -> None:
398
398
  )
399
399
  return
400
400
 
401
- if args.cmd == "spirit":
401
+ if args.cmd == "domain":
402
402
  if args.spirit_cmd == "list":
403
403
  handle_list(subcmd="domains")
404
404
  else:
@@ -412,7 +412,7 @@ def main() -> None:
412
412
  handle_link()
413
413
  return
414
414
 
415
- if args.cmd == "bar":
415
+ if args.cmd == "plugin":
416
416
  handle_bar(
417
417
  subcmd=args.bar_cmd,
418
418
  name=getattr(args, "name", None),
@@ -29,8 +29,8 @@ def handle() -> None:
29
29
  root_dir, name, pyproject = pkg_root(None)
30
30
 
31
31
  # Discover sources by scanning sources_dir YAMLs
32
- # Default to recipe-scoped project config to match other commands
33
- proj_path = root_dir / "config" / "recipes" / "default" / "project.yaml"
32
+ # Default to dataset-scoped project config
33
+ proj_path = root_dir / "config" / "datasets" / "default" / "project.yaml"
34
34
  # Ensure a minimal project scaffold so we can resolve dirs interactively
35
35
  ensure_project_scaffold(proj_path)
36
36
  sources_dir = resolve_sources_dir(proj_path)
@@ -38,7 +38,7 @@ def handle() -> None:
38
38
  if sources_dir.exists():
39
39
  source_options = sorted(p.stem for p in sources_dir.glob("*.y*ml"))
40
40
  if not source_options:
41
- print("❗ No sources found. Create one first (jerry distillery add ...)")
41
+ print("❗ No sources found. Create one first (jerry source add ...)")
42
42
  raise SystemExit(2)
43
43
 
44
44
  src_key = _pick_from_list("Select a source to link:", source_options)
@@ -64,7 +64,7 @@ def handle() -> None:
64
64
  domain_options = sorted(
65
65
  read_group_entries(pyproject, FILTERS_GROUP).keys())
66
66
  if not domain_options:
67
- print("❗ No domains found. Create one first (jerry spirit add ...)")
67
+ print("❗ No domains found. Create one first (jerry domain add ...)")
68
68
  raise SystemExit(2)
69
69
 
70
70
  dom_name = _pick_from_list("Select a domain to link to:", domain_options)
@@ -117,7 +117,7 @@ def _load_sources_from_dir(project_yaml: Path, vars_: dict[str, str]) -> dict:
117
117
  if isinstance(data.get(SRC_PARSER_KEY), dict) and isinstance(data.get(SRC_LOADER_KEY), dict):
118
118
  alias = data.get(SOURCE_ID_KEY)
119
119
  if not alias:
120
- raise ValueError(f"Missing 'source_id' in distillery: {fname}")
120
+ raise ValueError(f"Missing 'source_id' in source file: {fname}")
121
121
  out[alias] = _interpolate(data, vars_)
122
122
  continue
123
123
  return out
@@ -49,8 +49,8 @@ def ensure_project_scaffold(project_yaml: Path) -> None:
49
49
  "version: 1\n"
50
50
  "paths:\n"
51
51
  " streams: ../../contracts\n"
52
- " sources: ../../distilleries\n"
53
- " dataset: recipe.yaml\n"
52
+ " sources: ../../sources\n"
53
+ " dataset: dataset.yaml\n"
54
54
  "globals:\n"
55
55
  " start_time: 2021-01-01T00:00:00Z\n"
56
56
  " end_time: 2021-12-31T23:00:00Z\n"
@@ -131,10 +131,10 @@ def create_source(*, provider: str, dataset: str, transport: str,
131
131
  alias = _source_alias(provider, dataset)
132
132
  loader_ep, loader_args = _loader_ep_and_args(transport, format, ep_key)
133
133
 
134
- # Resolve sources directory from a single recipe-scoped project config.
134
+ # Resolve sources directory from a single dataset-scoped project config.
135
135
  # If not present or invalid, let the exception bubble up to prompt the user
136
136
  # to provide a valid project path.
137
- proj_yaml = root_dir / "config" / "recipes" / "default" / "project.yaml"
137
+ proj_yaml = root_dir / "config" / "datasets" / "default" / "project.yaml"
138
138
  # Best-effort: create a minimal project scaffold if missing
139
139
  ensure_project_scaffold(proj_yaml)
140
140
  sources_dir = resolve_sources_dir(proj_yaml).resolve()
@@ -4,22 +4,20 @@ Minimal plugin skeleton for the Jerry Thomas (datapipeline) framework.
4
4
 
5
5
  Quick start
6
6
  - Initialize a plugin (already done if you’re reading this here):
7
- - `jerry bar init --name {{PACKAGE_NAME}}`
7
+ - `jerry plugin init --name {{PACKAGE_NAME}}`
8
8
  - Add a source via CLI (transport-specific placeholders are scaffolded):
9
- - File data: `jerry distillery add -p <provider> -d <dataset> -t fs -f <csv|json|json-lines>`
10
- - URL data: `jerry distillery add -p <provider> -d <dataset> -t url -f <json|json-lines|csv>`
11
- - Synthetic: `jerry distillery add -p <provider> -d <dataset> -t synthetic`
12
- - Edit the generated `config/distilleries/*.yaml` to fill in the `path`, delimiter, etc.
9
+ - File data: `jerry source add -p <provider> -d <dataset> -t fs -f <csv|json|json-lines>`
10
+ - URL data: `jerry source add -p <provider> -d <dataset> -t url -f <json|json-lines|csv>`
11
+ - Synthetic: `jerry source add -p <provider> -d <dataset> -t synthetic`
12
+ - Edit the generated `config/sources/*.yaml` to fill in the `path`, delimiter, etc.
13
13
  - Reinstall after EP changes (pyproject.toml) and restart Python processes:
14
14
  - Core: `cd lib/datapipeline && python -m pip install -e .`
15
15
  - This plugin: `python -m pip install -e .`
16
16
 
17
17
  Folder layout
18
18
  - `config/`
19
- - `distilleries/*.yaml` — raw source definitions (one file per source)
19
+ - `sources/*.yaml` — raw source definitions (one file per source)
20
20
  - `contracts/*.yaml` — canonical stream definitions
21
- - `recipes/<name>/` — experiment configs (each directory holds a `project.yaml`,
22
- `recipe.yaml`, and a `build/` folder for generated artifacts)
23
21
  - `src/{{PACKAGE_NAME}}/`
24
22
  - `sources/<provider>/<dataset>/dto.py` — DTO model for the source
25
23
  - `sources/<provider>/<dataset>/parser.py` — parse raw → DTO
@@ -36,15 +34,15 @@ How loaders work
36
34
  - Synthetic sources generate data in-process and keep a small loader stub.
37
35
 
38
36
  Run data flows
39
- - Records: `jerry prep pour -p config/recipes/default/project.yaml -n 100`
40
- - Features: `jerry prep build -p config/recipes/default/project.yaml -n 100`
41
- - Vectors: `jerry prep stir -p config/recipes/default/project.yaml -n 100`
37
+ - Records: `jerry prep pour -p config/datasets/default/project.yaml -n 100`
38
+ - Features: `jerry prep build -p config/datasets/default/project.yaml -n 100`
39
+ - Vectors: `jerry prep stir -p config/datasets/default/project.yaml -n 100`
42
40
 
43
41
  Analyze vectors
44
- - `jerry inspect report --project config/recipes/default/project.yaml` (console only)
45
- - `jerry inspect coverage --project config/recipes/default/project.yaml` (writes build/coverage.json)
46
- - `jerry inspect matrix --project config/recipes/default/project.yaml --format html` (writes build/matrix.html)
47
- - `jerry inspect partitions --project config/recipes/default/project.yaml` (writes build/partitions.json)
42
+ - `jerry inspect report --project config/datasets/default/project.yaml` (console only)
43
+ - `jerry inspect coverage --project config/datasets/default/project.yaml` (writes build/coverage.json)
44
+ - `jerry inspect matrix --project config/datasets/default/project.yaml --format html` (writes build/matrix.html)
45
+ - `jerry inspect partitions --project config/datasets/default/project.yaml` (writes build/partitions.json)
48
46
  - Use `vector_transforms` to keep coverage high (history/horizontal fills, constants, or
49
47
  drop rules) before serving vectors.
50
48
 
@@ -1,4 +1,4 @@
1
- source_id: time_ticks # raw source alias (see config/distilleries)
1
+ source_id: time_ticks # raw source alias (see config/sources)
2
2
  stream_id: time_linear # this stream id used by recipes
3
3
 
4
4
  mapper: # normalize/reshape DTO -> TemporalRecord if not implemented will give you idenitymapper
@@ -1,8 +1,8 @@
1
1
  version: 1
2
2
  paths:
3
3
  streams: ../../contracts
4
- sources: ../../distilleries
5
- dataset: recipe.yaml
4
+ sources: ../../sources
5
+ dataset: dataset.yaml
6
6
  globals:
7
7
  start_time: 2021-01-01T00:00:00Z
8
8
  end_time: 2023-01-03T23:00:00Z
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "{{PACKAGE_NAME}}"
7
- version = "0.1.0"
7
+ version = "0.0.1"
8
8
  description = "A DataPipeline plugin for the {{PACKAGE_NAME}} domain"
9
9
  dependencies = [
10
- "jerry-thomas>=0.1.0",
10
+ "jerry-thomas>=0.2.0",
11
11
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jerry-thomas
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Jerry-Thomas: a stream-first, plugin-friendly data pipeline (mixology-themed CLI)
5
5
  Author: Anders Skott Lind
6
6
  License: MIT
@@ -121,9 +121,9 @@ values—they are interpolated into downstream YAML specs during bootstrap
121
121
  ```yaml
122
122
  version: 1
123
123
  paths:
124
- sources: ../../distilleries
124
+ sources: ../../sources
125
125
  streams: ../../contracts
126
- dataset: recipe.yaml
126
+ dataset: dataset.yaml
127
127
  globals:
128
128
  opening_time: "2024-01-01T16:00:00Z"
129
129
  last_call: "2024-01-02T02:00:00Z"
@@ -134,13 +134,13 @@ globals:
134
134
 
135
135
  ### 3. Stock the bottles (raw sources)
136
136
 
137
- Create `config/distilleries/<alias>.yaml` files. Each must expose a `parser` and `loader`
137
+ Create `config/sources/<alias>.yaml` files. Each must expose a `parser` and `loader`
138
138
  pointing at entry points plus any constructor arguments
139
139
  (`src/datapipeline/services/bootstrap.py`). Here is a synthetic clock source that feels
140
140
  like a drip of barrel-aged bitters:
141
141
 
142
142
  ```yaml
143
- # config/distilleries/time_ticks.yaml
143
+ # config/sources/time_ticks.yaml
144
144
  parser:
145
145
  entrypoint: "synthetic.time"
146
146
  args: {}
@@ -182,7 +182,7 @@ are grouped (`src/datapipeline/config/dataset/dataset.py`). A minimal hourly men
182
182
  look like:
183
183
 
184
184
  ```yaml
185
- # config/recipes/default/recipe.yaml
185
+ # config/recipes/default/dataset.yaml
186
186
  group_by:
187
187
  keys:
188
188
  - type: time
@@ -241,9 +241,9 @@ materialize all registered sources and streams
241
241
  ### Prep any station (with visuals)
242
242
 
243
243
  ```bash
244
- jerry prep pour --project config/recipes/default/project.yaml --limit 20
245
- jerry prep build --project config/recipes/default/project.yaml --limit 20
246
- jerry prep stir --project config/recipes/default/project.yaml --limit 20
244
+ jerry prep pour --project config/datasets/default/project.yaml --limit 20
245
+ jerry prep build --project config/datasets/default/project.yaml --limit 20
246
+ jerry prep stir --project config/datasets/default/project.yaml --limit 20
247
247
  ```
248
248
 
249
249
  - `prep pour` shows the record-stage ingredients headed for each feature.
@@ -260,9 +260,9 @@ loaders. The CLI wires up `build_record_pipeline`, `build_feature_pipeline` and
260
260
  ### Serve the flights (production mode)
261
261
 
262
262
  ```bash
263
- jerry serve --project config/recipes/default/project.yaml --output print
264
- jerry serve --project config/recipes/default/project.yaml --output stream
265
- jerry serve --project config/recipes/default/project.yaml --output exports/batch.pt
263
+ jerry serve --project config/datasets/default/project.yaml --output print
264
+ jerry serve --project config/datasets/default/project.yaml --output stream
265
+ jerry serve --project config/datasets/default/project.yaml --output exports/batch.pt
266
266
  ```
267
267
 
268
268
  Production mode skips the bar flair and focuses on throughput. `print` writes tasting
@@ -313,26 +313,26 @@ or feature store SDKs—without adding opinionated glue to the runtime itself.
313
313
 
314
314
  Use the inspect helpers for different outputs:
315
315
 
316
- - `jerry inspect report --project config/recipes/default/project.yaml` — print a
316
+ - `jerry inspect report --project config/datasets/default/project.yaml` — print a
317
317
  human-readable quality report (totals, keep/below lists, optional partition detail).
318
- - `jerry inspect coverage --project config/recipes/default/project.yaml` — persist the
318
+ - `jerry inspect coverage --project config/datasets/default/project.yaml` — persist the
319
319
  coverage summary to `build/coverage.json` (keep/below feature and partition lists plus
320
320
  coverage percentages).
321
- - `jerry inspect matrix --project config/recipes/default/project.yaml --format html` —
321
+ - `jerry inspect matrix --project config/datasets/default/project.yaml --format html` —
322
322
  export availability matrices (CSV or HTML) for deeper analysis.
323
- - `jerry inspect partitions --project config/recipes/default/project.yaml` — write the
323
+ - `jerry inspect partitions --project config/datasets/default/project.yaml` — write the
324
324
  observed partition manifest to `build/partitions.json` for use in configs.
325
325
 
326
326
  Note: `jerry prep taste` has been removed; use `jerry inspect report` and friends.
327
327
 
328
328
  ---
329
329
 
330
- ## Extending the bar program
330
+ ## Extending the CLI
331
331
 
332
332
  ### Scaffold a plugin package
333
333
 
334
334
  ```bash
335
- jerry bar init --name my_datapipeline --out .
335
+ jerry plugin init --name my_datapipeline --out .
336
336
  ```
337
337
 
338
338
  The generator copies a ready-made skeleton (pyproject, README, package directory) and
@@ -346,15 +346,15 @@ transforms.
346
346
  Use the CLI helpers to scaffold boilerplate code in your plugin workspace:
347
347
 
348
348
  ```bash
349
- jerry distillery add --provider dmi --dataset metobs --transport fs --format csv
350
- jerry spirit add --domain metobs
349
+ jerry source add --provider dmi --dataset metobs --transport fs --format csv
350
+ jerry domain add --domain metobs
351
351
  jerry contract
352
352
  ```
353
353
 
354
- The distillery command writes DTO/parser stubs, updates entry points and drops a matching
355
- YAML file in `config/distilleries/` pre-filled with composed-loader defaults for the chosen
354
+ The source command writes DTO/parser stubs, updates entry points and drops a matching
355
+ YAML file in `config/sources/` pre-filled with composed-loader defaults for the chosen
356
356
  transport (`src/datapipeline/cli/app.py`, `src/datapipeline/services/scaffold/source.py`).
357
- `jerry spirit add` now always scaffolds `TimeSeriesRecord` domains so every mapper carries
357
+ `jerry domain add` now always scaffolds `TimeSeriesRecord` domains so every mapper carries
358
358
  an explicit timestamp alongside its value, and `jerry contract` wires that source/domain
359
359
  pair up for canonical stream generation.
360
360
 
@@ -2,13 +2,13 @@ datapipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  datapipeline/plugins.py,sha256=RPdzS1TUDLVsuLal-EMiADHwkn1TVJhiG1ukEcCH5LE,837
3
3
  datapipeline/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  datapipeline/analysis/vector_analyzer.py,sha256=rZEAZC3xqsI83-VikKbCf3tHbhpCtEVYvmD9c6ui39U,27158
5
- datapipeline/cli/app.py,sha256=ZBsN7x9t2LJFxMni6okEwPyBocHV5P4omnRg_JTFnFc,13953
5
+ datapipeline/cli/app.py,sha256=iSHcwKvBFPwjSxsAoG-dzpiaC118WJ_8CQ3VNJ44DIc,13921
6
6
  datapipeline/cli/visual_source.py,sha256=8Nl8KKwQh1apNkj-OzsteaA54K6AvX5daItHBAvqBsU,1174
7
7
  datapipeline/cli/visuals.py,sha256=9OXMJh8B1a5_6_9sS7mgY4UeSu6fUhSuxsauVm8HTkU,2462
8
8
  datapipeline/cli/commands/domain.py,sha256=w1xd19wtVWslqg_AFTh0m9uIR3Zr341Rt_8YZpRosf8,304
9
9
  datapipeline/cli/commands/filter.py,sha256=IeAsp9KHm98y65oGGcQuoZxzVDz243If6l0dkN1F39s,304
10
10
  datapipeline/cli/commands/inspect.py,sha256=kmXTqPOMg2mYic6lmZuoc9lxhs0-XCVExco7aVU0wnQ,5885
11
- datapipeline/cli/commands/link.py,sha256=_0g-ifrzwICZTyECEkWHnoR5QxiryMJtZmzZh1rNL7U,5057
11
+ datapipeline/cli/commands/link.py,sha256=KsL1-V0o15DrFSYLNttAqQPJqKkhtrzsif9EWZdva_0,5031
12
12
  datapipeline/cli/commands/list_.py,sha256=cCrx35CPNMyAaOVvVxkZje4DAx7K7HdGpngzZwhNn40,943
13
13
  datapipeline/cli/commands/plugin.py,sha256=Ab24t0DwTIqGGjPcVfI0a0yue37cLb4ff-ZcI0ZLj9g,327
14
14
  datapipeline/cli/commands/run.py,sha256=8CQR-DsNqzEm0oWr8efKh7_i8Bj2Rh0BVwGFW_lfd3Y,5211
@@ -41,18 +41,18 @@ datapipeline/pipeline/utils/ordering.py,sha256=ZX18I7GFtvyMFJB96vWQpTOGwljjeJ6pp
41
41
  datapipeline/pipeline/utils/transform_utils.py,sha256=05Udkl8K4Mot_nZ_Ih3q0oNmpnTthjgXyXE3QC0Xi4s,1826
42
42
  datapipeline/registries/registries.py,sha256=2d6sut7AgmmxZIWr_3FbzDs5UxPdrOQHKuZNNwJVpak,774
43
43
  datapipeline/registries/registry.py,sha256=MWWOHz2wT1oHQmovodtEreEuQhvH-i11Y2yXUUgZJhQ,641
44
- datapipeline/services/bootstrap.py,sha256=iQR8_AsTXsZYikkKl2DY__6tjfUlgZ8sYQmjAOF8Ibs,6425
44
+ datapipeline/services/bootstrap.py,sha256=UNYoMJOJ2wCMlo0ZWVeIdpqdY6Uz7T8TUzpIIoIyHI8,6426
45
45
  datapipeline/services/constants.py,sha256=ZeTjk1mmxKVsKmRm4BJvnCnQ3Rwqh8ICUP_-VHFzNWE,336
46
46
  datapipeline/services/entrypoints.py,sha256=ZmIh2Oq0M2Jy32Iqyfif69MjcYm8SatGts-zh4n33YE,2505
47
47
  datapipeline/services/factories.py,sha256=Nmy5gXJOVquhkdXgJlQauUc4bvqCsFWh4T-Tj0qQznU,854
48
48
  datapipeline/services/paths.py,sha256=6rjGaqHa37H8ylN9lD4nvPYKk8lxkWak1JcQ1qwhFxk,962
49
- datapipeline/services/project_paths.py,sha256=eSQtFWZO2pw7wzxJ7a1aBFbmhu3HeTOh-gqcHopyqk0,2511
49
+ datapipeline/services/project_paths.py,sha256=IHcGr8RqRAEWmQnR6IHuMCRqokHu6XLL69lwYafFLEE,2507
50
50
  datapipeline/services/scaffold/__init__.py,sha256=PaQNtYki9Kc7mQPnUtKDPU-rKohLHoXLvFVwdHdbXNM,68
51
51
  datapipeline/services/scaffold/domain.py,sha256=2xmBv1dpEB-ZnOguQB0EptIN4gNDFs-3QttKn5wtLX4,959
52
52
  datapipeline/services/scaffold/filter.py,sha256=FmlnmZKLu_BbjBxqSekI5OWD2iTkLhGx0XWPpjj2F1o,1059
53
53
  datapipeline/services/scaffold/mappers.py,sha256=559IBU_-pIoqwzwVy8dFpsTVd3uBXPEJtrvC6ETYfqk,1991
54
54
  datapipeline/services/scaffold/plugin.py,sha256=1hTM8hBHm05_7uYABeAvyVAD_wlf8DpgK7QqUKfm7MI,874
55
- datapipeline/services/scaffold/source.py,sha256=8mP1N3LXNhxU6gPEWVbaT3CdjHZkUPcWhhf3vxe6Zss,5608
55
+ datapipeline/services/scaffold/source.py,sha256=HWYBcIpKeau6Slhu1cJWfcg7DPWEEABtVXwvKG7vv00,5610
56
56
  datapipeline/services/scaffold/templates.py,sha256=B3YnZpFUZLynijJosTNxZQLXnPP_Y_t1RHqfI1lGOxU,634
57
57
  datapipeline/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  datapipeline/sources/composed_loader.py,sha256=dUmdAYncL6IJqwLhKpQ3AVyFNyut-_K55isSTr-iDXo,1350
@@ -70,13 +70,13 @@ datapipeline/sources/synthetic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
70
70
  datapipeline/sources/synthetic/time/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  datapipeline/sources/synthetic/time/loader.py,sha256=3bIlRSCmEJlES-MUX3ICyU1kLJoY6BCcyDEyVH0xSWw,1229
72
72
  datapipeline/sources/synthetic/time/parser.py,sha256=d3GZMQ7L1Qi4LeEm7U3y0_pk0RdhskioQukYyqyoqic,343
73
- datapipeline/templates/plugin_skeleton/README.md,sha256=xEUhCYS_-tw11TOfK6p7n4I4cu5tNzuZ9FTEYR7HAxE,2968
74
- datapipeline/templates/plugin_skeleton/pyproject.toml,sha256=dLStUgbsMvJ9uvrBc6tJeSVR8V453opfCsHZNUEDiBQ,265
73
+ datapipeline/templates/plugin_skeleton/README.md,sha256=5OtDUSM2pexqrwVAlvl54kE8ARv-V-9UJy97UPdnpVI,2805
74
+ datapipeline/templates/plugin_skeleton/pyproject.toml,sha256=knrTg5zYPiTzj7jpCaO4LMWzdHLgxtZaDHF3czckwOc,265
75
75
  datapipeline/templates/plugin_skeleton/config/contracts/time_hour_sin.yaml,sha256=PLbmLw2fKbpMsSRgiM2BKEzD5WYcD-60BpCVnLU_j70,581
76
- datapipeline/templates/plugin_skeleton/config/contracts/time_linear.yaml,sha256=r1W87VWrTRXNsNC3VyjKJtBjMu0tq449cmhG9QdSc60,1309
77
- datapipeline/templates/plugin_skeleton/config/distilleries/time_ticks.yaml,sha256=7tie6CqEmOOK8M629f2WZDWKaUPr9bePMC6Oj8RsqB8,190
78
- datapipeline/templates/plugin_skeleton/config/recipes/default/project.yaml,sha256=KOzsPNHz1Gdk5fCWKpP_lL_eLybGMvA_3Tdb_0v6YuY,175
79
- datapipeline/templates/plugin_skeleton/config/recipes/default/recipe.yaml,sha256=3uuRS72Wy9iRUEtNkm6frq-AS-YA6oB6BprJc6CNzvs,764
76
+ datapipeline/templates/plugin_skeleton/config/contracts/time_linear.yaml,sha256=OgYm92pe3DY_QrcoM2XTqbiu8jvBJI1BbmHu1brVHYk,1304
77
+ datapipeline/templates/plugin_skeleton/config/datasets/default/dataset.yaml,sha256=3uuRS72Wy9iRUEtNkm6frq-AS-YA6oB6BprJc6CNzvs,764
78
+ datapipeline/templates/plugin_skeleton/config/datasets/default/project.yaml,sha256=03XiBqNqVHg2aysjYt-C1adeI_aWz1C4xeU--HkE4Ic,171
79
+ datapipeline/templates/plugin_skeleton/config/sources/time_ticks.yaml,sha256=7tie6CqEmOOK8M629f2WZDWKaUPr9bePMC6Oj8RsqB8,190
80
80
  datapipeline/templates/plugin_skeleton/src/{{PACKAGE_NAME}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  datapipeline/templates/stubs/dto.py.j2,sha256=nenydq0t1PmXi4ChD7o8yVp6fRbpKu-NNUgddM6WiLQ,734
82
82
  datapipeline/templates/stubs/filter.py.j2,sha256=3LgRgAL_HRaENOOqQx8NdeM1AUy-T0rtHVTA7N2oWOs,466
@@ -104,9 +104,9 @@ datapipeline/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
104
104
  datapipeline/utils/load.py,sha256=uQUqwyyAXXVVcBKjzX0RjoP_Nuc3zgBN1BplLZpJIYw,1282
105
105
  datapipeline/utils/paths.py,sha256=5Y5rhNbjTiybUHfq9VfRMJ4gUfN9UltonM-4MABEG8w,798
106
106
  datapipeline/utils/time.py,sha256=vOqa2arqwEqbDo-JWEhOFPMnI1E4Ib3i1L-Rt-cGH8c,1072
107
- jerry_thomas-0.1.0.dist-info/licenses/LICENSE,sha256=pkBMylAJF5yChHAkdxwFhEptLGx13i-XFEKh-Sh6DkM,1073
108
- jerry_thomas-0.1.0.dist-info/METADATA,sha256=sL-bmhqgl6sJn9ppDuNXrCOWSDMrw2ZxWVar9_7KtHg,19223
109
- jerry_thomas-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
110
- jerry_thomas-0.1.0.dist-info/entry_points.txt,sha256=7GKSNCgwbzIqI3_LdbOro2eiAbBvbpoOxAuh2XcqBN0,1669
111
- jerry_thomas-0.1.0.dist-info/top_level.txt,sha256=N8aoNPdPyHefODO4YAm7tqTaUcw0e8LDcqycFTf8TbM,13
112
- jerry_thomas-0.1.0.dist-info/RECORD,,
107
+ jerry_thomas-0.2.0.dist-info/licenses/LICENSE,sha256=pkBMylAJF5yChHAkdxwFhEptLGx13i-XFEKh-Sh6DkM,1073
108
+ jerry_thomas-0.2.0.dist-info/METADATA,sha256=LUh6IrWqfk1fjG-MMSO4d-GViqZ8qzc4sPhKkjZo3zw,19202
109
+ jerry_thomas-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
110
+ jerry_thomas-0.2.0.dist-info/entry_points.txt,sha256=7GKSNCgwbzIqI3_LdbOro2eiAbBvbpoOxAuh2XcqBN0,1669
111
+ jerry_thomas-0.2.0.dist-info/top_level.txt,sha256=N8aoNPdPyHefODO4YAm7tqTaUcw0e8LDcqycFTf8TbM,13
112
+ jerry_thomas-0.2.0.dist-info/RECORD,,