python-jack-knife 0.6.7__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.7 → python_jack_knife-0.6.9}/PKG-INFO +1 -1
  2. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/stdout.py +17 -7
  3. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/version.py +1 -1
  4. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/PKG-INFO +1 -1
  5. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/LICENSE +0 -0
  6. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/README.md +0 -0
  7. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/pyproject.toml +0 -0
  8. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/setup.cfg +0 -0
  9. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/__init__.py +0 -0
  10. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/common.py +0 -0
  11. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/components.py +0 -0
  12. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_client.py +0 -0
  13. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_index_sink.py +0 -0
  14. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/integrations/opensearch_query_pipe.py +0 -0
  15. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/integrations/postgres_pipe.py +0 -0
  16. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/integrations/snowflake_pipe.py +0 -0
  17. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/log.py +0 -0
  18. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/main.py +0 -0
  19. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/man_page.py +0 -0
  20. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/parser.py +0 -0
  21. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/__init__.py +0 -0
  22. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/denorm.py +0 -0
  23. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/factory.py +0 -0
  24. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/filter.py +0 -0
  25. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/head.py +0 -0
  26. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/join.py +0 -0
  27. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/let_reduce.py +0 -0
  28. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/map.py +0 -0
  29. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/move_field.py +0 -0
  30. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/progress_pipe.py +0 -0
  31. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/query_pipe.py +0 -0
  32. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/remove_field.py +0 -0
  33. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/sample.py +0 -0
  34. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/select.py +0 -0
  35. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/sort.py +0 -0
  36. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/tail.py +0 -0
  37. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/user_pipe_factory.py +0 -0
  38. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/pipes/where.py +0 -0
  39. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/progress.py +0 -0
  40. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/registry.py +0 -0
  41. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/__init__.py +0 -0
  42. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/create_sink.py +0 -0
  43. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/csv_sink.py +0 -0
  44. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/devnull.py +0 -0
  45. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/dir_sink.py +0 -0
  46. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/expect.py +0 -0
  47. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/factory.py +0 -0
  48. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/format_sink.py +0 -0
  49. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/graph.py +0 -0
  50. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_bar_line.py +0 -0
  51. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_cumulative.py +0 -0
  52. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_hist.py +0 -0
  53. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/graph_scatter.py +0 -0
  54. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/json_sink.py +0 -0
  55. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/s3_sink.py +0 -0
  56. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/s3_stream.py +0 -0
  57. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/sinks.py +0 -0
  58. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/tsv_sink.py +0 -0
  59. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sinks/user_sink_factory.py +0 -0
  60. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/__init__.py +0 -0
  61. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/configs_source.py +0 -0
  62. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/csv_source.py +0 -0
  63. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/dir_source.py +0 -0
  64. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/factory.py +0 -0
  65. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/favorite_source.py +0 -0
  66. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/format_source.py +0 -0
  67. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/inline_source.py +0 -0
  68. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/json_source.py +0 -0
  69. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file.py +0 -0
  70. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file_local.py +0 -0
  71. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/lazy_file_s3.py +0 -0
  72. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/macro_source.py +0 -0
  73. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/npy_source.py +0 -0
  74. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/parquet_source.py +0 -0
  75. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/s3_source.py +0 -0
  76. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/source_list.py +0 -0
  77. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/sql_source.py +0 -0
  78. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/tsv_source.py +0 -0
  79. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/sources/user_source_factory.py +0 -0
  80. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/pjk/usage.py +0 -0
  81. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/SOURCES.txt +0 -0
  82. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/dependency_links.txt +0 -0
  83. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/entry_points.txt +0 -0
  84. {python_jack_knife-0.6.7 → python_jack_knife-0.6.9}/src/python_jack_knife.egg-info/requires.txt +0 -0
  85. {python_jack_knife-0.6.7 → 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.7
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:
@@ -3,6 +3,7 @@
3
3
 
4
4
  import sys
5
5
  import yaml
6
+ from yaml.representer import SafeRepresenter
6
7
  from pjk.components import Sink, Source
7
8
  from pjk.usage import ParsedToken, Usage
8
9
  from pjk.common import pager_stdout
@@ -21,25 +22,34 @@ class StdoutSink(Sink):
21
22
 
22
23
  def __init__(self, ptok: ParsedToken, usage: Usage):
23
24
  super().__init__(ptok, usage)
24
-
25
- # NOTE: self.use_pager is hardcoded for now; override via constructor if needed
26
25
  self.use_pager = True if usage.get_param('less') == None else usage.get_param('less') == 'true'
27
26
 
28
27
  def process(self) -> None:
29
- # Route all stdout into `less` while dumping
30
28
  try:
31
29
  with pager_stdout(self.use_pager):
32
30
  for record in self.input:
33
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')
34
42
  yaml.dump(
35
43
  record,
36
- sys.stdout, # now points to less (if enabled)
44
+ sys.stdout,
37
45
  sort_keys=False,
38
46
  explicit_start=True,
39
- width=10**9 # effectively no wrap without using a float
47
+ allow_unicode=True,
48
+ width=10**9,
40
49
  )
41
50
  except BrokenPipeError:
42
- break # user quit pager
51
+ break
43
52
  except BrokenPipeError:
44
- # Swallow if pager closed early
45
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.7"
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.7
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: