cloudcat 0.3.7__tar.gz → 0.4.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.
Files changed (57) hide show
  1. {cloudcat-0.3.7 → cloudcat-0.4.0}/PKG-INFO +24 -21
  2. {cloudcat-0.3.7 → cloudcat-0.4.0}/README.md +11 -3
  3. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/__init__.py +1 -1
  4. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/cli.py +268 -201
  5. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/compression.py +13 -5
  6. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/filtering.py +9 -0
  7. cloudcat-0.4.0/cloudcat/formatters.py +157 -0
  8. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/progress.py +21 -9
  9. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/avro.py +27 -30
  10. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/csv.py +21 -16
  11. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/json.py +74 -44
  12. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/orc.py +40 -26
  13. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/parquet.py +7 -9
  14. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/text.py +7 -6
  15. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/storage/azure.py +67 -21
  16. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/storage/base.py +9 -8
  17. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/storage/gcs.py +4 -2
  18. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/storage/s3.py +4 -2
  19. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/streaming/filesystems.py +18 -9
  20. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/PKG-INFO +24 -21
  21. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/SOURCES.txt +9 -4
  22. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/requires.txt +12 -0
  23. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/top_level.txt +0 -1
  24. cloudcat-0.4.0/pyproject.toml +99 -0
  25. cloudcat-0.4.0/tests/test_cli_features.py +107 -0
  26. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_integration.py +9 -5
  27. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_path_parsing.py +5 -5
  28. cloudcat-0.4.0/tests/test_read_data_streaming.py +59 -0
  29. cloudcat-0.4.0/tests/test_readers_roundtrip.py +122 -0
  30. cloudcat-0.4.0/tests/test_regressions.py +85 -0
  31. cloudcat-0.4.0/tests/test_storage_listing.py +75 -0
  32. cloudcat-0.4.0/tests/test_streaming_stats.py +60 -0
  33. cloudcat-0.4.0/tests/test_tracking.py +62 -0
  34. cloudcat-0.4.0/tests/test_visual_output.py +95 -0
  35. cloudcat-0.3.7/cloudcat/formatters.py +0 -93
  36. cloudcat-0.3.7/pyproject.toml +0 -3
  37. cloudcat-0.3.7/setup.py +0 -96
  38. cloudcat-0.3.7/tests/__init__.py +0 -0
  39. cloudcat-0.3.7/tests/conftest.py +0 -45
  40. {cloudcat-0.3.7 → cloudcat-0.4.0}/LICENSE +0 -0
  41. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/config.py +0 -0
  42. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/readers/__init__.py +0 -0
  43. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/storage/__init__.py +0 -0
  44. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/streaming/__init__.py +0 -0
  45. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/streaming/stats.py +0 -0
  46. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat/streaming/tracking.py +0 -0
  47. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/dependency_links.txt +0 -0
  48. {cloudcat-0.3.7 → cloudcat-0.4.0}/cloudcat.egg-info/entry_points.txt +0 -0
  49. {cloudcat-0.3.7 → cloudcat-0.4.0}/setup.cfg +0 -0
  50. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_cli.py +0 -0
  51. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_compression.py +0 -0
  52. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_config.py +0 -0
  53. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_data_reading.py +0 -0
  54. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_file_filtering.py +0 -0
  55. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_filtering.py +0 -0
  56. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_format_detection.py +0 -0
  57. {cloudcat-0.3.7 → cloudcat-0.4.0}/tests/test_output_formatting.py +0 -0
@@ -1,10 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudcat
3
- Version: 0.3.7
3
+ Version: 0.4.0
4
4
  Summary: Preview and analyze data files in Google Cloud Storage, AWS S3, and Azure Data Lake Storage Gen2 from your terminal
5
- Home-page: https://github.com/jonathansudhakar1/cloudcat
6
5
  Author: Jonathan Sudhakar
7
- Author-email: jonathan@example.com
6
+ License: MIT
8
7
  Project-URL: Homepage, https://github.com/jonathansudhakar1/cloudcat
