pypipr 1.0.109__tar.gz → 1.0.110__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 (73) hide show
  1. {pypipr-1.0.109 → pypipr-1.0.110}/PKG-INFO +127 -121
  2. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/batchmaker.py +1 -1
  3. pypipr-1.0.110/pypipr/irange.py +120 -0
  4. {pypipr-1.0.109 → pypipr-1.0.110}/pyproject.toml +2 -2
  5. {pypipr-1.0.109 → pypipr-1.0.110}/readme.md +126 -120
  6. pypipr-1.0.109/pypipr/irange.py +0 -58
  7. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/APIMixinView.py +0 -0
  8. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/ComparePerformance.py +0 -0
  9. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/LINUX.py +0 -0
  10. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/PintUreg.py +0 -0
  11. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/PintUregQuantity.py +0 -0
  12. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/RunParallel.py +0 -0
  13. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/WINDOWS.py +0 -0
  14. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/__init__.py +0 -0
  15. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/__terminal__.py +0 -0
  16. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/auto_reload.py +0 -0
  17. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/avg.py +0 -0
  18. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/basename.py +0 -0
  19. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/batch_calculate.py +0 -0
  20. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/calculate.py +0 -0
  21. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/choices.py +0 -0
  22. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/chr_to_int.py +0 -0
  23. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/chunk_array.py +0 -0
  24. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/console_run.py +0 -0
  25. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/create_folder.py +0 -0
  26. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/datetime_from_string.py +0 -0
  27. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/datetime_now.py +0 -0
  28. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/dict_first.py +0 -0
  29. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/dirname.py +0 -0
  30. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/exit_if_empty.py +0 -0
  31. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/filter_empty.py +0 -0
  32. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/get_by_index.py +0 -0
  33. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/get_class_method.py +0 -0
  34. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/get_filemtime.py +0 -0
  35. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/get_filesize.py +0 -0
  36. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/github_pull.py +0 -0
  37. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/github_push.py +0 -0
  38. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/github_user.py +0 -0
  39. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iargv.py +0 -0
  40. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/idumps.py +0 -0
  41. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/idumps_html.py +0 -0
  42. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/ienv.py +0 -0
  43. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iexec.py +0 -0
  44. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/ijoin.py +0 -0
  45. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iloads.py +0 -0
  46. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iloads_html.py +0 -0
  47. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/input_char.py +0 -0
  48. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/int_to_chr.py +0 -0
  49. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iopen.py +0 -0
  50. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iprint.py +0 -0
  51. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/ireplace.py +0 -0
  52. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/is_empty.py +0 -0
  53. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/is_iterable.py +0 -0
  54. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/is_valid_url.py +0 -0
  55. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/iscandir.py +0 -0
  56. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/isplit.py +0 -0
  57. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/ivars.py +0 -0
  58. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/log.py +0 -0
  59. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/password_generator.py +0 -0
  60. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/pip_freeze_without_version.py +0 -0
  61. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/poetry_publish.py +0 -0
  62. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/poetry_update_version.py +0 -0
  63. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/print_colorize.py +0 -0
  64. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/print_dir.py +0 -0
  65. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/print_log.py +0 -0
  66. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/print_to_last_line.py +0 -0
  67. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/random_bool.py +0 -0
  68. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/restart.py +0 -0
  69. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/set_timeout.py +0 -0
  70. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/sets_ordered.py +0 -0
  71. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/str_cmp.py +0 -0
  72. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/text_colorize.py +0 -0
  73. {pypipr-1.0.109 → pypipr-1.0.110}/pypipr/to_str.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pypipr
3
- Version: 1.0.109
3
+ Version: 1.0.110
4
4
  Summary: The Python Package Index Project
5
5
  Author: ufiapjj
6
6
  Author-email: ufiapjj@gmail.com
@@ -231,7 +231,7 @@ kmc
231
231
 
232
232
  ## irange
233
233
 
234
- `irange(start, stop=None, step=None, index=0, numbers='abcdefghijklmnopqrstuvwxyz')`
234
+ `irange(start, stop=None, step=None, index=0, numbers=None)`
235
235
 
236
236
  Meningkatkan fungsi range() dari python untuk pengulangan menggunakan huruf
237
237
 
@@ -245,8 +245,8 @@ print(list(irange(10, 5)))
245
245
 
246
246
  Output:
247
247
  ```py
248
- <generator object str_range at 0x7253023cd0>
249
- <generator object str_range at 0x7253023cd0>
248
+ <generator object chr_range at 0x73aefcbde0>
249
+ <generator object chr_range at 0x73aefcbde0>
250
250
  ['a', 'k', 'u']
251
251
  [1, 2, 3, 4, 5, 6]
252
252
  [10, 9, 8, 7, 6]
@@ -271,6 +271,12 @@ print(batchmaker(s))
271
271
  print(list(batchmaker(s)))
272
272
  ```
273
273
 
274
+ Output:
275
+ ```py
276
+ <generator object batchmaker at 0x73aeef8280>
277
+ ['Urutan 1 dan 10 dan j dan Z saja.', 'Urutan 1 dan 10 dan j dan K saja.', 'Urutan 4 dan 10 dan j dan Z saja.', 'Urutan 4 dan 10 dan j dan K saja.']
278
+ ```
279
+
274
280
  ## calculate
275
281
 
276
282
  `calculate(teks)`
@@ -321,7 +327,7 @@ print(list(batch_calculate("{1 10} m ** {1 3}")))
321
327
 
322
328
  Output:
323
329
  ```py
324
- <generator object batch_calculate at 0x7252eeed40>
330
+ <generator object batch_calculate at 0x73aee7b010>
325
331
  [('1 m ** 1', <Quantity(1, 'meter')>), ('1 m ** 2', <Quantity(1, 'meter ** 2')>), ('2 m ** 1', <Quantity(2, 'meter')>), ('2 m ** 2', <Quantity(2, 'meter ** 2')>), ('3 m ** 1', <Quantity(3, 'meter')>), ('3 m ** 2', <Quantity(3, 'meter ** 2')>), ('4 m ** 1', <Quantity(4, 'meter')>), ('4 m ** 2', <Quantity(4, 'meter ** 2')>), ('5 m ** 1', <Quantity(5, 'meter')>), ('5 m ** 2', <Quantity(5, 'meter ** 2')>), ('6 m ** 1', <Quantity(6, 'meter')>), ('6 m ** 2', <Quantity(6, 'meter ** 2')>), ('7 m ** 1', <Quantity(7, 'meter')>), ('7 m ** 2', <Quantity(7, 'meter ** 2')>), ('8 m ** 1', <Quantity(8, 'meter')>), ('8 m ** 2', <Quantity(8, 'meter ** 2')>), ('9 m ** 1', <Quantity(9, 'meter')>), ('9 m ** 2', <Quantity(9, 'meter ** 2')>)]
326
332
  ```
327
333
 
@@ -414,7 +420,7 @@ print(list(chunk_array(arr, 5)))
414
420
 
415
421
  Output:
416
422
  ```py
417
- <generator object chunk_array at 0x7252f50440>
423
+ <generator object chunk_array at 0x73aef04440>
418
424
  [[2, 3, 12, 3, 3], [42, 42, 1, 43, 2], [42, 41, 4, 24, 32], [42, 3, 12, 32, 42], [42]]
419
425
  ```
420
426
 
@@ -465,9 +471,9 @@ print(datetime_now("Etc/GMT+7"))
465
471
 
466
472
  Output:
467
473
  ```py
468
- 2024-04-30 12:59:48.069039+07:00
469
- 2024-04-30 05:59:48.075135+00:00
470
- 2024-04-29 22:59:48.089036-07:00
474
+ 2024-04-30 17:29:10.591045+07:00
475
+ 2024-04-30 10:29:10.593588+00:00
476
+ 2024-04-30 03:29:10.598016-07:00
471
477
  ```
472
478
 
473
479
  ## dict_first
@@ -585,7 +591,7 @@ print(filter_empty(var))
585
591
 
586
592
  Output:
587
593
  ```py
588
- <generator object filter_empty at 0x7252eed300>
594
+ <generator object filter_empty at 0x73aee795d0>
589
595
  ```
590
596
 
591
597
  ## get_by_index
@@ -631,8 +637,8 @@ print(list(get_class_method(ExampleGetClassMethod)))
631
637
 
632
638
  Output:
633
639
  ```py
634
- <generator object get_class_method at 0x7252eef010>
635
- [<function ExampleGetClassMethod.a at 0x7252f605e0>, <function ExampleGetClassMethod.b at 0x7252f60860>, <function ExampleGetClassMethod.c at 0x7252f60900>, <function ExampleGetClassMethod.d at 0x7252f609a0>]
640
+ <generator object get_class_method at 0x73aee7b2e0>
641
+ [<function ExampleGetClassMethod.a at 0x73aef14b80>, <function ExampleGetClassMethod.b at 0x73aef14e00>, <function ExampleGetClassMethod.c at 0x73aef14ea0>, <function ExampleGetClassMethod.d at 0x73aef14f40>]
636
642
  ```
637
643
 
638
644
  ## get_filesize
@@ -930,7 +936,7 @@ print(ijoin(10, ' '))
930
936
 
931
937
  Output:
932
938
  ```py
933
- weq, asd, qweqw, dfs
939
+ dfs, qweqw, weq, asd
934
940
  ,ini,path,seperti,url,
935
941
  ini,path,seperti,url
936
942
  <li>satu</li>
@@ -974,9 +980,9 @@ Output:
974
980
  ```py
975
981
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
976
982
  [['Harga Emas Hari Ini - Selasa, 30 April 2024'],
977
- ['Spot Emas USD↓2.323,14 (-21,40) / oz',
983
+ ['Spot Emas USD↓2.316,80 (-27,74) / oz',
978
984
  'Kurs IDR↑16.249,00 (+27,00) / USD',
979
- 'Emas IDR↓1.213.649 (-9.145) / gr'],
985
+ 'Emas IDR↓1.210.337 (-12.457) / gr'],
980
986
  ['LM Antam (Jual)1.325.000 / gr', 'LM Antam (Beli)1.221.000 / gr']],
