zora-cli 0.1.2__tar.gz → 0.1.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zora-cli
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Cryptographically secure generator of random keys with tons of options and customizations.
5
5
  Author: zscopuv
6
6
  License: ZORA SOURCE-AVAILABLE LICENSE
@@ -224,10 +224,11 @@ Requires-Python: >=3.9
224
224
  Description-Content-Type: text/markdown
225
225
  License-File: LICENSE
226
226
  Requires-Dist: colorama==0.4.6
227
+ Requires-Dist: packaging>=24.0
227
228
  Dynamic: license-file
228
229
 
229
- # ![Logo](zora.jpg)
230
- > **Early release (`v0.1.2`)**
230
+ # ![Logo](https://i.ibb.co/21JfnbBZ/zora.jpg)
231
+ > **Early release (`v0.1.4`)**
231
232
 
232
233
  Zora generates random keys using Python's cryptographically secure
233
234
  `secrets` module by default. It supports customizable character sets,
@@ -257,19 +258,32 @@ output, entropy estimation, and an optional deterministic PRNG mode.
257
258
  - 🤫 **Quiet mode** for scripting
258
259
  - 📋 **Charset preset listing**
259
260
 
261
+ ## Installation
262
+
263
+ ### Requirements
264
+
265
+ ```bash
266
+ pip install zora-cli
267
+ ````
268
+
269
+ Run Zora:
270
+
271
+ ```bash
272
+ zora 32
273
+ ```
260
274
 
261
275
  # Usage
262
276
 
263
277
  Basic usage:
264
278
 
265
279
  ```bash
266
- python zora.py LENGTH [OPTIONS]
280
+ zora LENGTH [OPTIONS]
267
281
  ```
268
282
 
269
283
  For example:
270
284
 
271
285
  ```bash
272
- python zora.py 32
286
+ zora 32
273
287
  ```
274
288
 
275
289
  Example output:
@@ -293,7 +307,7 @@ Generator: CSPRNG
293
307
  The length of the random portion of the generated key.
294
308
 
295
309
  ```bash
296
- python zora.py 32
310
+ zora 32
297
311
  ```
298
312
 
299
313
  The value must be greater than `0`.
@@ -305,7 +319,7 @@ The value must be greater than `0`.
305
319
  Select the character set used to generate keys.
306
320
 
307
321
  ```bash
308
- python zora.py 32 --charset @digits
322
+ zora 32 --charset @digits
309
323
  ```
310
324
 
311
325
  By default:
@@ -323,7 +337,7 @@ Zora supports both predefined charset presets and literal characters.
323
337
  Use `--charset-list` to display all available presets:
324
338
 
325
339
  ```bash
326
- python zora.py --charset-list
340
+ zora --charset-list
327
341
  ```
328
342
 
329
343
  Currently available presets:
@@ -346,7 +360,7 @@ Currently available presets:
346
360
  Presets can be combined:
347
361
 
348
362
  ```bash
349
- python zora.py 32 --charset @letters@digits
363
+ zora 32 --charset @letters@digits
350
364
  ```
351
365
 
352
366
  This creates an alphanumeric character set.
@@ -354,7 +368,7 @@ This creates an alphanumeric character set.
354
368
  Multiple presets can be combined:
355
369
 
356
370
  ```bash
357
- python zora.py 32 --charset @upper@lower@digits
371
+ zora 32 --charset @upper@lower@digits
358
372
  ```
359
373
 
360
374
  Duplicate characters are automatically removed.
@@ -376,7 +390,7 @@ Literal characters can be included alongside presets.
376
390
  For example:
377
391
 
378
392
  ```bash
379
- python zora.py 32 --charset @hexXYZ
393
+ zora 32 --charset @hexXYZ
380
394
  ```
381
395
 
382
396
  This means:
@@ -388,7 +402,7 @@ This means:
388
402
  Another example:
389
403
 
390
404
  ```bash
391
- python zora.py 32 --charset XYZ@hex
405
+ zora 32 --charset XYZ@hex
392
406
  ```
393
407
 
394
408
  means:
@@ -406,7 +420,7 @@ This allows arbitrary character sets without needing to add a new preset.
406
420
  Display the available charset presets:
407
421
 
408
422
  ```bash
409
- python zora.py --charset-list
423
+ zora --charset-list
410
424
  ```
411
425
 
412
426
  Example:
@@ -437,13 +451,13 @@ Use as:
437
451
  Use `-n` or `--count`:
438
452
 
439
453
  ```bash
440
- python zora.py 32 --count 10
454
+ zora 32 --count 10
441
455
  ```
442
456
 
443
457
  or:
444
458
 
445
459
  ```bash
446
- python zora.py 32 -n 10
460
+ zora 32 -n 10
447
461
  ```
448
462
 
449
463
  Zora generates each key independently.
@@ -458,7 +472,7 @@ cryptographically secure random generator.
458
472
  Add a prefix:
459
473
 
460
474
  ```bash