9
8
  Project-URL: Documentation, https://cloudcatcli.com
10
9
  Project-URL: Bug Reports, https://github.com/jonathansudhakar1/cloudcat/issues
@@ -22,14 +21,12 @@ Classifier: Environment :: Console
22
21
  Classifier: License :: OSI Approved :: MIT License
23
22
  Classifier: Operating System :: OS Independent
24
23
  Classifier: Programming Language :: Python :: 3
25
- Classifier: Programming Language :: Python :: 3.7
26
- Classifier: Programming Language :: Python :: 3.8
27
24
  Classifier: Programming Language :: Python :: 3.9
28
25
  Classifier: Programming Language :: Python :: 3.10
29
26
  Classifier: Programming Language :: Python :: 3.11
30
27
  Classifier: Programming Language :: Python :: 3.12
31
28
  Classifier: Programming Language :: Python :: 3.13
32
- Requires-Python: >=3.7
29
+ Requires-Python: >=3.9
33
30
  Description-Content-Type: text/markdown
34
31
  License-File: LICENSE
35
32
  Requires-Dist: click>=8.0.0
@@ -39,6 +36,7 @@ Requires-Dist: colorama>=0.4.4
39
36
  Requires-Dist: google-cloud-storage>=2.0.0
40
37
  Requires-Dist: boto3>=1.18.0
41
38
  Requires-Dist: azure-storage-file-datalake>=12.0.0
39
+ Requires-Dist: azure-storage-blob>=12.0.0
42
40
  Requires-Dist: azure-identity>=1.0.0
43
41
  Provides-Extra: parquet
44
42
  Requires-Dist: pyarrow>=5.0.0; extra == "parquet"
@@ -62,19 +60,16 @@ Requires-Dist: fastavro>=1.4.0; extra == "all"
62
60
  Requires-Dist: zstandard>=0.15.0; extra == "all"
63
61
  Requires-Dist: lz4>=3.0.0; extra == "all"
64
62
  Requires-Dist: python-snappy>=0.6.0; extra == "all"
65
- Dynamic: author
66
- Dynamic: author-email
67
- Dynamic: classifier
68
- Dynamic: description
69
- Dynamic: description-content-type
70
- Dynamic: home-page
71
- Dynamic: keywords
63
+ Provides-Extra: test
64
+ Requires-Dist: pytest>=6.0.0; extra == "test"
65
+ Requires-Dist: pytest-mock>=3.6.0; extra == "test"
66
+ Provides-Extra: dev
67
+ Requires-Dist: pytest>=6.0.0; extra == "dev"
68
+ Requires-Dist: pytest-mock>=3.6.0; extra == "dev"
69
+ Requires-Dist: moto>=4.0.0; extra == "dev"
70
+ Requires-Dist: build; extra == "dev"
71
+ Requires-Dist: twine; extra == "dev"
72
72
  Dynamic: license-file
73
- Dynamic: project-url
74
- Dynamic: provides-extra
75
- Dynamic: requires-dist
76
- Dynamic: requires-python
77
- Dynamic: summary
78
73
 
79
74
  <p align="center">
80
75
  <img src="https://raw.githubusercontent.com/jonathansudhakar1/cloudcat/main/assets/logo.png" alt="CloudCat Logo" width="200">
@@ -486,6 +481,8 @@ Options:
486
481
  -o, --output-format TEXT Output format: table, json, jsonp, csv
487
482
  [default: table]
488
483
 
484
+ -O, --output-file PATH Write rendered data to a file instead of stdout
485
+
489
486
  -i, --input-format TEXT Input format: csv, json, parquet, avro, orc, text
490
487
  [default: auto-detect from extension]
491
488
 
@@ -498,7 +495,8 @@ Options:
498
495
  --offset INTEGER Skip first N rows
499
496
  [default: 0]
500
497
 
501
- -w, --where TEXT Filter rows with SQL-like conditions
498
+ -w, --where TEXT Filter rows with SQL-like conditions. Scans the
499
+ file and returns up to --num-rows matching rows.
502
500
  Examples: "status=active", "age>30",
503
501
  "name contains john", "email endswith @gmail.com"
504
502
 
@@ -516,13 +514,18 @@ Options:
516
514
  -d, --delimiter TEXT CSV delimiter (use \t for tab)
517
515
  [default: comma]
518
516
 
517
+ --no-color Disable colored output (also honors NO_COLOR).
518
+ Color is auto-disabled when output is piped.
519
+
519
520
  --profile TEXT AWS profile name (for S3 access)
520
521
 
521
522
  --project TEXT GCP project ID (for GCS access)
522
523
 
523
524
  --credentials TEXT Path to GCP service account JSON file
524
525
 
525
- --account TEXT Azure storage account name
526
+ --az-access-key TEXT Azure storage account access key
527
+
528
+ -y, --yes Skip confirmation prompts (for scripting)
526
529
 
527
530
  --help Show this message and exit
528
531
  ```
@@ -705,8 +708,8 @@ pytest
705
708
  - [x] SQL-like filtering (`--where` clause)
706
709
  - [x] Compression support (gzip, zstd, lz4, snappy, bz2)
707
710
  - [x] Row offset/pagination (`--offset`)
711
+ - [x] Output to file with `--output-file`
708
712
  - [ ] Interactive mode with pagination
709
- - [ ] Output to file with `--output-file`
710
713
  - [ ] Configuration file support
711
714
 
712
715
  ## Related Projects
@@ -408,6 +408,8 @@ Options:
408
408
  -o, --output-format TEXT Output format: table, json, jsonp, csv
409
409
  [default: table]
410
410
 
411
+ -O, --output-file PATH Write rendered data to a file instead of stdout
412
+
411
413
  -i, --input-format TEXT Input format: csv, json, parquet, avro, orc, text
412
414
  [default: auto-detect from extension]
413
415
 
@@ -420,7 +422,8 @@ Options:
420
422
  --offset INTEGER Skip first N rows
421
423
  [default: 0]
422
424
 
423
- -w, --where TEXT Filter rows with SQL-like conditions
425
+ -w, --where TEXT Filter rows with SQL-like conditions. Scans the
426
+ file and returns up to --num-rows matching rows.
424
427
  Examples: "status=active", "age>30",
425
428
  "name contains john", "email endswith @gmail.com"
426
429
 
@@ -438,13 +441,18 @@ Options:
438
441
  -d, --delimiter TEXT CSV delimiter (use \t for tab)
439
442
  [default: comma]
440
443
 
444
+ --no-color Disable colored output (also honors NO_COLOR).
445
+ Color is auto-disabled when output is piped.
446
+
441
447
  --profile TEXT AWS profile name (for S3 access)
442
448
 
443
449
  --project TEXT GCP project ID (for GCS access)
444
450
 
445
451
  --credentials TEXT Path to GCP service account JSON file
446
452
 
447
- --account TEXT Azure storage account name
453
+ --az-access-key TEXT Azure storage account access key
454
+
455
+ -y, --yes Skip confirmation prompts (for scripting)
448
456
 
449
457
  --help Show this message and exit
450
458
  ```
@@ -627,8 +635,8 @@ pytest
627
635
  - [x] SQL-like filtering (`--where` clause)
628
636
  - [x] Compression support (gzip, zstd, lz4, snappy, bz2)
629
637
  - [x] Row offset/pagination (`--offset`)
638
+ - [x] Output to file with `--output-file`
630
639
  - [ ] Interactive mode with pagination
631
- - [ ] Output to file with `--output-file`
632
640
  - [ ] Configuration file support
633
641
 
634
642
  ## Related Projects
@@ -2,4 +2,4 @@
2
2
  #!/usr/bin/env python
3
3
  """cloudcat - A CLI utility to read and display files from cloud storage."""
4
4
 
5
- __version__ = "0.3.7"
5
+ __version__ = "0.4.0"