981
987
  [['Harga Emas Hari Ini'],
982
988
  ['Gram', 'Gedung Antam Jakarta', 'Pegadaian'],
@@ -1014,11 +1020,11 @@ Output:
1014
1020
  'Update harga LM Pegadaian :31 Agustus 2023']],
1015
1021
  [['Spot Harga Emas Hari Ini (Market Open)'],
1016
1022
  ['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
1017
- ['Ounce\xa0(oz)', '2.323,14 (-21,40)', '16.249,00 (+27,00)', '37.748.702'],
1018
- ['Gram\xa0(gr)', '74,69', '16.249,00', '1.213.649 (-9.145)'],
1019
- ['Kilogram\xa0(kg)', '74.690,69', '16.249,00', '1.213.648.948'],
1020
- ['Update harga emas :30 April 2024, pukul 12:59Update kurs :30 April 2024, '
1021
- 'pukul 09:10']],
1023
+ ['Ounce\xa0(oz)', '2.316,80 (-27,74)', '16.249,00 (+27,00)', '37.645.683'],
1024
+ ['Gram\xa0(gr)', '74,49', '16.249,00', '1.210.337 (-12.457)'],
1025
+ ['Kilogram\xa0(kg)', '74.486,85', '16.249,00', '1.210.336.821'],
1026
+ ['Update harga emas :30 April 2024, pukul 17:29Update kurs :30 April 2024, '
1027
+ 'pukul 13:10']],
1022
1028
  [['Gram', 'UBS Gold 99.99%'],
1023
1029
  ['Jual', 'Beli'],
1024
1030
  ['/ Batang', '/ Gram', '/ Batang', '/ Gram'],
@@ -1028,7 +1034,7 @@ Output:
1028
1034
  ['10', '12.720.000', '1.272.000', '12.620.000', '1.262.000'],
1029
1035
  ['5', '6.385.000', '1.277.000', '6.362.000', '1.272.400'],
1030
1036
  ['1', '1.325.000', '1.325.000', '1.305.000', '1.305.000'],
1031
- ['', 'Update :29 April 2024, pukul 16:06']],
1037
+ ['', 'Update :30 April 2024, pukul 14:56']],
1032
1038
  [['Konversi Satuan'],
1033
1039
  ['Satuan', 'Ounce (oz)', 'Gram (gr)', 'Kilogram (kg)'],
1034
1040
  ['Ounce\xa0(oz)', '1', '31,1034767696', '0,0311034768'],
@@ -1039,36 +1045,36 @@ Output:
1039
1045
  ['Unit', 'USD', 'IDR'],
1040
1046
  ['Angka', '+/-', 'Angka', '+/-'],
1041
1047
  ['Hari Ini', 'Kurs', '', '', '16.222', '+27+0,17%'],
1042
- ['oz', '2.344,54', '-21,40-0,91%', '38.033.128', '-284.426-0,75%'],
1043
- ['gr', '75,38', '-0,69-0,91%', '1.222.793', '-9.145-0,75%'],
1048
+ ['oz', '2.344,54', '-27,74-1,18%', '38.033.128', '-387.445-1,02%'],
1049
+ ['gr', '75,38', '-0,89-1,18%', '1.222.793', '-12.457-1,02%'],
1044
1050
  ['30 Hari', 'Kurs', '', '', '15.853', '+396+2,50%'],
1045
- ['oz', '2.232,75', '+90,39+4,05%', '35.395.786', '+2.352.916+6,65%'],
1046
- ['gr', '71,78', '+2,91+4,05%', '1.138.001', '+75.648+6,65%'],
1051
+ ['oz', '2.232,75', '+84,05+3,76%', '35.395.786', '+2.249.897+6,36%'],
1052
+ ['gr', '71,78', '+2,70+3,76%', '1.138.001', '+72.336+6,36%'],
1047
1053
  ['2 Bulan', 'Kurs', '', '', '15.715', '+534+3,40%'],
1048
- ['oz', '2.081,20', '+241,94+11,63%', '32.706.058', '+5.042.644+15,42%'],
1049
- ['gr', '66,91', '+7,78+11,63', '1.051.524', '+162.125+15,42%'],
1054
+ ['oz', '2.081,20', '+235,60+11,32%', '32.706.058', '+4.939.625+15,10%'],
1055
+ ['gr', '66,91', '+7,57+11,32', '1.051.524', '+158.813+15,10%'],
1050
1056
  ['6 Bulan', 'Kurs', '', '', '15.946', '+303+1,90%'],
1051
- ['oz', '1.981,84', '+341,30+17,22%', '31.602.421', '+6.146.281+19,45%'],
1052
- ['gr', '63,72', '+10,97+17,22%', '1.016.041', '+197.608+19,45%'],
1057
+ ['oz', '1.981,84', '+334,96+16,90%', '31.602.421', '+6.043.263+19,12%'],
1058
+ ['gr', '63,72', '+10,77+16,90%', '1.016.041', '+194.295+19,12%'],
1053
1059
  ['1 Tahun', 'Kurs', '', '', '15.731', '+518+3,29%'],
1054
- ['oz', '1.823,86', '+499,28+27,37%', '28.691.142', '+9.057.560+31,57%'],
1055
- ['gr', '58,64', '+16,05+27,37%', '922.442', '+291.207+31,57%'],
1060
+ ['oz', '1.823,86', '+492,94+27,03%', '28.691.142', '+8.954.542+31,21%'],
1061
+ ['gr', '58,64', '+15,85+27,03%', '922.442', '+287.895+31,21%'],
1056
1062
  ['2 Tahun', 'Kurs', '', '', '14.418', '+1.831+12,70%'],
1057
- ['oz', '1.896,95', '+426,19+22,47%', '27.350.225', '+10.398.477+38,02%'],
1058
- ['gr', '60,99', '+13,70+22,47%', '879.330', '+334.319+38,02%'],
1063
+ ['oz', '1.896,95', '+419,85+22,13%', '27.350.225', '+10.295.458+37,64%'],
1064
+ ['gr', '60,99', '+13,50+22,13%', '879.330', '+331.007+37,64%'],
1059
1065
  ['3 Tahun', 'Kurs', '', '', '14.468', '+1.781+12,31%'],
1060
- ['oz', '1.768,91', '+554,23+31,33%', '25.592.590', '+12.156.112+47,50%'],
1061
- ['gr', '56,87', '+17,82+31,33%', '822.821', '+390.828+47,50%'],
1066
+ ['oz', '1.768,91', '+547,89+30,97%', '25.592.590', '+12.053.093+47,10%'],
1067
+ ['gr', '56,87', '+17,62+30,97%', '822.821', '+387.516+47,10%'],
1062
1068
  ['5 Tahun', 'Kurs', '', '', '14.245', '+2.004+14,07%'],
1063
- ['oz', '1.270,94', '+1.052,20+82,79%', '18.104.540', '+19.644.162+108,50%'],
1064
- ['gr', '40,86', '+33,83+82,79%', '582.074', '+631.574+108,50%']])
1069
+ ['oz', '1.270,94', '+1.045,86+82,29%', '18.104.540', '+19.541.143+107,94%'],
1070
+ ['gr', '40,86', '+33,63+82,29%', '582.074', '+628.262+107,94%']])
1065
1071
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1066
1072
  [[''],
1067
1073
  ['Emas 24 KaratHarga Emas 1 Gram', ''],
1068
- ['USD', '74,69↓', '-0,69-0,92%'],
1069
- ['KURS', '16.269,00↑', '+55,50+0,34%'],
1070
- ['IDR', '1.215.142,76↓', '-7.009,98-0,57%'],
1071
- ['Selasa, 30 April 2024 12:59']],
1074
+ ['USD', '74,49↓', '-0,89-1,18%'],
1075
+ ['KURS', '16.239,25↑', '+25,75+0,16%'],
1076
+ ['IDR', '1.209.610,57↓', '-12.542,17-1,03%'],
1077
+ ['Selasa, 30 April 2024 17:29']],
1072
1078
  [[''],
1073
1079
  ['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
1074
1080
  'Hari Ini',
@@ -1079,19 +1085,19 @@ Output:
1079
1085
  '']],