461
- python zora.py 32 --prefix "AUTH_"
475
+ zora 32 --prefix "AUTH_"
462
476
  ```
463
477
 
464
478
  Example:
@@ -470,13 +484,13 @@ AUTH_GxKqTnJpYwRzLhBcVfQmNsXeUaPkTdWr
470
484
  Add a suffix:
471
485
 
472
486
  ```bash
473
- python zora.py 32 --suffix "_KEY"
487
+ zora 32 --suffix "_KEY"
474
488
  ```
475
489
 
476
490
  Both can be used together:
477
491
 
478
492
  ```bash
479
- python zora.py 32 --prefix "AUTH_" --suffix "_KEY"
493
+ zora 32 --prefix "AUTH_" --suffix "_KEY"
480
494
  ```
481
495
 
482
496
  > Prefixes and suffixes are not random and therefore do not contribute to
@@ -491,7 +505,7 @@ Use `--group` to insert a separator every N characters.
491
505
  For example:
492
506
 
493
507
  ```bash
494
- python zora.py 32 --group 4
508
+ zora 32 --group 4
495
509
  ```
496
510
 
497
511
  Output:
@@ -509,7 +523,7 @@ The default separator is:
509
523
  Use `--sep` to change it:
510
524
 
511
525
  ```bash
512
- python zora.py 32 --group 4 --sep ":"
526
+ zora 32 --group 4 --sep ":"
513
527
  ```
514
528
 
515
529
  Output:
@@ -528,7 +542,7 @@ entropy.
528
542
  Use `-o` or `--output` to write generated keys to a file:
529
543
 
530
544
  ```bash
531
- python zora.py 32 -n 10 --output keys.txt
545
+ zora 32 -n 10 --output keys.txt
532
546
  ```
533
547
 
534
548
  The generated keys are written one per line.
@@ -551,7 +565,7 @@ This is the recommended mode when generating authentication tokens,
551
565
  API keys, secrets, or other security-sensitive random values.
552
566
 
553
567
  ```bash
554
- python zora.py 32
568
+ zora 32
555
569
  ```
556
570
 
557
571
  The output will report:
@@ -567,7 +581,7 @@ Generator: CSPRNG
567
581
  Use:
568
582
 
569
583
  ```bash
570
- python zora.py 32 --unsafe
584
+ zora 32 --unsafe
571
585
  ```
572
586
 
573
587
  to use Python's normal pseudo-random number generator instead of the
@@ -602,7 +616,7 @@ This is intentional.
602
616
  The following will fail:
603
617
 
604
618
  ```bash
605
- python zora.py 32 --seed example
619
+ zora 32 --seed example
606
620
  ```
607
621
 
608
622
  because Zora's secure generator should not be made deterministic through
@@ -611,7 +625,7 @@ the normal CLI.
611
625
  Instead:
612
626
 
613
627
  ```bash
614
- python zora.py 32 --unsafe --seed example
628
+ zora 32 --unsafe --seed example
615
629
  ```
616
630
 
617
631
  A seed can be useful for testing reproducibility.
@@ -619,7 +633,7 @@ A seed can be useful for testing reproducibility.
619
633
  For example:
620
634
 
621
635
  ```bash
622
- python zora.py 32 --unsafe --seed test
636
+ zora 32 --unsafe --seed test
623
637
  ```
624
638
 
625
639
  will produce the same deterministic sequence when run with the same
@@ -635,7 +649,7 @@ rather than being reseeded for every key.
635
649
  Use `-q` or `--quiet` to suppress non-essential output:
636
650
 
637
651
  ```bash
638
- python zora.py 32 --quiet
652
+ zora 32 --quiet
639
653
  ```
640
654
 
641
655
  This is useful when using Zora inside scripts or shell pipelines.
@@ -643,7 +657,7 @@ This is useful when using Zora inside scripts or shell pipelines.
643
657
  For example:
644
658
 
645
659
  ```bash
646
- python zora.py 32 --quiet > key.txt
660
+ zora 32 --quiet > key.txt
647
661
  ```
648
662
 
649
663
  ---
@@ -675,13 +689,13 @@ entropy.
675
689
  For example:
676
690
 
677
691
  ```bash
678
- python zora.py 32 --prefix "AUTH_"
692
+ zora 32 --prefix "AUTH_"
679
693
  ```
680
694
 
681
695
  has the same theoretical entropy as:
682
696
 
683
697
  ```bash
684
- python zora.py 32
698
+ zora 32
685
699
  ```
686
700
 
687
701
  assuming the same charset and length.
@@ -724,103 +738,103 @@ PRNG
724
738
  ### Basic key
725
739
 
726
740
  ```bash
727
- python zora.py 32
741
+ zora 32
728
742
  ```
729
743
 
730
744
  ### Digits only
731
745
 
732
746
  ```bash
733
- python zora.py 32 --charset @digits
747
+ zora 32 --charset @digits
734
748
  ```
735
749
 
736
750
  ### Lowercase only
737
751
 
738
752
  ```bash
739
- python zora.py 32 --charset @lower
753
+ zora 32 --charset @lower
740
754
  ```
741
755
 
742
756
  ### Uppercase only
743
757
 
744
758
  ```bash
745
- python zora.py 32 --charset @upper
759
+ zora 32 --charset @upper
746
760
  ```
747
761
 
748
762
  ### Alphanumeric
749
763
 
750
764
  ```bash
751
- python zora.py 32 --charset @letters@digits
765
+ zora 32 --charset @letters@digits
752
766
  ```
753
767
 
754
768
  ### Hexadecimal
755
769
 
756
770
  ```bash
757
- python zora.py 32 --charset @hex
771
+ zora 32 --charset @hex
758
772
  ```
759
773
 
760
774
  ### Hexadecimal plus custom characters
761
775
 
762
776
  ```bash
763
- python zora.py 32 --charset @hexXYZ
777
+ zora 32 --charset @hexXYZ
764
778
  ```
765
779
 
766
780
  ### Uppercase, lowercase and digits
767
781
 
768
782
  ```bash
769
- python zora.py 32 --charset @upper@lower@digits
783
+ zora 32 --charset @upper@lower@digits
770
784
  ```
771
785
 
772
786
  ### Symbols
773
787
 
774
788
  ```bash
775
- python zora.py 32 --charset @special
789
+ zora 32 --charset @special
776
790
  ```
777
791
 
778
792
  ### Group the output
779
793
 
780
794
  ```bash
781
- python zora.py 32 --group 4
795
+ zora 32 --group 4
782
796
  ```
783
797
 
784
798
  ### Custom separator
785
799
 
786
800
  ```bash
787
- python zora.py 32 --group 4 --sep ":"
801
+ zora 32 --group 4 --sep ":"
788
802
  ```
789
803
 
790
804
  ### Generate multiple keys
791
805
 
792
806
  ```bash
793
- python zora.py 32 -n 10
807
+ zora 32 -n 10
794
808
  ```
795
809
 
796
810
  ### Save to a file
797
811
 
798
812
  ```bash
799
- python zora.py 32 -n 100 -o keys.txt
813
+ zora 32 -n 100 -o keys.txt
800
814
  ```
801
815
 
802
816
  ### Prefix
803
817
 
804
818
  ```bash
805
- python zora.py 32 --prefix "AUTH_"
819
+ zora 32 --prefix "AUTH_"
806
820
  ```
807
821
 
808
822
  ### Secure generation
809
823
 
810
824
  ```bash
811
- python zora.py 32
825
+ zora 32
812
826
  ```
813
827
 
814
828
  ### Reproducible testing
815
829
 
816
830
  ```bash
817
- python zora.py 32 --unsafe --seed test
831
+ zora 32 --unsafe --seed test
818
832
  ```
819
833
 
820
834
  ### Quiet output
821
835
 
822
836
  ```bash
823
- python zora.py 32 --quiet
837
+ zora 32 --quiet
824
838
  ```
825
839
 
826
840
  ---
@@ -889,7 +903,7 @@ However, entropy alone does not prove that a generator is secure.
889
903
  For example:
890
904
 
891
905
  ```bash
892
- python zora.py 32 --unsafe
906
+ zora 32 --unsafe
893
907
  ```
894
908
 
895
909
  can still report a high entropy value because the theoretical output
@@ -924,42 +938,25 @@ pip install -r requirements.txt
924
938
  Run:
925
939
 
926
940
  ```bash
927
- python zora.py 32
941
+ zora 32
928
942
  ```
929
943
 
930
944
  ---
931
945
 
932
- # Project structure
933
-
934
- A minimal installation currently looks like:
935
-
936
- ```text
937
- Zora/
938
- ├── zora.py
939
- ├── zora.jpg
940
- ├── LICENSE
941
- ├── README.md
942
- └── requirements.txt
943
- ```
944
-
945
- Future versions may introduce a package structure and automated tests.
946
-
947
- ---
948
-
949
946
  # Roadmap
950
947
 
951
948
  Possible future improvements include:
952
949
 
950
+ * [x] More charset presets
951
+ * [x] Improved documentation
952
+ * [x] Installation through `pip`
953
+ * [x] Packaging with `pyproject.toml`
953
954
  * [ ] Automated test suite
954
- * [ ] More charset presets
955
955
  * [ ] Better charset parsing errors
956
956
  * [ ] Configuration files
957
- * [ ] Packaging with `pyproject.toml`
958
- * [ ] Installation through `pip`
959
957
  * [ ] Shell completion
960
958
  * [ ] More output formats
961
959
  * [ ] Benchmarking mode
962
- * [ ] Improved documentation
963
960
  * [ ] Cross-platform terminal improvements
964
961
  * [ ] API/library usage
965
962
  * [ ] More extensive security testing