python-jack-knife 0.6.8__tar.gz → 0.6.9__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 (85) hide show
  1. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/PKG-INFO +1 -1
  2. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/stdout.py +13 -27
  3. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/version.py +1 -1
  4. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/PKG-INFO +1 -1
  5. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/LICENSE +0 -0
  6. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/README.md +0 -0
  7. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/pyproject.toml +0 -0
  8. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/setup.cfg +0 -0
  9. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/__init__.py +0 -0
  10. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/common.py +0 -0
  11. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/components.py +0 -0
  12. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_client.py +0 -0
  13. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_index_sink.py +0 -0
  14. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_query_pipe.py +0 -0
  15. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/integrations/postgres_pipe.py +0 -0
  16. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/integrations/snowflake_pipe.py +0 -0
  17. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/log.py +0 -0
  18. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/main.py +0 -0
  19. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/man_page.py +0 -0
  20. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/parser.py +0 -0
  21. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/__init__.py +0 -0
  22. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/denorm.py +0 -0
  23. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/factory.py +0 -0
  24. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/filter.py +0 -0
  25. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/head.py +0 -0
  26. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/join.py +0 -0
  27. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/let_reduce.py +0 -0
  28. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/map.py +0 -0
  29. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/move_field.py +0 -0
  30. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/progress_pipe.py +0 -0
  31. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/query_pipe.py +0 -0
  32. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/remove_field.py +0 -0
  33. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/sample.py +0 -0
  34. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/select.py +0 -0
  35. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/sort.py +0 -0
  36. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/tail.py +0 -0
  37. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/user_pipe_factory.py +0 -0
  38. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/pipes/where.py +0 -0
  39. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/progress.py +0 -0
  40. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/registry.py +0 -0
  41. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/__init__.py +0 -0
  42. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/create_sink.py +0 -0
  43. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/csv_sink.py +0 -0
  44. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/devnull.py +0 -0
  45. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/dir_sink.py +0 -0
  46. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/expect.py +0 -0
  47. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/factory.py +0 -0
  48. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/format_sink.py +0 -0
  49. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/graph.py +0 -0
  50. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_bar_line.py +0 -0
  51. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_cumulative.py +0 -0
  52. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_hist.py +0 -0
  53. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_scatter.py +0 -0
  54. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/json_sink.py +0 -0
  55. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/s3_sink.py +0 -0
  56. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/s3_stream.py +0 -0
  57. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/sinks.py +0 -0
  58. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/tsv_sink.py +0 -0
  59. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sinks/user_sink_factory.py +0 -0
  60. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/__init__.py +0 -0
  61. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/configs_source.py +0 -0
  62. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/csv_source.py +0 -0
  63. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/dir_source.py +0 -0
  64. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/factory.py +0 -0
  65. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/favorite_source.py +0 -0
  66. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/format_source.py +0 -0
  67. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/inline_source.py +0 -0
  68. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/json_source.py +0 -0
  69. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file.py +0 -0
  70. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file_local.py +0 -0
  71. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file_s3.py +0 -0
  72. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/macro_source.py +0 -0
  73. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/npy_source.py +0 -0
  74. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/parquet_source.py +0 -0
  75. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/s3_source.py +0 -0
  76. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/source_list.py +0 -0
  77. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/sql_source.py +0 -0
  78. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/tsv_source.py +0 -0
  79. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/sources/user_source_factory.py +0 -0
  80. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/pjk/usage.py +0 -0
  81. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/SOURCES.txt +0 -0
  82. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/dependency_links.txt +0 -0
  83. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/entry_points.txt +0 -0
  84. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/requires.txt +0 -0
  85. {python_jack_knife-0.6.8 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-jack-knife
3
- Version: 0.6.8
3
+ Version: 0.6.9
4
4
  Summary: Python Jack Knife – a command line data processor
5
5
  Author-email: Mike Schultz <mike.schultz@gmail.com>
6
6
  License:
@@ -8,31 +8,6 @@ from pjk.components import Sink, Source
8
8
  from pjk.usage import ParsedToken, Usage
9
9
  from pjk.common import pager_stdout
10
10
 
11
- # --- NEW: minimal custom dumper that block-quotes only "tricky" strings ---
12
- class _PjkDumper(yaml.SafeDumper):
13
- pass
14
-
15
- def _needs_block(s: str) -> bool:
16
- # Strings that are annoying to copy if quoted/escaped:
17
- # - contain YAML structural chars or JSON-ish payloads
18
- # - contain colon-space (key-like), braces, brackets, quotes, or backslashes
19
- # - multi-line strings
20
- return (
21
- "\n" in s
22
- or ": " in s
23
- or any(c in s for c in "{}[]'\"\\")
24
- )
25
-
26
- def _represent_str(dumper, data: str):
27
- if _needs_block(data):
28
- # Literal block scalar preserves content exactly, no escaping
29
- return dumper.represent_scalar("tag:yaml.org,2002:str", data, style="|")
30
- # Default behavior for ordinary strings
31
- return SafeRepresenter.represent_str(dumper, data)
32
-
33
- _PjkDumper.add_representer(str, _represent_str)
34
- # --------------------------------------------------------------------------
35
-
36
11
  class StdoutSink(Sink):
37
12
  @classmethod
38
13
  def usage(cls):
@@ -54,16 +29,27 @@ class StdoutSink(Sink):
54
29
  with pager_stdout(self.use_pager):
55
30
  for record in self.input:
56
31
  try:
32
+ # if it's a simple single-key map whose value is a string, print raw
33
+ # kind of hack to make 'pjk macros -' cut-n-pastable
34
+ if isinstance(record, dict) and len(record) == 1:
35
+ (k, v), = record.items()
36
+ if isinstance(v, str):
37
+ sys.stdout.write(f"{k}: {v}\n---\n")
38
+ continue
39
+
40
+ # everything else -> normal YAML
41
+ print('foo')
57
42
  yaml.dump(
58
43
  record,
59
44
  sys.stdout,
60
- Dumper=_PjkDumper, # <-- use the custom dumper
61
45
  sort_keys=False,
62
46
  explicit_start=True,
63
47
  allow_unicode=True,
64
- width=10**9
48
+ width=10**9,
65
49
  )
66
50
  except BrokenPipeError:
67
51
  break
68
52
  except BrokenPipeError:
69
53
  pass
54
+
55
+
@@ -1,4 +1,4 @@
1
1
  # SPDX-License-Identifier: Apache-2.0
2
2
  # Copyright 2024 Mike Schultz
3
3
 
4
- __version__ = "0.6.8"
4
+ __version__ = "0.6.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-jack-knife
3
- Version: 0.6.8
3
+ Version: 0.6.9
4
4
  Summary: Python Jack Knife – a command line data processor
5
5
  Author-email: Mike Schultz <mike.schultz@gmail.com>
6
6
  License: