pypipr 1.0.168__tar.gz → 1.0.169__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 (98) hide show
  1. {pypipr-1.0.168 → pypipr-1.0.169}/PKG-INFO +149 -149
  2. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/dirname.py +2 -4
  3. {pypipr-1.0.168 → pypipr-1.0.169}/pyproject.toml +1 -1
  4. {pypipr-1.0.168 → pypipr-1.0.169}/readme.md +148 -148
  5. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ComparePerformance.py +0 -0
  6. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/LINUX.py +0 -0
  7. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/PintUreg.py +0 -0
  8. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/PintUregQuantity.py +0 -0
  9. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/RunParallel.py +0 -0
  10. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/TextCase.py +0 -0
  11. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/WINDOWS.py +0 -0
  12. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/__init__.py +0 -0
  13. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/__terminal__.py +0 -0
  14. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/auto_reload.py +0 -0
  15. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/avg.py +0 -0
  16. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/basename.py +0 -0
  17. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/batch_calculate.py +0 -0
  18. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/batchmaker.py +0 -0
  19. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/bin_to_int.py +0 -0
  20. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/calculate.py +0 -0
  21. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/choices.py +0 -0
  22. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/chr_to_int.py +0 -0
  23. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/chunk_array.py +0 -0
  24. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/console_run.py +0 -0
  25. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/create_folder.py +0 -0
  26. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/datetime_from_string.py +0 -0
  27. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/datetime_now.py +0 -0
  28. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/dict_first.py +0 -0
  29. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/django_clear_migrations.py +0 -0
  30. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/django_runserver.py +0 -0
  31. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/exit_if_empty.py +0 -0
  32. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/filter_empty.py +0 -0
  33. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/get_by_index.py +0 -0
  34. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/get_class_method.py +0 -0
  35. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/get_filemtime.py +0 -0
  36. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/get_filesize.py +0 -0
  37. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/github_init.py +0 -0
  38. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/github_pull.py +0 -0
  39. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/github_push.py +0 -0
  40. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/github_user.py +0 -0
  41. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/hex_to_int.py +0 -0
  42. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iargv.py +0 -0
  43. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/idir.py +0 -0
  44. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/idumps.py +0 -0
  45. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/idumps_html.py +0 -0
  46. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ienumerate.py +0 -0
  47. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ienv.py +0 -0
  48. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iexec.py +0 -0
  49. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iinput.py +0 -0
  50. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ijoin.py +0 -0
  51. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iloads.py +0 -0
  52. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iloads_html.py +0 -0
  53. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/input_char.py +0 -0
  54. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/int_to_bin.py +0 -0
  55. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/int_to_chr.py +0 -0
  56. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/int_to_hex.py +0 -0
  57. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/int_to_int.py +0 -0
  58. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/int_to_oct.py +0 -0
  59. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iopen.py +0 -0
  60. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iprint.py +0 -0
  61. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/irange.py +0 -0
  62. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ireplace.py +0 -0
  63. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/is_empty.py +0 -0
  64. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/is_html.py +0 -0
  65. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/is_iterable.py +0 -0
  66. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/is_raw_string.py +0 -0
  67. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/is_valid_url.py +0 -0
  68. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/iscandir.py +0 -0
  69. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/isplit.py +0 -0
  70. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/ivars.py +0 -0
  71. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/log.py +0 -0
  72. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/no_indent.py +0 -0
  73. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/oct_to_int.py +0 -0
  74. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/password_generator.py +0 -0
  75. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/path_to_module.py +0 -0
  76. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/pip_freeze_without_version.py +0 -0
  77. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/pip_update_pypipr.py +0 -0
  78. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/poetry_publish.py +0 -0
  79. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/poetry_update_version.py +0 -0
  80. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/print_colorize.py +0 -0
  81. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/print_dir.py +0 -0
  82. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/print_log.py +0 -0
  83. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/print_to_last_line.py +0 -0
  84. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/random_bool.py +0 -0
  85. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/repath.py +0 -0
  86. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/restart.py +0 -0
  87. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/set_timeout.py +0 -0
  88. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/sets_ordered.py +0 -0
  89. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/sqlite_backup.py +0 -0
  90. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/sqlite_delete_table.py +0 -0
  91. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/sqlite_get_all_tables.py +0 -0
  92. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/sqlite_get_data_table.py +0 -0
  93. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/str_cmp.py +0 -0
  94. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/text_colorize.py +0 -0
  95. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/tiles.py +0 -0
  96. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/to_str.py +0 -0
  97. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/traceback_filename.py +0 -0
  98. {pypipr-1.0.168 → pypipr-1.0.169}/pypipr/traceback_framename.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pypipr
3
- Version: 1.0.168
3
+ Version: 1.0.169
4
4
  Summary: The Python Package Index Project
5
5
  Author: ufiapjj
6
6
  Author-email: ufiapjj@gmail.com
@@ -248,8 +248,8 @@ iprint(irange("z", "a", 4))
248
248
 
249
249
  Output:
250
250
  ```py
251
- <generator object int_range at 0x7b91b92840>
252
- <generator object int_range at 0x7b91b92940>
251
+ <generator object int_range at 0x7dea406840>
252
+ <generator object int_range at 0x7dea406940>
253
253
  [13, 12, 11, 10, 9, 8, 7, 6]
254
254
  [2, 5, 8]
255
255
  []
@@ -281,7 +281,7 @@ print(list(batchmaker(s)))
281
281
 
282
282
  Output:
283
283
  ```py
284
- <generator object batchmaker at 0x7b91ba32e0>
284
+ <generator object batchmaker at 0x7dea4172e0>
285
285
  ['Urutan 1 dan 10 dan j dan Z saja.', 'Urutan 1 dan 10 dan j dan K saja.', 'Urutan 1 dan 10 dan j dan saja.']
286
286
  ```
287
287
 
@@ -335,7 +335,7 @@ print(list(batch_calculate("{1 10} m ** {1 3}")))
335
335
 
336
336
  Output:
337
337
  ```py
338
- <generator object batch_calculate at 0x7b91bbb300>
338
+ <generator object batch_calculate at 0x7dea42f300>
339
339
  [('1 m ** 1', <Quantity(1, 'meter')>), ('1 m ** 2', <Quantity(1, 'meter ** 2')>), ('1 m ** 3', <Quantity(1, 'meter ** 3')>)]
340
340
  ```
341
341
 
@@ -441,7 +441,7 @@ print(list(chunk_array(arr, 5)))
441
441
 
442
442
  Output:
443
443
  ```py
444
- <generator object chunk_array at 0x7b91b9f100>
444
+ <generator object chunk_array at 0x7dea413100>
445
445
  [[2, 3, 12, 3, 3], [42, 42, 1, 43, 2], [42, 41, 4, 24, 32], [42, 3, 12, 32, 42], [42]]
446
446
  ```
447
447
 
@@ -492,9 +492,9 @@ print(datetime_now("Etc/GMT+7"))
492
492
 
493
493
  Output:
494
494
  ```py
495
- 2025-04-10 22:17:53.887676+07:00
496
- 2025-04-10 15:17:53.889758+00:00
497
- 2025-04-10 08:17:53.893586-07:00
495
+ 2025-04-10 22:27:31.779538+07:00
496
+ 2025-04-10 15:27:31.780368+00:00
497
+ 2025-04-10 08:27:31.781876-07:00
498
498
  ```
499
499
 
500
500
  ## dict_first
@@ -584,7 +584,7 @@ iprint(filter_empty(var))
584
584
 
585
585
  Output:
586
586
  ```py
587
- <generator object filter_empty at 0x7b91b9f2e0>
587
+ <generator object filter_empty at 0x7dea4132e0>
588
588
  [1, '0', True, {}, ['eee']]
589
589
  ```
590
590
 
@@ -655,8 +655,8 @@ print(list(get_class_method(ExampleGetClassMethod)))
655
655
 
656
656
  Output:
657
657
  ```py
658
- <generator object get_class_method at 0x7b91bbbe60>
659
- [<function ExampleGetClassMethod.a at 0x7b91a12de0>, <function ExampleGetClassMethod.b at 0x7b91a12c00>, <function ExampleGetClassMethod.c at 0x7b91a12ca0>, <function ExampleGetClassMethod.d at 0x7b91a12e80>]
658
+ <generator object get_class_method at 0x7dea42fe60>
659
+ [<function ExampleGetClassMethod.a at 0x7dea482de0>, <function ExampleGetClassMethod.b at 0x7dea482c00>, <function ExampleGetClassMethod.c at 0x7dea482ca0>, <function ExampleGetClassMethod.d at 0x7dea482e80>]
660
660
  ```
661
661
 
662
662
  ## get_filesize
@@ -1084,7 +1084,7 @@ Output:
1084
1084
 
1085
1085
  ## ienumerate
1086
1086
 
1087
- `ienumerate(iterator, start=0, key=<function int_to_int at 0x7b980da5c0>)`
1087
+ `ienumerate(iterator, start=0, key=<function int_to_int at 0x7ded8ce5c0>)`
1088
1088
 
1089
1089
  meningkatkan fungsi enumerate() pada python
1090
1090
  untuk key menggunakan huruf dan basis angka lainnya.
@@ -1097,7 +1097,7 @@ iprint(ienumerate(it, key=int_to_chr))
1097
1097
 
1098
1098
  Output:
1099
1099
  ```py
1100
- <generator object ienumerate at 0x7b91b9f2e0>
1100
+ <generator object ienumerate at 0x7dea4132e0>
1101
1101
  [('a', 'ini'), ('b', 'contoh'), ('c', 'enumerator')]
1102
1102
  ```
1103
1103
 
@@ -1174,7 +1174,7 @@ print(ijoin(10, ' '))
1174
1174
 
1175
1175
  Output:
1176
1176
  ```py
1177
- dfs, qweqw, asd, weq
1177
+ weq, qweqw, asd, dfs
1178
1178
  ,ini,path,seperti,url,
1179
1179
  ini,path,seperti,url
1180
1180
  <li>satu</li>
@@ -1220,7 +1220,7 @@ Output:
1220
1220
  ```py
1221
1221
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1222
1222
  [['Harga Emas Hari Ini - Kamis, 10 April 2025'],
1223
- ['Spot Emas USD↑3.158,05 (+67,01) / oz',
1223
+ ['Spot Emas USD↑3.164,58 (+73,54) / oz',
1224
1224
  'Kurs IDR1,00 / USD',
1225
1225
  'Emas IDR↑102 (+2) / gr'],
1226
1226
  ['LM Antam (Jual)↓1.513.000 (-30.000) / gr',
@@ -1245,10 +1245,10 @@ Output:
1245
1245
  'Update harga LM Pegadaian :31 Desember 1969']],
1246
1246
  [['Spot Harga Emas Hari Ini (Market Open)'],
1247
1247
  ['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
1248
- ['Ounce\xa0(oz)', '3.158,05 (+67,01)', '1,00', '3.158'],
1249
- ['Gram\xa0(gr)', '101,53', '1,00', '102 (+2)'],
1250
- ['Kilogram\xa0(kg)', '101.533,67', '1,00', '101.534'],
1251
- ['Update harga emas :10 April 2025, pukul 22:17Update kurs :14 Maret 2025, '
1248
+ ['Ounce\xa0(oz)', '3.164,58 (+73,54)', '1,00', '3.165'],
1249
+ ['Gram\xa0(gr)', '101,74', '1,00', '102 (+2)'],
1250
+ ['Kilogram\xa0(kg)', '101.743,61', '1,00', '101.744'],
1251
+ ['Update harga emas :10 April 2025, pukul 22:27Update kurs :14 Maret 2025, '
1252
1252
  'pukul 10:13']],
1253
1253
  [['Gram', 'UBS Gold 99.99%'],
1254
1254
  ['Jual', 'Beli'],
@@ -1286,36 +1286,36 @@ Output:
1286
1286
  ['Unit', 'USD', 'IDR'],
1287
1287
  ['Angka', '+/-', 'Angka', '+/-'],
1288
1288
  ['Hari Ini', 'Kurs', '', '', '1', '%'],
1289
- ['oz', '3.091,04', '+67,01+2,17%', '3.091', '+67+2,17%'],
1290
- ['gr', '99,38', '+2,15+2,17%', '99', '+2+2,17%'],
1289
+ ['oz', '3.091,04', '+73,54+2,38%', '3.091', '+74+2,38%'],
1290
+ ['gr', '99,38', '+2,36+2,38%', '99', '+2+2,38%'],
1291
1291
  ['30 Hari', 'Kurs', '', '', '16.326', '-16.325-99,99%'],
1292
- ['oz', '2.916,73', '+241,32+8,27%', '47.618.534', '-47.615.376-99,99%'],
1293
- ['gr', '93,78', '+7,76+8,27%', '1.530.971', '-1.530.870-99,99%'],
1292
+ ['oz', '2.916,73', '+247,85+8,50%', '47.618.534', '-47.615.369-99,99%'],
1293
+ ['gr', '93,78', '+7,97+8,50%', '1.530.971', '-1.530.870-99,99%'],
1294
1294
  ['2 Bulan', 'Kurs', '', '', '16.330', '-16.329-99,99%'],
1295
- ['oz', '2.861,26', '+296,79+10,37%', '46.724.376', '-46.721.218-99,99%'],
1296
- ['gr', '91,99', '+9,54+10,37', '1.502.224', '-1.502.122-99,99%'],
1295
+ ['oz', '2.861,26', '+303,32+10,60%', '46.724.376', '-46.721.211-99,99%'],
1296
+ ['gr', '91,99', '+9,75+10,60', '1.502.224', '-1.502.122-99,99%'],
1297
1297
  ['6 Bulan', 'Kurs', '', '', '15.658', '-15.657-99,99%'],
1298
- ['oz', '2.656,78', '+501,27+18,87%', '41.599.861', '-41.596.703-99,99%'],
1299
- ['gr', '85,42', '+16,12+18,87%', '1.337.467', '-1.337.365-99,99%'],
1298
+ ['oz', '2.656,78', '+507,80+19,11%', '41.599.861', '-41.596.697-99,99%'],
1299
+ ['gr', '85,42', '+16,33+19,11%', '1.337.467', '-1.337.365-99,99%'],
1300
1300
  ['1 Tahun', 'Kurs', '', '', '15.907', '-15.906-99,99%'],
1301
- ['oz', '2.338,57', '+819,48+35,04%', '37.199.633', '-37.196.475-99,99%'],
1302
- ['gr', '75,19', '+26,35+35,04%', '1.195.996', '-1.195.894-99,99%'],
1301
+ ['oz', '2.338,57', '+826,01+35,32%', '37.199.633', '-37.196.468-99,99%'],
1302
+ ['gr', '75,19', '+26,56+35,32%', '1.195.996', '-1.195.894-99,99%'],
1303
1303
  ['2 Tahun', 'Kurs', '', '', '15.731', '-15.730-99,99%'],
1304
- ['oz', '1.823,86', '+1.334,19+73,15%', '28.691.142', '-28.687.984-99,99%'],
1305
- ['gr', '58,64', '+42,90+73,15%', '922.442', '-922.340-99,99%'],
1304
+ ['oz', '1.823,86', '+1.340,72+73,51%', '28.691.142', '-28.687.977-99,99%'],
1305
+ ['gr', '58,64', '+43,11+73,51%', '922.442', '-922.340-99,99%'],
1306
1306
  ['3 Tahun', 'Kurs', '', '', '14.365', '-14.364-99,99%'],
1307
- ['oz', '1.942,64', '+1.215,41+62,56%', '27.906.043', '-27.902.885-99,99%'],
1308
- ['gr', '62,46', '+39,08+62,56%', '897.200', '-897.099-99,99%'],
1307
+ ['oz', '1.942,64', '+1.221,94+62,90%', '27.906.043', '-27.902.878-99,99%'],
1308
+ ['gr', '62,46', '+39,29+62,90%', '897.200', '-897.098-99,99%'],
1309
1309
  ['5 Tahun', 'Kurs', '', '', '16.241', '-16.240-99,99%'],
1310
- ['oz', '1.688,78', '+1.469,27+87,00%', '27.427.493', '-27.424.335-99,99%'],
1311
- ['gr', '54,30', '+47,24+87,00%', '881.814', '-881.713-99,99%']])
1310
+ ['oz', '1.688,78', '+1.475,80+87,39%', '27.427.493', '-27.424.328-99,99%'],
1311
+ ['gr', '54,30', '+47,45+87,39%', '881.814', '-881.713-99,99%']])
1312
1312
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1313
1313
  [[''],
1314
1314
  ['Emas 24 KaratHarga Emas 1 Gram', ''],
1315
- ['USD', '101,53↑', '+2,15+2,16%'],
1315
+ ['USD', '101,74↑', '+2,36+2,37%'],
1316
1316
  ['KURS', '16.355,25↓', '%'],
1317
- ['IDR', '1.660.608,48↑', '+35.236,10+2,17%'],
1318
- ['Kamis, 10 April 2025 22:17']],
1317
+ ['IDR', '1.664.042,17↑', '+38.669,79+2,38%'],
1318
+ ['Kamis, 10 April 2025 22:27']],
1319
1319
  [[''],
1320
1320
  ['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
1321
1321
  'Hari Ini',
@@ -1326,25 +1326,25 @@ Output:
1326
1326
  '']],
1327
1327
  [['Pergerakkan Harga Emas 1 Gram'],
1328
1328
  ['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
1329
- ['USD', '99,38', '99,38 - 101,53', '100,46'],
1329
+ ['USD', '99,38', '99,38 - 101,74', '100,56'],
1330
1330
  ['KURS', '16.355,25', '16.355,25 - 16.355,25', '16.355,25'],
1331
- ['IDR', '1.625.372,38', '1.625.372,38 - 1.660.608,48', '1.642.990,43'],
1331
+ ['IDR', '1.625.372,38', '1.625.372,38 - 1.664.042,17', '1.644.707,28'],
1332
1332
  [''],
1333
1333
  ['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
1334
- ['USD', '84,42', '84,38 - 101,53', '+17,11 (20,27%)'],
1334
+ ['USD', '84,42', '84,38 - 101,74', '+17,32 (20,52%)'],
1335
1335
  ['KURS', '16.220,76', '16.156,70 - 16.387,00', '+134,49 (0,83%)'],
1336
1336
  ['IDR',
1337
1337
  '1.369.306,75',
1338
- '1.368.695,74 - 1.660.608,48',
1339
- '+291.301,73 (21,27%)'],
1338
+ '1.368.695,74 - 1.664.042,17',
1339
+ '+294.735,42 (21,52%)'],
1340
1340
  [''],
1341
1341
  ['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
1342
- ['USD', '75,37', '73,75 - 101,53', '+26,16 (34,71%)'],
1342
+ ['USD', '75,37', '73,75 - 101,74', '+26,37 (34,99%)'],
1343
1343
  ['KURS', '15.877,00', '15.100,00 - 16.509,65', '+478,25 (3,01%)'],
1344
1344
  ['IDR',
1345
1345
  '1.196.609,14',
1346
- '1.181.943,88 - 1.660.608,48',
1347
- '+463.999,34 (38,78%)']])
1346
+ '1.181.943,88 - 1.664.042,17',
1347
+ '+467.433,03 (39,06%)']])
1348
1348
  ```
1349
1349
 
1350
1350
  ## iloads
@@ -1474,7 +1474,7 @@ Output:
1474
1474
  ```py
1475
1475
  8
1476
1476
  ['mana', 'aja']
1477
- [<Element a at 0x7b91a1d2c0>, <Element a at 0x7b91a53f20>, <Element a at 0x7b91a53f70>, <Element a at 0x7b91a53fc0>, <Element a at 0x7b91a74050>, <Element a at 0x7b91a740a0>, <Element a at 0x7b91a740f0>, <Element a at 0x7b91a74140>, <Element a at 0x7b91a74190>, <Element a at 0x7b91a741e0>, <Element a at 0x7b91a74230>, <Element a at 0x7b91a74280>, <Element a at 0x7b91a742d0>, <Element a at 0x7b91a74320>, <Element a at 0x7b91a74370>, <Element a at 0x7b91a743c0>, <Element a at 0x7b91a74410>, <Element a at 0x7b91a74460>]
1477
+ [<Element a at 0x7dea1113b0>, <Element a at 0x7dea168050>, <Element a at 0x7dea1680a0>, <Element a at 0x7dea1680f0>, <Element a at 0x7dea168140>, <Element a at 0x7dea168190>, <Element a at 0x7dea1681e0>, <Element a at 0x7dea168230>, <Element a at 0x7dea168280>, <Element a at 0x7dea1682d0>, <Element a at 0x7dea168320>, <Element a at 0x7dea168370>, <Element a at 0x7dea1683c0>, <Element a at 0x7dea168410>, <Element a at 0x7dea168460>, <Element a at 0x7dea1684b0>, <Element a at 0x7dea168500>, <Element a at 0x7dea168550>]
1478
1478
  False
1479
1479
  ```
1480
1480
 
@@ -1544,7 +1544,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
1544
1544
 
1545
1545
  Output:
1546
1546
  ```py
1547
- <generator object iscandir at 0x7b91b9f1f0>
1547
+ <generator object iscandir at 0x7dea4131f0>
1548
1548
  [PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
1549
1549
  ```
1550
1550
 
@@ -1577,98 +1577,98 @@ iprint(ivars(__import__('pypipr')))
1577
1577
 
1578
1578
  Output:
1579
1579
  ```py
1580
- {'function': {'avg': <function avg at 0x7b9b7e8680>,
1581
- 'get_filemtime': <function get_filemtime at 0x7b980293a0>,
1582
- 'print_colorize': <function print_colorize at 0x7b98029580>,
1583
- 'print_log': <function print_log at 0x7b987cb4c0>,
1584
- 'console_run': <function console_run at 0x7b98029440>,
1585
- 'auto_reload': <function auto_reload at 0x7b98028d60>,
1586
- 'basename': <function basename at 0x7b98029620>,
1587
- 'chr_to_int': <function chr_to_int at 0x7b98029bc0>,
1588
- 'int_to_chr': <function int_to_chr at 0x7b98029c60>,
1589
- 'irange': <function irange at 0x7b9802a160>,
1590
- 'batchmaker': <function batchmaker at 0x7b98029940>,
1591
- 'calculate': <function calculate at 0x7b980294e0>,
1592
- 'batch_calculate': <function batch_calculate at 0x7b980296c0>,
1593
- 'bin_to_int': <function bin_to_int at 0x7b980298a0>,
1594
- 'is_empty': <function is_empty at 0x7b9802aa20>,
1595
- 'exit_if_empty': <function exit_if_empty at 0x7b9802a8e0>,
1596
- 'input_char': <function input_char at 0x7b9802a980>,
1597
- 'choices': <function choices at 0x7b9802aca0>,
1598
- 'chunk_array': <function chunk_array at 0x7b9802ad40>,
1599
- 'create_folder': <function create_folder at 0x7b9802ade0>,
1600
- 'datetime_from_string': <function datetime_from_string at 0x7b9802ae80>,
1601
- 'datetime_now': <function datetime_now at 0x7b9802af20>,
1602
- 'dict_first': <function dict_first at 0x7b980491c0>,
1603
- 'is_iterable': <function is_iterable at 0x7b980494e0>,
1604
- 'to_str': <function to_str at 0x7b98049620>,
1605
- 'filter_empty': <function filter_empty at 0x7b980493a0>,
1606
- 'dirname': <function dirname at 0x7b98049260>,
1607
- 'django_clear_migrations': <function django_clear_migrations at 0x7b98049300>,
1608
- 'django_runserver': <function django_runserver at 0x7b980498a0>,
1609
- 'get_by_index': <function get_by_index at 0x7b98049b20>,
1610
- 'get_class_method': <function get_class_method at 0x7b98049bc0>,
1611
- 'get_filesize': <function get_filesize at 0x7b98049d00>,
1612
- 'github_init': <function github_init at 0x7b98049da0>,
1613
- 'github_pull': <function github_pull at 0x7b98049e40>,
1614
- 'github_push': <function github_push at 0x7b98049f80>,
1615
- 'github_user': <function github_user at 0x7b9804a020>,
1616
- 'hex_to_int': <function hex_to_int at 0x7b9804a0c0>,
1617
- 'iargv': <function iargv at 0x7b9804a160>,
1618
- 'idir': <function idir at 0x7b9804a200>,
1619
- 'idumps_html': <function idumps_html at 0x7b980da0c0>,
1620
- 'idumps': <function idumps at 0x7b9804a2a0>,
1621
- 'int_to_int': <function int_to_int at 0x7b980da5c0>,
1622
- 'ienumerate': <function ienumerate at 0x7b980bc900>,
1623
- 'ienv': <function ienv at 0x7b980da480>,
1624
- 'iexec': <function iexec at 0x7b980da660>,
1625
- 'iinput': <function iinput at 0x7b980da700>,
1626
- 'ijoin': <function ijoin at 0x7b980da7a0>,
1627
- 'iloads_html': <function iloads_html at 0x7b980daac0>,
1628
- 'iloads': <function iloads at 0x7b9c261260>,
1629
- 'int_to_bin': <function int_to_bin at 0x7b980da840>,
1630
- 'int_to_hex': <function int_to_hex at 0x7b980da8e0>,
1631
- 'int_to_oct': <function int_to_oct at 0x7b980dab60>,
1632
- 'is_valid_url': <function is_valid_url at 0x7b980dade0>,
1633
- 'iopen': <function iopen at 0x7b97e92980>,
1634
- 'iprint': <function iprint at 0x7b97ee9940>,
1635
- 'is_raw_string': <function is_raw_string at 0x7b91d1c220>,
1636
- 'ireplace': <function ireplace at 0x7b97f52700>,
1637
- 'is_html': <function is_html at 0x7b91d1c180>,
1638
- 'iscandir': <function iscandir at 0x7b91d1c2c0>,
1639
- 'isplit': <function isplit at 0x7b91d1c360>,
1640
- 'ivars': <function ivars at 0x7b91d1c400>,
1641
- 'log': <function log at 0x7b91d1c4a0>,
1642
- 'no_indent': <function no_indent at 0x7b91d1c540>,
1643
- 'oct_to_int': <function oct_to_int at 0x7b91d1c5e0>,
1644
- 'password_generator': <function password_generator at 0x7b91d1c680>,
1645
- 'path_to_module': <function path_to_module at 0x7b91d1c720>,
1646
- 'pip_freeze_without_version': <function pip_freeze_without_version at 0x7b91d1c7c0>,
1647
- 'pip_update_pypipr': <function pip_update_pypipr at 0x7b91d1c860>,
1648
- 'poetry_publish': <function poetry_publish at 0x7b91d1c900>,
1649
- 'poetry_update_version': <function poetry_update_version at 0x7b91d1ca40>,
1650
- 'print_dir': <function print_dir at 0x7b91d1cb80>,
1651
- 'print_to_last_line': <function print_to_last_line at 0x7b91d1cc20>,
1652
- 'random_bool': <function random_bool at 0x7b91d1ccc0>,
1653
- 'repath': <function repath at 0x7b91d1ce00>,
1654
- 'restart': <function restart at 0x7b91d1cea0>,
1655
- 'set_timeout': <function set_timeout at 0x7b91d1cf40>,
1656
- 'sets_ordered': <function sets_ordered at 0x7b91d1cfe0>,
1657
- 'sqlite_backup': <function sqlite_backup at 0x7b91d1d080>,
1658
- 'sqlite_delete_table': <function sqlite_delete_table at 0x7b91d1d120>,
1659
- 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x7b91d1d1c0>,
1660
- 'sqlite_get_data_table': <function sqlite_get_data_table at 0x7b91d1d260>,
1661
- 'str_cmp': <function str_cmp at 0x7b91d1db20>,
1662
- 'text_colorize': <function text_colorize at 0x7b91d1dbc0>,
1663
- 'tiles': <function tiles at 0x7b91d1dc60>,
1664
- 'traceback_filename': <function traceback_filename at 0x7b91d1dd00>,
1665
- 'traceback_framename': <function traceback_framename at 0x7b91d1dda0>},
1580
+ {'function': {'avg': <function avg at 0x7df2df0680>,
1581
+ 'get_filemtime': <function get_filemtime at 0x7ded81d3a0>,
1582
+ 'print_colorize': <function print_colorize at 0x7ded81d580>,
1583
+ 'print_log': <function print_log at 0x7dedf774c0>,
1584
+ 'console_run': <function console_run at 0x7ded81d440>,
1585
+ 'auto_reload': <function auto_reload at 0x7ded81cd60>,
1586
+ 'basename': <function basename at 0x7ded81d620>,
1587
+ 'chr_to_int': <function chr_to_int at 0x7ded81dbc0>,
1588
+ 'int_to_chr': <function int_to_chr at 0x7ded81dc60>,
1589
+ 'irange': <function irange at 0x7ded81e160>,
1590
+ 'batchmaker': <function batchmaker at 0x7ded81d940>,
1591
+ 'calculate': <function calculate at 0x7ded81d4e0>,
1592
+ 'batch_calculate': <function batch_calculate at 0x7ded81d6c0>,
1593
+ 'bin_to_int': <function bin_to_int at 0x7ded81d8a0>,
1594
+ 'is_empty': <function is_empty at 0x7ded81ea20>,
1595
+ 'exit_if_empty': <function exit_if_empty at 0x7ded81e8e0>,
1596
+ 'input_char': <function input_char at 0x7ded81e980>,
1597
+ 'choices': <function choices at 0x7ded81eca0>,
1598
+ 'chunk_array': <function chunk_array at 0x7ded81ed40>,
1599
+ 'create_folder': <function create_folder at 0x7ded81ede0>,
1600
+ 'datetime_from_string': <function datetime_from_string at 0x7ded81ee80>,
1601
+ 'datetime_now': <function datetime_now at 0x7ded81ef20>,
1602
+ 'dict_first': <function dict_first at 0x7ded83d1c0>,
1603
+ 'is_iterable': <function is_iterable at 0x7ded83d4e0>,
1604
+ 'to_str': <function to_str at 0x7ded83d620>,
1605
+ 'filter_empty': <function filter_empty at 0x7ded83d3a0>,
1606
+ 'dirname': <function dirname at 0x7ded83d260>,
1607
+ 'django_clear_migrations': <function django_clear_migrations at 0x7ded83d300>,
1608
+ 'django_runserver': <function django_runserver at 0x7ded83d8a0>,
1609
+ 'get_by_index': <function get_by_index at 0x7ded83db20>,
1610
+ 'get_class_method': <function get_class_method at 0x7ded83dbc0>,
1611
+ 'get_filesize': <function get_filesize at 0x7ded83dd00>,
1612
+ 'github_init': <function github_init at 0x7ded83dda0>,
1613
+ 'github_pull': <function github_pull at 0x7ded83de40>,
1614
+ 'github_push': <function github_push at 0x7ded83df80>,
1615
+ 'github_user': <function github_user at 0x7ded83e020>,
1616
+ 'hex_to_int': <function hex_to_int at 0x7ded83e0c0>,
1617
+ 'iargv': <function iargv at 0x7ded83e160>,
1618
+ 'idir': <function idir at 0x7ded83e200>,
1619
+ 'idumps_html': <function idumps_html at 0x7ded8ce0c0>,
1620
+ 'idumps': <function idumps at 0x7ded83e2a0>,
1621
+ 'int_to_int': <function int_to_int at 0x7ded8ce5c0>,
1622
+ 'ienumerate': <function ienumerate at 0x7ded8b4900>,
1623
+ 'ienv': <function ienv at 0x7ded8ce480>,
1624
+ 'iexec': <function iexec at 0x7ded8ce660>,
1625
+ 'iinput': <function iinput at 0x7ded8ce700>,
1626
+ 'ijoin': <function ijoin at 0x7ded8ce7a0>,
1627
+ 'iloads_html': <function iloads_html at 0x7ded8ceac0>,
1628
+ 'iloads': <function iloads at 0x7df38a5260>,
1629
+ 'int_to_bin': <function int_to_bin at 0x7ded8ce840>,
1630
+ 'int_to_hex': <function int_to_hex at 0x7ded8ce8e0>,
1631
+ 'int_to_oct': <function int_to_oct at 0x7ded8ceb60>,
1632
+ 'is_valid_url': <function is_valid_url at 0x7ded8cede0>,
1633
+ 'iopen': <function iopen at 0x7ded69a980>,
1634
+ 'iprint': <function iprint at 0x7ded6f1940>,
1635
+ 'is_raw_string': <function is_raw_string at 0x7dea5d4220>,
1636
+ 'ireplace': <function ireplace at 0x7ded75a700>,
1637
+ 'is_html': <function is_html at 0x7dea5d4180>,
1638
+ 'iscandir': <function iscandir at 0x7dea5d42c0>,
1639
+ 'isplit': <function isplit at 0x7dea5d4360>,
1640
+ 'ivars': <function ivars at 0x7dea5d4400>,
1641
+ 'log': <function log at 0x7dea5d44a0>,
1642
+ 'no_indent': <function no_indent at 0x7dea5d4540>,
1643
+ 'oct_to_int': <function oct_to_int at 0x7dea5d45e0>,
1644
+ 'password_generator': <function password_generator at 0x7dea5d4680>,
1645
+ 'path_to_module': <function path_to_module at 0x7dea5d4720>,
1646
+ 'pip_freeze_without_version': <function pip_freeze_without_version at 0x7dea5d47c0>,
1647
+ 'pip_update_pypipr': <function pip_update_pypipr at 0x7dea5d4860>,
1648
+ 'poetry_publish': <function poetry_publish at 0x7dea5d4900>,
1649
+ 'poetry_update_version': <function poetry_update_version at 0x7dea5d4a40>,
1650
+ 'print_dir': <function print_dir at 0x7dea5d4b80>,
1651
+ 'print_to_last_line': <function print_to_last_line at 0x7dea5d4c20>,
1652
+ 'random_bool': <function random_bool at 0x7dea5d4cc0>,
1653
+ 'repath': <function repath at 0x7dea5d4e00>,
1654
+ 'restart': <function restart at 0x7dea5d4ea0>,
1655
+ 'set_timeout': <function set_timeout at 0x7dea5d4f40>,
1656
+ 'sets_ordered': <function sets_ordered at 0x7dea5d4fe0>,
1657
+ 'sqlite_backup': <function sqlite_backup at 0x7dea5d5080>,
1658
+ 'sqlite_delete_table': <function sqlite_delete_table at 0x7dea5d5120>,
1659
+ 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x7dea5d51c0>,
1660
+ 'sqlite_get_data_table': <function sqlite_get_data_table at 0x7dea5d5260>,
1661
+ 'str_cmp': <function str_cmp at 0x7dea5d5b20>,
1662
+ 'text_colorize': <function text_colorize at 0x7dea5d5bc0>,
1663
+ 'tiles': <function tiles at 0x7dea5d5c60>,
1664
+ 'traceback_filename': <function traceback_filename at 0x7dea5d5d00>,
1665
+ 'traceback_framename': <function traceback_framename at 0x7dea5d5da0>},
1666
1666
  'class': {'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
1667
1667
  'PintUregQuantity': <class 'pint.Quantity'>,
1668
1668
  'RunParallel': <class 'pypipr.RunParallel.RunParallel'>,
1669
1669
  'TextCase': <class 'pypipr.TextCase.TextCase'>},
1670
1670
  'variable': {'LINUX': True,
1671
- 'PintUreg': <pint.registry.UnitRegistry object at 0x7b9b528110>,
1671
+ 'PintUreg': <pint.registry.UnitRegistry object at 0x7df38f7830>,
1672
1672
  'WINDOWS': False},
1673
1673
  'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.12/asyncio/__init__.py'>,
1674
1674
  'colorama': <module 'colorama' from '/data/data/com.termux/files/home/.cache/pypoetry/virtualenvs/pypipr-ZoJyDxLL-py3.12/lib/python3.12/site-packages/colorama/__init__.py'>,
@@ -1763,7 +1763,7 @@ print(password_generator())
1763
1763
 
1764
1764
  Output:
1765
1765
  ```py
1766
- uFP=a;<^
1766
+ ^}IuwReP
1767
1767
  ```
1768
1768
 
1769
1769
  ## path_to_module
@@ -1842,7 +1842,7 @@ Output:
1842
1842
  __enter__ : https:/www.google.com
1843
1843
  __fspath__ : https:/www.google.com
1844
1844
  __getstate__ : (None, {'_raw_paths': ['https://www.google.com/'], '_drv': '', '_root': '', '_tail_cached': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
1845
- __hash__ : 5673470481560303578
1845
+ __hash__ : 4044854816993747545
1846
1846
  __init__ : None
1847
1847
  __init_subclass__ : None
1848
1848
  __module__ : pathlib
@@ -1854,7 +1854,7 @@ Output:
1854
1854
  __subclasshook__ : NotImplemented
1855
1855
  _drv :
1856
1856
  _flavour : <module 'posixpath' (frozen)>
1857
- _hash : 5673470481560303578
1857
+ _hash : 4044854816993747545
1858
1858
  _lines : https:
1859
1859
  www.google.com
1860
1860
  _lines_cached : https:
@@ -1888,7 +1888,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
1888
1888
  is_reserved : False
1889
1889
  is_socket : False
1890
1890
  is_symlink : False
1891
- iterdir : <generator object Path.iterdir at 0x7b91ba7e00>
1891
+ iterdir : <generator object Path.iterdir at 0x7dea41be00>
1892
1892
  joinpath : .
1893
1893
  name :
1894
1894
  parent : https:/www.google.com
@@ -1899,7 +1899,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
1899
1899
  stem :
1900
1900
  suffix :
1901
1901
  suffixes : []
1902
- walk : <generator object Path.walk at 0x7b91defd80>
1902
+ walk : <generator object Path.walk at 0x7dea69fd80>
1903
1903
  with_segments : .
1904
1904
  ```
1905
1905
 
@@ -1979,7 +1979,7 @@ x.cancel()
1979
1979
 
1980
1980
  Output:
1981
1981
  ```py
1982
- <Timer(Thread-2, started 530677452016)>
1982
+ <Timer(Thread-2, started 540775611632)>
1983
1983
  menghentikan timeout 7
1984
1984
  ```
1985
1985
 
@@ -1997,7 +1997,7 @@ print(list(sets_ordered(array)))
1997
1997
 
1998
1998
  Output:
1999
1999
  ```py
2000
- <generator object sets_ordered at 0x7b91a36c20>
2000
+ <generator object sets_ordered at 0x7dea12ac20>
2001
2001
  [2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
2002
2002
  ```
2003
2003
 
@@ -2119,15 +2119,15 @@ print(ExampleComparePerformance().compare_performance())
2119
2119
 
2120
2120
  Output:
2121
2121
  ```py
2122
- {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7b91be4b80>,
2122
+ {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7dea458b80>,
2123
2123
  'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
2124
2124
  'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
2125
2125
  'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
2126
- {'a': 100, 'b': 176, 'c': 127, 'd': 1982}
2127
- {'a': 100, 'b': 172, 'c': 108, 'd': 234}
2128
- {'a': 102, 'b': 158, 'c': 99, 'd': 206}
2129
- {'a': 100, 'b': 173, 'c': 104, 'd': 211}
2130
- {'a': 100, 'b': 161, 'c': 102, 'd': 214}
2126
+ {'a': 168, 'b': 183, 'c': 99, 'd': 165}
2127
+ {'a': 128, 'b': 169, 'c': 99, 'd': 172}
2128
+ {'a': 121, 'b': 170, 'c': 100, 'd': 177}
2129
+ {'a': 133, 'b': 164, 'c': 100, 'd': 160}
2130
+ {'a': 126, 'b': 167, 'c': 100, 'd': 174}
2131
2131
  ```
2132
2132
 
2133
2133
  ## PintUregQuantity
@@ -14,20 +14,18 @@ def dirname(path, indeks=-1, abs_path=None):
14
14
  """
15
15
 
16
16
  paths = path.split(os.sep)
17
-
18
17
  paths = list(filter_empty(paths))
19
18
 
20
19
  if indeks < 0:
21
20
  paths = paths[: len(paths) + indeks]
22
-
23
21
  path = os.sep.join(paths)
24
22
 
25
23
  if abs_path is None:
26
24
  return path
27
25
 
26
+ path = os.path.abspath(path)
28
27
  if abs_path:
29
- return os.path.abspath(path)
30
-
28
+ return path
31
29
  return os.path.relpath(path, os.getcwd())
32
30
 
33
31
  return os.path.dirname(path)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pypipr"
3
- version = "1.0.168"
3
+ version = "1.0.169"
4
4
  description = "The Python Package Index Project"
5
5
  authors = ["ufiapjj <ufiapjj@gmail.com>"]
6
6
  readme = "readme.md"