1080
1086
  [['Pergerakkan Harga Emas 1 Gram'],
1081
1087
  ['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
1082
- ['USD', '75,38', '74,69 - 75,38', '75,04'],
1083
- ['KURS', '16.213,50', '16.213,50 - 16.269,00', '16.241,25'],
1084
- ['IDR', '1.222.152,74', '1.215.142,76 - 1.222.152,74', '1.218.647,75'],
1088
+ ['USD', '75,38', '74,49 - 75,38', '74,94'],
1089
+ ['KURS', '16.213,50', '16.213,50 - 16.239,25', '16.226,38'],
1090
+ ['IDR', '1.222.152,74', '1.209.610,57 - 1.222.152,74', '1.215.881,66'],
1085
1091
  [''],
1086
1092
  ['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
1087
- ['USD', '66,32', '64,07 - 77,14', '+8,37 (12,62%)'],
1088
- ['KURS', '15.390,10', '15.390,00 - 16.307,80', '+878,90 (5,71%)'],
1089
- ['IDR', '1.020.729,53', '997.660,12 - 1.256.829,06', '+194.413,23 (19,05%)'],
1093
+ ['USD', '66,32', '64,07 - 77,14', '+8,17 (12,32%)'],
1094
+ ['KURS', '15.390,10', '15.390,00 - 16.307,80', '+849,15 (5,52%)'],
1095
+ ['IDR', '1.020.729,53', '997.660,12 - 1.256.829,06', '+188.881,04 (18,50%)'],
1090
1096
  [''],
1091
1097
  ['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
1092
- ['USD', '63,97', '58,43 - 77,14', '+10,72 (16,76%)'],
1093
- ['KURS', '14.673,55', '14.669,40 - 16.307,80', '+1.595,45 (10,87%)'],
1094
- ['IDR', '938.709,73', '912.925,68 - 1.256.829,06', '+276.433,03 (29,45%)']])
1098
+ ['USD', '63,97', '58,43 - 77,14', '+10,52 (16,45%)'],
1099
+ ['KURS', '14.673,55', '14.669,40 - 16.307,80', '+1.565,70 (10,67%)'],
1100
+ ['IDR', '938.709,73', '912.925,68 - 1.256.829,06', '+270.900,84 (28,86%)']])
1095
1101
  ```
1096
1102
 
1097
1103
  ## iloads
@@ -1185,7 +1191,7 @@ Output:
1185
1191
  ```py
1186
1192
  8
1187
1193
  ['mana', 'aja']
1188
- [<Element a at 0x7252f5df90>, <Element a at 0x7252f9cf00>, <Element a at 0x7252f9cfa0>, <Element a at 0x7252f9cff0>, <Element a at 0x7252f9d040>, <Element a at 0x7252f9d090>, <Element a at 0x7252f9d0e0>, <Element a at 0x7252f9d130>, <Element a at 0x7252f9d180>, <Element a at 0x7252f9d1d0>, <Element a at 0x7252f9d220>, <Element a at 0x7252f9d270>, <Element a at 0x7252f9d2c0>, <Element a at 0x7252f9d310>, <Element a at 0x7252f9d360>, <Element a at 0x7252f9d3b0>, <Element a at 0x7252f9d400>, <Element a at 0x7252f9d450>]
1194
+ [<Element a at 0x73aef12670>, <Element a at 0x73aef4cd20>, <Element a at 0x73aef4cdc0>, <Element a at 0x73aef4ce10>, <Element a at 0x73aef4ce60>, <Element a at 0x73aef4ceb0>, <Element a at 0x73aef4cf00>, <Element a at 0x73aef4cf50>, <Element a at 0x73aef4cfa0>, <Element a at 0x73aef4cff0>, <Element a at 0x73aef4d040>, <Element a at 0x73aef4d090>, <Element a at 0x73aef4d0e0>, <Element a at 0x73aef4d130>, <Element a at 0x73aef4d180>, <Element a at 0x73aef4d1d0>, <Element a at 0x73aef4d220>, <Element a at 0x73aef4d270>]
1189
1195
  False
1190
1196
  ```
1191
1197
 
@@ -1247,7 +1253,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
1247
1253
 
1248
1254
  Output:
1249
1255
  ```py
1250
- <generator object iscandir at 0x7252f50740>
1256
+ <generator object iscandir at 0x73aef04740>
1251
1257
  [PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
1252
1258
  ```
1253
1259
 
@@ -1284,68 +1290,68 @@ Output:
1284
1290
  'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
1285
1291
  'PintUregQuantity': <class 'pint.Quantity'>,
1286
1292
  'RunParallel': <class 'pypipr.RunParallel.RunParallel'>},
1287
- 'function': {'avg': <function avg at 0x725d0a2700>,
1288
- 'get_filemtime': <function get_filemtime at 0x725830b2e0>,
1289
- 'print_colorize': <function print_colorize at 0x725830b4c0>,
1290
- 'print_log': <function print_log at 0x725859ab60>,
1291
- 'console_run': <function console_run at 0x725830b380>,
1292
- 'auto_reload': <function auto_reload at 0x72584c3ec0>,
1293
- 'basename': <function basename at 0x725830b240>,
1294
- 'chr_to_int': <function chr_to_int at 0x725830b9c0>,
1295
- 'int_to_chr': <function int_to_chr at 0x725830ba60>,
1296
- 'irange': <function irange at 0x725830b880>,
1297
- 'batchmaker': <function batchmaker at 0x725830b740>,
1298
- 'calculate': <function calculate at 0x725830bce0>,
1299
- 'batch_calculate': <function batch_calculate at 0x725830b600>,
1300
- 'is_iterable': <function is_iterable at 0x725830bd80>,
1301
- 'print_to_last_line': <function print_to_last_line at 0x725830be20>,
1302
- 'text_colorize': <function text_colorize at 0x725830bec0>,
1303
- 'choices': <function choices at 0x725830b6a0>,
1304
- 'chunk_array': <function chunk_array at 0x725830b7e0>,
1305
- 'create_folder': <function create_folder at 0x725830bf60>,
1306
- 'datetime_from_string': <function datetime_from_string at 0x72582fc040>,
1307
- 'datetime_now': <function datetime_now at 0x72582fc0e0>,
1308
- 'dict_first': <function dict_first at 0x72582fc180>,
1309
- 'dirname': <function dirname at 0x72582fc220>,
1310
- 'is_empty': <function is_empty at 0x72582fc400>,
1311
- 'exit_if_empty': <function exit_if_empty at 0x725830b560>,
1312
- 'to_str': <function to_str at 0x72582fc540>,
1313
- 'filter_empty': <function filter_empty at 0x72582fc2c0>,
1314
- 'get_by_index': <function get_by_index at 0x72582fc4a0>,
1315
- 'get_class_method': <function get_class_method at 0x72582fc5e0>,
1316
- 'get_filesize': <function get_filesize at 0x72582fc720>,
1317
- 'github_pull': <function github_pull at 0x72582fc7c0>,
1318
- 'github_push': <function github_push at 0x72582fc9a0>,
1319
- 'github_user': <function github_user at 0x72582fca40>,
1320
- 'iargv': <function iargv at 0x72582fc860>,
1321
- 'idumps_html': <function idumps_html at 0x72582fccc0>,
1322
- 'idumps': <function idumps at 0x72582fcb80>,
1323
- 'ienv': <function ienv at 0x72582fd1c0>,
1324
- 'iexec': <function iexec at 0x72583d94e0>,
1325
- 'ijoin': <function ijoin at 0x72583d96c0>,
1326
- 'iloads_html': <function iloads_html at 0x72583d98a0>,
1327
- 'iloads': <function iloads at 0x72583d9620>,
1328
- 'input_char': <function input_char at 0x72583d9800>,
1329
- 'is_valid_url': <function is_valid_url at 0x72583d9a80>,
1330
- 'iopen': <function iopen at 0x72581f1ee0>,
1331
- 'iprint': <function iprint at 0x72583d99e0>,
1332
- 'ireplace': <function ireplace at 0x72583d9da0>,
1333
- 'iscandir': <function iscandir at 0x72582ad620>,
1334
- 'isplit': <function isplit at 0x72582ad6c0>,
1335
- 'ivars': <function ivars at 0x72582ad760>,
1336
- 'log': <function log at 0x72582ad800>,
1337
- 'password_generator': <function password_generator at 0x72582ad8a0>,
1338
- 'pip_freeze_without_version': <function pip_freeze_without_version at 0x72582ad9e0>,
1339
- 'poetry_publish': <function poetry_publish at 0x72582ada80>,
1340
- 'poetry_update_version': <function poetry_update_version at 0x72582adbc0>,
1341
- 'print_dir': <function print_dir at 0x72582adda0>,
1342
- 'random_bool': <function random_bool at 0x72582ade40>,
1343
- 'restart': <function restart at 0x72582adee0>,
1344
- 'set_timeout': <function set_timeout at 0x72582adf80>,
1345
- 'sets_ordered': <function sets_ordered at 0x72582ae020>,
1346
- 'str_cmp': <function str_cmp at 0x72582ae0c0>},
1293
+ 'function': {'avg': <function avg at 0x73bc16a700>,
1294
+ 'get_filemtime': <function get_filemtime at 0x73b7bff2e0>,
1295
+ 'print_colorize': <function print_colorize at 0x73b7bff4c0>,
1296
+ 'print_log': <function print_log at 0x73b7cc2b60>,
1297
+ 'console_run': <function console_run at 0x73b7bff380>,
1298
+ 'auto_reload': <function auto_reload at 0x73b7bebec0>,
1299
+ 'basename': <function basename at 0x73b7bff240>,
1300
+ 'chr_to_int': <function chr_to_int at 0x73b7bffa60>,
1301
+ 'int_to_chr': <function int_to_chr at 0x73b7bffb00>,
1302
+ 'irange': <function irange at 0x73b7bffd80>,
1303
+ 'batchmaker': <function batchmaker at 0x73b7bff740>,
1304
+ 'calculate': <function calculate at 0x73b7a282c0>,
1305
+ 'batch_calculate': <function batch_calculate at 0x73b7bff600>,
1306
+ 'is_iterable': <function is_iterable at 0x73b7a28360>,
1307
+ 'print_to_last_line': <function print_to_last_line at 0x73b7a28400>,
1308
+ 'text_colorize': <function text_colorize at 0x73b7a284a0>,
1309
+ 'choices': <function choices at 0x73b7bff6a0>,
1310
+ 'chunk_array': <function chunk_array at 0x73b7bff7e0>,
1311
+ 'create_folder': <function create_folder at 0x73b7a28540>,
1312
+ 'datetime_from_string': <function datetime_from_string at 0x73b7a285e0>,
1313
+ 'datetime_now': <function datetime_now at 0x73b7a28680>,
1314
+ 'dict_first': <function dict_first at 0x73b7a28720>,
1315
+ 'dirname': <function dirname at 0x73b7a287c0>,
1316
+ 'is_empty': <function is_empty at 0x73b7a289a0>,
1317
+ 'exit_if_empty': <function exit_if_empty at 0x73b7bff560>,
1318
+ 'to_str': <function to_str at 0x73b7a28ae0>,
1319
+ 'filter_empty': <function filter_empty at 0x73b7a28860>,
1320
+ 'get_by_index': <function get_by_index at 0x73b7a28a40>,
1321
+ 'get_class_method': <function get_class_method at 0x73b7a28b80>,
1322
+ 'get_filesize': <function get_filesize at 0x73b7a28cc0>,
1323
+ 'github_pull': <function github_pull at 0x73b7a28d60>,
1324
+ 'github_push': <function github_push at 0x73b7a28f40>,
1325
+ 'github_user': <function github_user at 0x73b7a28fe0>,
1326
+ 'iargv': <function iargv at 0x73b7a28e00>,
1327
+ 'idumps_html': <function idumps_html at 0x73b7a29260>,
1328
+ 'idumps': <function idumps at 0x73b7a29120>,
1329
+ 'ienv': <function ienv at 0x73b7a29760>,
1330
+ 'iexec': <function iexec at 0x73b7b01a80>,
1331
+ 'ijoin': <function ijoin at 0x73b7b01c60>,
1332
+ 'iloads_html': <function iloads_html at 0x73b7b01e40>,
1333
+ 'iloads': <function iloads at 0x73b7b01bc0>,
1334
+ 'input_char': <function input_char at 0x73b7b01da0>,
1335
+ 'is_valid_url': <function is_valid_url at 0x73b7b02020>,
1336
+ 'iopen': <function iopen at 0x73b792e480>,
1337
+ 'iprint': <function iprint at 0x73b7b01f80>,
1338
+ 'ireplace': <function ireplace at 0x73b7b02340>,
1339
+ 'iscandir': <function iscandir at 0x73b79e1bc0>,
1340
+ 'isplit': <function isplit at 0x73b79e1c60>,
1341
+ 'ivars': <function ivars at 0x73b79e1d00>,
1342
+ 'log': <function log at 0x73b79e1da0>,
1343
+ 'password_generator': <function password_generator at 0x73b79e1e40>,
1344
+ 'pip_freeze_without_version': <function pip_freeze_without_version at 0x73b79e1f80>,
1345
+ 'poetry_publish': <function poetry_publish at 0x73b79e2020>,
1346
+ 'poetry_update_version': <function poetry_update_version at 0x73b79e2160>,
1347
+ 'print_dir': <function print_dir at 0x73b79e2340>,
1348
+ 'random_bool': <function random_bool at 0x73b79e23e0>,
1349
+ 'restart': <function restart at 0x73b79e2480>,
1350
+ 'set_timeout': <function set_timeout at 0x73b79e2520>,
1351
+ 'sets_ordered': <function sets_ordered at 0x73b79e25c0>,
1352
+ 'str_cmp': <function str_cmp at 0x73b79e2660>},
1347
1353
  'variable': {'LINUX': True,
1348
- 'PintUreg': <pint.registry.UnitRegistry object at 0x725d0a8450>,
1354
+ 'PintUreg': <pint.registry.UnitRegistry object at 0x73bc34ff90>,
1349
1355
  'WINDOWS': False},
1350
1356
  'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.11/asyncio/__init__.py'>,
1351
1357
  'colorama': <module 'colorama' from '/data/data/com.termux/files/usr/lib/python3.11/site-packages/colorama/__init__.py'>,
@@ -1419,7 +1425,7 @@ print(password_generator())
1419
1425
 
1420
1426
  Output:
1421
1427
  ```py
1422
- Ym}9H"{5
1428
+ DHOV[xra
1423
1429
  ```
1424
1430
 
1425
1431
  ## pip_freeze_without_version
@@ -1477,7 +1483,7 @@ Output:
1477
1483
  __enter__ : https:/www.google.com
1478
1484
  __fspath__ : https:/www.google.com
1479
1485
  __getstate__ : (None, {'_drv': '', '_root': '', '_parts': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
1480
- __hash__ : 3977985606964424013
1486
+ __hash__ : 6851376060723217171
1481
1487
  __init__ : None
1482
1488
  __init_subclass__ : None
1483
1489
  __module__ : pathlib
@@ -1490,8 +1496,8 @@ Output:
1490
1496
  _cached_cparts : ['https:', 'www.google.com']
1491
1497
  _cparts : ['https:', 'www.google.com']
1492
1498
  _drv :
1493
- _flavour : <pathlib._PosixFlavour object at 0x7262454610>
1494
- _hash : 3977985606964424013
1499
+ _flavour : <pathlib._PosixFlavour object at 0x73c1f20710>
1500
+ _hash : 6851376060723217171
1495
1501
  _parts : ['https:', 'www.google.com']
1496
1502
  _root :
1497
1503
  _str : https:/www.google.com
@@ -1513,7 +1519,7 @@ Output:
1513
1519
  is_reserved : False
1514
1520
  is_socket : False
1515
1521
  is_symlink : False
1516
- iterdir : <generator object Path.iterdir at 0x7252f59fc0>
1522
+ iterdir : <generator object Path.iterdir at 0x73aef0a0a0>
1517
1523
  joinpath : https:/www.google.com
1518
1524
  name : www.google.com
1519
1525
  parent : https:
@@ -1567,7 +1573,7 @@ x.cancel()
1567
1573
 
1568
1574
  Output:
1569
1575
  ```py
1570
- <Timer(Thread-2, started 490989403376)>
1576
+ <Timer(Thread-2, started 496827874544)>
1571
1577
  menghentikan timeout 7
1572
1578
  ```
1573
1579
 
@@ -1585,7 +1591,7 @@ print(list(sets_ordered(array)))
1585
1591
 
1586
1592
  Output:
1587
1593
  ```py
1588
- <generator object sets_ordered at 0x7252f78ad0>
1594
+ <generator object sets_ordered at 0x73aef28a00>
1589
1595
  [2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
1590
1596
  ```
1591
1597
 
@@ -1660,7 +1666,7 @@ print(ExampleComparePerformance().compare_performance())
1660
1666
 
1661
1667
  Output:
1662
1668
  ```py
1663
- {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7252f78520>,
1669
+ {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x73aef28450>,
1664
1670
  'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
1665
1671
  'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
1666
1672
  'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
@@ -3,7 +3,7 @@ import re
3
3
  from .irange import irange
4
4
 
5
5
  # batchmaker()
6
- __batchmaker__regex_pattern__ = r"{(?:[^a-zA-Z0-9{}]+)?([a-zA-Z]+|\d+)(?:[^a-zA-Z0-9{}]+([a-zA-Z]+|\d+))?(?:[^a-zA-Z0-9{}]+(\d+))?(?:[^a-zA-Z0-9{}]+)?}"
6
+ __batchmaker__regex_pattern__ = r"{(?:[^a-zA-Z0-9{}]+)?([a-zA-Z0-9]+)(?:[^a-zA-Z0-9{}]+([a-zA-Z0-9]+))?(?:[^a-zA-Z0-9{}]+(\d+))?(?:[^a-zA-Z0-9{}]+)?}"
7
7
  __batchmaker__regex_compile__ = re.compile(__batchmaker__regex_pattern__)
8
8
 
9
9
 
@@ -0,0 +1,120 @@
1
+ from .chr_to_int import chr_to_int
2
+ from .int_to_chr import int_to_chr
3
+
4
+
5
+ def int_range(start, stop, step, index, number):
6
+ start = int_int(start)
7
+ stop = int_int(stop)
8
+ step = fix_step(start, stop, step)
9
+ for i in range(start, stop, step):
10
+ yield i
11
+
12
+
13
+ def oct_range(start, stop, step, index, number):
14
+ start = oct_oct(start)
15
+ stop = oct_oct(stop)
16
+ step = fix_step(start, stop, step)
17
+ for i in range(start, stop, step):
18
+ yield oct(i)
19
+
20
+
21
+ def hex_range(start, stop, step, index, number):
22
+ start = hex_hex(start)
23
+ stop = hex_hex(stop)
24
+ step = fix_step(start, stop, step)
25
+ for i in range(start, stop, step):
26
+ yield hex(i)
27
+
28
+
29
+ def bin_range(start, stop, step, index, number):
30
+ start = bin_bin(start)
31
+ stop = bin_bin(stop)
32
+ step = fix_step(start, stop, step)
33
+ for i in range(start, stop, step):
34
+ yield bin(i)
35
+
36
+
37
+ def chr_range(start, stop, step, index, numbers):
38
+ start = chr_chr(start, index, numbers)
39
+ stop = chr_chr(stop, index, numbers)
40
+ step = fix_step(start, stop, step)
41
+ for i in range(start, stop, step):
42
+ yield int_to_chr(i, start=index, numbers=numbers)
43
+
44
+
45
+ irange_numbers = [
46
+ (int_range, "0123456789"),
47
+ (chr_range, "abcdefghijklmnopqrstuvwxyz"),
48
+ (chr_range, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
49
+ (bin_range, "01"),
50
+ (oct_range, "01234567"),
51
+ (hex_range, "0123456789abcdef"),
52
+ (hex_range, "0123456789ABCDEF"),
53
+ ]
54
+
55
+
56
+ def irange(start, stop=None, step=None, index=0, numbers=None):
57
+ """
58
+ Meningkatkan fungsi range() dari python untuk pengulangan menggunakan huruf
59
+
60
+ ```python
61
+ print(irange('a', 'c'))
62
+ print(irange('z', 'a', 10))
63
+ print(list(irange('a', 'z', 10)))
64
+ print(list(irange(1, '7')))
65
+ print(list(irange(10, 5)))
66
+ ```
67
+ """
68
+ start, stop, step = fix_args_position(start, stop, step)
69
+
70
+ if numbers is not None:
71
+ return chr_range(start, stop, step, index, numbers)
72
+
73
+ start = str(start) if start is not None else ""
74
+ stop = str(stop) if stop is not None else ""
75
+ ss = set(start) | set(stop)
76
+ for f, n in irange_numbers:
77
+ for s in ss:
78
+ if s not in n:
79
+ break
80
+ else:
81
+ return f(start, stop, step, index, n)
82
+
83
+ raise Exception("start dan stop tidak diketahui")
84
+
85
+
86
+ def bin_bin(start):
87
+ return int(start, 2) if start else 0
88
+
89
+
90
+ def hex_hex(start):
91
+ return int(start, 16) if start else 0
92
+
93
+
94
+ def oct_oct(start):
95
+ return int(start, 8) if start else 0
96
+
97
+
98
+ def int_int(start):
99
+ return int(start) if start else 0
100
+
101
+
102
+ def chr_chr(start, index, numbers):
103
+ start = str(start) if start else numbers[0]
104
+ start = chr_to_int(start, start=index, numbers=numbers)
105
+ return start
106
+
107
+
108
+ def fix_args_position(start, stop, step):
109
+ step = 1 if step is None else int(step)
110
+ if stop is None:
111
+ stop = start
112
+ start = None
113
+ return start, stop, step
114
+
115
+
116
+ def fix_step(start, stop, step):
117
+ step = abs(step)
118
+ if stop < start:
119
+ step = step * -1
120
+ return step
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pypipr"
3
- version = "1.0.109"
3
+ version = "1.0.110"
4
4
  description = "The Python Package Index Project"
5
5
  authors = ["ufiapjj <ufiapjj@gmail.com>"]
6
6
  readme = "readme.md"
@@ -22,4 +22,4 @@ requires = ["poetry-core"]
22
22
  build-backend = "poetry.core.masonry.api"
23
23
 
24
24
  [tool.poetry.scripts]
25
- pypipr = "pypipr.terminal:main"
25
+ pypipr = "pypipr.__terminal__:main"