pypipr 1.0.170__py3-none-any.whl → 1.0.171__py3-none-any.whl

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.
pypipr/dirname.py CHANGED
@@ -1,31 +1,35 @@
1
- import os
2
-
3
- from .filter_empty import filter_empty
1
+ from pathlib import Path
4
2
 
5
3
 
6
4
  def dirname(path, indeks=-1, abs_path=None):
7
5
  """
8
- Mengembalikan nama folder dari path.
6
+ Mengembalikan bagian direktori dari sebuah path berdasarkan indeks.
9
7
  Tanpa trailing slash di akhir.
10
8
 
11
- ```python
12
- print(dirname("/ini/nama/folder/ke/file.py"))
13
- ```
9
+ Args:
10
+ path (str): Path lengkap ke file atau direktori.
11
+ indeks (int): Indeks negatif untuk menentukan seberapa jauh naik ke atas direktori.
12
+ abs_path (bool | None):
13
+ - True untuk path absolut,
14
+ - False untuk path relatif terhadap cwd,
15
+ - None untuk path sesuai pemotongan manual.
16
+
17
+ Returns:
18
+ str: Path direktori hasil ekstraksi.
19
+
20
+ Contoh:
21
+ dirname("/a/b/c/d/e.txt", -2) -> "a/b/c"
14
22
  """
15
-
16
- paths = path.split(os.sep)
17
- paths = list(filter_empty(paths))
18
23
 
19
- if indeks < 0:
20
- paths = paths[: len(paths) + indeks]
21
- path = os.sep.join(paths)
24
+ path_obj = Path(path)
25
+ parts = path_obj.parts
26
+ new_parts = parts[:indeks]
22
27
 
28
+ new_path = Path(*new_parts)
23
29
  if abs_path is None:
24
- return path
30
+ return str(new_path)
25
31
 
26
- path = os.path.abspath(path)
32
+ resolved_path = new_path.resolve()
27
33
  if abs_path:
28
- return path
29
- return os.path.relpath(path, os.getcwd())
30
-
31
- return os.path.dirname(path)
34
+ return str(resolved_path)
35
+ return str(resolved_path.relative_to(Path.cwd()))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pypipr
3
- Version: 1.0.170
3
+ Version: 1.0.171
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 0x75721c6840>
252
- <generator object int_range at 0x75721c6940>
251
+ <generator object int_range at 0x78f8832840>
252
+ <generator object int_range at 0x78f8832940>
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 0x75721db2e0>
284
+ <generator object batchmaker at 0x78f88472e0>
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 0x75721ef300>
338
+ <generator object batch_calculate at 0x78f885b300>
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 0x75721d3100>
444
+ <generator object chunk_array at 0x78f883f100>
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:32:28.405547+07:00
496
- 2025-04-10 15:32:28.407844+00:00
497
- 2025-04-10 08:32:28.410478-07:00
495
+ 2025-04-11 06:31:56.528911+07:00
496
+ 2025-04-10 23:31:56.529820+00:00
497
+ 2025-04-10 16:31:56.534187-07:00
498
498
  ```
499
499
 
500
500
  ## dict_first
@@ -519,6 +519,35 @@ Output:
519
519
  ('key3', 'value3')
520
520
  ```
521
521
 
522
+ ## dirname
523
+
524
+ `dirname(path, indeks=-1, abs_path=None)`
525
+
526
+ Mengembalikan bagian direktori dari sebuah path berdasarkan indeks.
527
+ Tanpa trailing slash di akhir.
528
+
529
+ Args:
530
+ path (str): Path lengkap ke file atau direktori.
531
+ indeks (int): Indeks negatif untuk menentukan seberapa jauh naik ke atas direktori.
532
+ abs_path (bool | None):
533
+ - True untuk path absolut,
534
+ - False untuk path relatif terhadap cwd,
535
+ - None untuk path sesuai pemotongan manual.
536
+
537
+ Returns:
538
+ str: Path direktori hasil ekstraksi.
539
+
540
+ Contoh:
541
+ dirname("/a/b/c/d/e.txt", -2) -> "a/b/c"
542
+
543
+ ## django_clear_migrations
544
+
545
+ `django_clear_migrations(appname)`
546
+
547
+ ## django_runserver
548
+
549
+ `django_runserver()`
550
+
522
551
  ## is_iterable
523
552
 
524
553
  `is_iterable(var, str_is_iterable=False)`
@@ -584,34 +613,10 @@ iprint(filter_empty(var))
584
613
 
585
614
  Output:
586
615
  ```py
587
- <generator object filter_empty at 0x75721d32e0>
616
+ <generator object filter_empty at 0x78f883f2e0>
588
617
  [1, '0', True, {}, ['eee']]
589
618
  ```
590
619
 
591
- ## dirname
592
-
593
- `dirname(path, indeks=-1, abs_path=None)`
594
-
595
- Mengembalikan nama folder dari path.
596
- Tanpa trailing slash di akhir.
597
-
598
- ```python
599
- print(dirname("/ini/nama/folder/ke/file.py"))
600
- ```
601
-
602
- Output:
603
- ```py
604
- ini/nama/folder/ke
605
- ```
606
-
607
- ## django_clear_migrations
608
-
609
- `django_clear_migrations(appname)`
610
-
611
- ## django_runserver
612
-
613
- `django_runserver()`
614
-
615
620
  ## get_by_index
616
621
 
617
622
  `get_by_index(obj, index, on_error=None)`
@@ -655,8 +660,8 @@ print(list(get_class_method(ExampleGetClassMethod)))
655
660
 
656
661
  Output:
657
662
  ```py
658
- <generator object get_class_method at 0x75721efe60>
659
- [<function ExampleGetClassMethod.a at 0x7572242de0>, <function ExampleGetClassMethod.b at 0x7572242c00>, <function ExampleGetClassMethod.c at 0x7572242ca0>, <function ExampleGetClassMethod.d at 0x7572242e80>]
663
+ <generator object get_class_method at 0x78f885bd80>
664
+ [<function ExampleGetClassMethod.a at 0x78f8532de0>, <function ExampleGetClassMethod.b at 0x78f8532ca0>, <function ExampleGetClassMethod.c at 0x78f8532d40>, <function ExampleGetClassMethod.d at 0x78f8532f20>]
660
665
  ```
661
666
 
662
667
  ## get_filesize
@@ -1084,7 +1089,7 @@ Output:
1084
1089
 
1085
1090
  ## ienumerate
1086
1091
 
1087
- `ienumerate(iterator, start=0, key=<function int_to_int at 0x75764265c0>)`
1092
+ `ienumerate(iterator, start=0, key=<function int_to_int at 0x78fcee2660>)`
1088
1093
 
1089
1094
  meningkatkan fungsi enumerate() pada python
1090
1095
  untuk key menggunakan huruf dan basis angka lainnya.
@@ -1097,7 +1102,7 @@ iprint(ienumerate(it, key=int_to_chr))
1097
1102
 
1098
1103
  Output:
1099
1104
  ```py
1100
- <generator object ienumerate at 0x75721d32e0>
1105
+ <generator object ienumerate at 0x78f883f2e0>
1101
1106
  [('a', 'ini'), ('b', 'contoh'), ('c', 'enumerator')]
1102
1107
  ```
1103
1108
 
@@ -1174,7 +1179,7 @@ print(ijoin(10, ' '))
1174
1179
 
1175
1180
  Output:
1176
1181
  ```py
1177
- asd, weq, qweqw, dfs
1182
+ weq, dfs, qweqw, asd
1178
1183
  ,ini,path,seperti,url,
1179
1184
  ini,path,seperti,url
1180
1185
  <li>satu</li>
@@ -1219,10 +1224,10 @@ pprint.pprint(iloads_html(iopen("https://harga-emas.org/1-gram/")), depth=10)
1219
1224
  Output:
1220
1225
  ```py
1221
1226
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1222
- [['Harga Emas Hari Ini - Kamis, 10 April 2025'],
1223
- ['Spot Emas USD↑3.167,57 (+76,53) / oz',
1227
+ [['Harga Emas Hari Ini - Jumat, 11 April 2025'],
1228
+ ['Spot Emas USD↑3.186,08 (+22,94) / oz',
1224
1229
  'Kurs IDR1,00 / USD',
1225
- 'Emas IDR↑102 (+2) / gr'],
1230
+ 'Emas IDR↑102 (+1) / gr'],
1226
1231
  ['LM Antam (Jual)↓1.513.000 (-30.000) / gr',
1227
1232
  'LM Antam (Beli)↓1.366.000 (-30.000) / gr']],
1228
1233
  [['Harga Emas Hari Ini'],
@@ -1245,10 +1250,10 @@ Output:
1245
1250
  'Update harga LM Pegadaian :31 Desember 1969']],
1246
1251
  [['Spot Harga Emas Hari Ini (Market Open)'],
1247
1252
  ['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
1248
- ['Ounce\xa0(oz)', '3.167,57 (+76,53)', '1,00', '3.168'],
1249
- ['Gram\xa0(gr)', '101,84', '1,00', '102 (+2)'],
1250
- ['Kilogram\xa0(kg)', '101.839,74', '1,00', '101.840'],
1251
- ['Update harga emas :10 April 2025, pukul 22:32Update kurs :14 Maret 2025, '
1253
+ ['Ounce\xa0(oz)', '3.186,08 (+22,94)', '1,00', '3.186'],
1254
+ ['Gram\xa0(gr)', '102,43', '1,00', '102 (+1)'],
1255
+ ['Kilogram\xa0(kg)', '102.434,85', '1,00', '102.435'],
1256
+ ['Update harga emas :11 April 2025, pukul 06:31Update kurs :14 Maret 2025, '
1252
1257
  'pukul 10:13']],
1253
1258
  [['Gram', 'UBS Gold 99.99%'],
1254
1259
  ['Jual', 'Beli'],
@@ -1286,36 +1291,36 @@ Output:
1286
1291
  ['Unit', 'USD', 'IDR'],
1287
1292
  ['Angka', '+/-', 'Angka', '+/-'],
1288
1293
  ['Hari Ini', 'Kurs', '', '', '1', '%'],
1289
- ['oz', '3.091,04', '+76,53+2,48%', '3.091', '+77+2,48%'],
1290
- ['gr', '99,38', '+2,46+2,48%', '99', '+2+2,48%'],
1291
- ['30 Hari', 'Kurs', '', '', '16.326', '-16.325-99,99%'],
1292
- ['oz', '2.916,73', '+250,84+8,60%', '47.618.534', '-47.615.366-99,99%'],
1293
- ['gr', '93,78', '+8,06+8,60%', '1.530.971', '-1.530.870-99,99%'],
1294
- ['2 Bulan', 'Kurs', '', '', '16.330', '-16.329-99,99%'],
1295
- ['oz', '2.861,26', '+306,31+10,71%', '46.724.376', '-46.721.208-99,99%'],
1296
- ['gr', '91,99', '+9,85+10,71', '1.502.224', '-1.502.122-99,99%'],
1294
+ ['oz', '3.163,14', '+22,94+0,73%', '3.163', '+23+0,73%'],
1295
+ ['gr', '101,70', '+0,74+0,73%', '102', '+1+0,73%'],
1296
+ ['30 Hari', 'Kurs', '', '', '16.430', '-16.429-99,99%'],
1297
+ ['oz', '2.935,17', '+250,91+8,55%', '48.224.843', '-48.221.657-99,99%'],
1298
+ ['gr', '94,37', '+8,07+8,55%', '1.550.465', '-1.550.362-99,99%'],
1299
+ ['2 Bulan', 'Kurs', '', '', '16.325', '-16.324-99,99%'],
1300
+ ['oz', '2.900,79', '+285,29+9,83%', '47.355.426', '-47.352.240-99,99%'],
1301
+ ['gr', '93,26', '+9,17+9,83', '1.522.512', '-1.522.410-99,99%'],
1297
1302
  ['6 Bulan', 'Kurs', '', '', '15.658', '-15.657-99,99%'],
1298
- ['oz', '2.656,78', '+510,79+19,23%', '41.599.861', '-41.596.694-99,99%'],
1299
- ['gr', '85,42', '+16,42+19,23%', '1.337.467', '-1.337.365-99,99%'],
1303
+ ['oz', '2.656,78', '+529,30+19,92%', '41.599.861', '-41.596.675-99,99%'],
1304
+ ['gr', '85,42', '+17,02+19,92%', '1.337.467', '-1.337.364-99,99%'],
1300
1305
  ['1 Tahun', 'Kurs', '', '', '15.907', '-15.906-99,99%'],
1301
- ['oz', '2.338,57', '+829,00+35,45%', '37.199.633', '-37.196.465-99,99%'],
1302
- ['gr', '75,19', '+26,65+35,45%', '1.195.996', '-1.195.894-99,99%'],
1306
+ ['oz', '2.349,73', '+836,35+35,59%', '37.377.155', '-37.373.969-99,99%'],
1307
+ ['gr', '75,55', '+26,89+35,59%', '1.201.703', '-1.201.601-99,99%'],
1303
1308
  ['2 Tahun', 'Kurs', '', '', '15.731', '-15.730-99,99%'],
1304
- ['oz', '1.823,86', '+1.343,71+73,67%', '28.691.142', '-28.687.974-99,99%'],
1305
- ['gr', '58,64', '+43,20+73,67%', '922.442', '-922.340-99,99%'],
1306
- ['3 Tahun', 'Kurs', '', '', '14.365', '-14.364-99,99%'],
1307
- ['oz', '1.942,64', '+1.224,93+63,05%', '27.906.043', '-27.902.875-99,99%'],
1308
- ['gr', '62,46', '+39,38+63,05%', '897.200', '-897.098-99,99%'],
1309
+ ['oz', '1.823,86', '+1.362,22+74,69%', '28.691.142', '-28.687.956-99,99%'],
1310
+ ['gr', '58,64', '+43,80+74,69%', '922.442', '-922.339-99,99%'],
1311
+ ['3 Tahun', 'Kurs', '', '', '14.370', '-14.369-99,99%'],
1312
+ ['oz', '1.973,79', '+1.212,29+61,42%', '28.363.362', '-28.360.176-99,99%'],
1313
+ ['gr', '63,46', '+38,98+61,42%', '911.903', '-911.801-99,99%'],
1309
1314
  ['5 Tahun', 'Kurs', '', '', '16.241', '-16.240-99,99%'],
1310
- ['oz', '1.688,78', '+1.478,79+87,57%', '27.427.493', '-27.424.325-99,99%'],
1311
- ['gr', '54,30', '+47,54+87,57%', '881.814', '-881.713-99,99%']])
1315
+ ['oz', '1.688,78', '+1.497,30+88,66%', '27.427.493', '-27.424.307-99,99%'],
1316
+ ['gr', '54,30', '+48,14+88,66%', '881.814', '-881.712-99,99%']])
1312
1317
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1313
1318
  [[''],
1314
1319
  ['Emas 24 KaratHarga Emas 1 Gram', ''],
1315
- ['USD', '101,84↑', '+2,46+2,48%'],
1320
+ ['USD', '102,43↑', '+0,73+0,72%'],
1316
1321
  ['KURS', '16.355,25↓', '%'],
1317
- ['IDR', '1.665.614,41↑', '+40.242,03+2,48%'],
1318
- ['Kamis, 10 April 2025 22:32']],
1322
+ ['IDR', '1.675.347,59↑', '+12.062,62+0,73%'],
1323
+ ['Jumat, 11 April 2025 06:31']],
1319
1324
  [[''],
1320
1325
  ['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
1321
1326
  'Hari Ini',
@@ -1326,25 +1331,25 @@ Output:
1326
1331
  '']],
1327
1332
  [['Pergerakkan Harga Emas 1 Gram'],
1328
1333
  ['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
1329
- ['USD', '99,38', '99,38 - 101,84', '100,61'],
1334
+ ['USD', '101,70', '101,70 - 102,43', '102,07'],
1330
1335
  ['KURS', '16.355,25', '16.355,25 - 16.355,25', '16.355,25'],
1331
- ['IDR', '1.625.372,38', '1.625.372,38 - 1.665.614,41', '1.645.493,40'],
1336
+ ['IDR', '1.663.284,97', '1.663.284,97 - 1.675.347,59', '1.669.316,28'],
1332
1337
  [''],
1333
1338
  ['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
1334
- ['USD', '84,42', '84,38 - 101,84', '+17,42 (20,63%)'],
1339
+ ['USD', '84,42', '84,38 - 102,43', '+18,01 (21,33%)'],
1335
1340
  ['KURS', '16.220,76', '16.156,70 - 16.387,00', '+134,49 (0,83%)'],
1336
1341
  ['IDR',
1337
1342
  '1.369.306,75',
1338
- '1.368.695,74 - 1.665.614,41',
1339
- '+296.307,66 (21,64%)'],
1343
+ '1.368.695,74 - 1.675.347,59',
1344
+ '+306.040,84 (22,35%)'],
1340
1345
  [''],
1341
1346
  ['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
1342
- ['USD', '75,37', '73,75 - 101,84', '+26,47 (35,12%)'],
1343
- ['KURS', '15.877,00', '15.100,00 - 16.509,65', '+478,25 (3,01%)'],
1347
+ ['USD', '75,19', '73,75 - 102,43', '+27,24 (36,23%)'],
1348
+ ['KURS', '15.969,60', '15.100,00 - 16.509,65', '+385,65 (2,41%)'],
1344
1349
  ['IDR',
1345
- '1.196.609,14',
1346
- '1.181.943,88 - 1.665.614,41',
1347
- '+469.005,27 (39,19%)']])
1350
+ '1.200.702,67',
1351
+ '1.181.943,88 - 1.675.347,59',
1352
+ '+474.644,92 (39,53%)']])
1348
1353
  ```
1349
1354
 
1350
1355
  ## iloads
@@ -1474,7 +1479,7 @@ Output:
1474
1479
  ```py
1475
1480
  8
1476
1481
  ['mana', 'aja']
1477
- [<Element a at 0x7571ec9360>, <Element a at 0x7571efbfc0>, <Element a at 0x7571f20050>, <Element a at 0x7571f200a0>, <Element a at 0x7571f200f0>, <Element a at 0x7571f20140>, <Element a at 0x7571f20190>, <Element a at 0x7571f201e0>, <Element a at 0x7571f20230>, <Element a at 0x7571f20280>, <Element a at 0x7571f202d0>, <Element a at 0x7571f20320>, <Element a at 0x7571f20370>, <Element a at 0x7571f203c0>, <Element a at 0x7571f20410>, <Element a at 0x7571f20460>, <Element a at 0x7571f204b0>, <Element a at 0x7571f20500>]
1482
+ [<Element a at 0x78f853d220>, <Element a at 0x78f8577e80>, <Element a at 0x78f8577ed0>, <Element a at 0x78f8577f20>, <Element a at 0x78f8577f70>, <Element a at 0x78f8577fc0>, <Element a at 0x78f8594050>, <Element a at 0x78f85940a0>, <Element a at 0x78f85940f0>, <Element a at 0x78f8594140>, <Element a at 0x78f8594190>, <Element a at 0x78f85941e0>, <Element a at 0x78f8594230>, <Element a at 0x78f8594280>, <Element a at 0x78f85942d0>, <Element a at 0x78f8594320>, <Element a at 0x78f8594370>, <Element a at 0x78f85943c0>]
1478
1483
  False
1479
1484
  ```
1480
1485
 
@@ -1544,7 +1549,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
1544
1549
 
1545
1550
  Output:
1546
1551
  ```py
1547
- <generator object iscandir at 0x75721d31f0>
1552
+ <generator object iscandir at 0x78f883f1f0>
1548
1553
  [PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
1549
1554
  ```
1550
1555
 
@@ -1577,98 +1582,98 @@ iprint(ivars(__import__('pypipr')))
1577
1582
 
1578
1583
  Output:
1579
1584
  ```py
1580
- {'function': {'avg': <function avg at 0x757ad68680>,
1581
- 'get_filemtime': <function get_filemtime at 0x75763793a0>,
1582
- 'print_colorize': <function print_colorize at 0x7576379580>,
1583
- 'print_log': <function print_log at 0x7576ab34c0>,
1584
- 'console_run': <function console_run at 0x7576379440>,
1585
- 'auto_reload': <function auto_reload at 0x7576378d60>,
1586
- 'basename': <function basename at 0x7576379620>,
1587
- 'chr_to_int': <function chr_to_int at 0x7576379bc0>,
1588
- 'int_to_chr': <function int_to_chr at 0x7576379c60>,
1589
- 'irange': <function irange at 0x757637a160>,
1590
- 'batchmaker': <function batchmaker at 0x7576379940>,
1591
- 'calculate': <function calculate at 0x75763794e0>,
1592
- 'batch_calculate': <function batch_calculate at 0x75763796c0>,
1593
- 'bin_to_int': <function bin_to_int at 0x75763798a0>,
1594
- 'is_empty': <function is_empty at 0x757637aa20>,
1595
- 'exit_if_empty': <function exit_if_empty at 0x757637a8e0>,
1596
- 'input_char': <function input_char at 0x757637a980>,
1597
- 'choices': <function choices at 0x757637aca0>,
1598
- 'chunk_array': <function chunk_array at 0x757637ad40>,
1599
- 'create_folder': <function create_folder at 0x757637ade0>,
1600
- 'datetime_from_string': <function datetime_from_string at 0x757637ae80>,
1601
- 'datetime_now': <function datetime_now at 0x757637af20>,
1602
- 'dict_first': <function dict_first at 0x75763991c0>,
1603
- 'is_iterable': <function is_iterable at 0x75763994e0>,
1604
- 'to_str': <function to_str at 0x7576399620>,
1605
- 'filter_empty': <function filter_empty at 0x75763993a0>,
1606
- 'dirname': <function dirname at 0x7576399260>,
1607
- 'django_clear_migrations': <function django_clear_migrations at 0x7576399300>,
1608
- 'django_runserver': <function django_runserver at 0x75763998a0>,
1609
- 'get_by_index': <function get_by_index at 0x7576399b20>,
1610
- 'get_class_method': <function get_class_method at 0x7576399bc0>,
1611
- 'get_filesize': <function get_filesize at 0x7576399d00>,
1612
- 'github_init': <function github_init at 0x7576399da0>,
1613
- 'github_pull': <function github_pull at 0x7576399e40>,
1614
- 'github_push': <function github_push at 0x7576399f80>,
1615
- 'github_user': <function github_user at 0x757639a020>,
1616
- 'hex_to_int': <function hex_to_int at 0x757639a0c0>,
1617
- 'iargv': <function iargv at 0x757639a160>,
1618
- 'idir': <function idir at 0x757639a200>,
1619
- 'idumps_html': <function idumps_html at 0x75764260c0>,
1620
- 'idumps': <function idumps at 0x757639a2a0>,
1621
- 'int_to_int': <function int_to_int at 0x75764265c0>,
1622
- 'ienumerate': <function ienumerate at 0x757640c900>,
1623
- 'ienv': <function ienv at 0x7576426480>,
1624
- 'iexec': <function iexec at 0x7576426660>,
1625
- 'iinput': <function iinput at 0x7576426700>,
1626
- 'ijoin': <function ijoin at 0x75764267a0>,
1627
- 'iloads_html': <function iloads_html at 0x7576426ac0>,
1628
- 'iloads': <function iloads at 0x757b161260>,
1629
- 'int_to_bin': <function int_to_bin at 0x7576426840>,
1630
- 'int_to_hex': <function int_to_hex at 0x75764268e0>,
1631
- 'int_to_oct': <function int_to_oct at 0x7576426b60>,
1632
- 'is_valid_url': <function is_valid_url at 0x7576426de0>,
1633
- 'iopen': <function iopen at 0x75761e2980>,
1634
- 'iprint': <function iprint at 0x7576239940>,
1635
- 'is_raw_string': <function is_raw_string at 0x7572394220>,
1636
- 'ireplace': <function ireplace at 0x75762a6700>,
1637
- 'is_html': <function is_html at 0x7572394180>,
1638
- 'iscandir': <function iscandir at 0x75723942c0>,
1639
- 'isplit': <function isplit at 0x7572394360>,
1640
- 'ivars': <function ivars at 0x7572394400>,
1641
- 'log': <function log at 0x75723944a0>,
1642
- 'no_indent': <function no_indent at 0x7572394540>,
1643
- 'oct_to_int': <function oct_to_int at 0x75723945e0>,
1644
- 'password_generator': <function password_generator at 0x7572394680>,
1645
- 'path_to_module': <function path_to_module at 0x7572394720>,
1646
- 'pip_freeze_without_version': <function pip_freeze_without_version at 0x75723947c0>,
1647
- 'pip_update_pypipr': <function pip_update_pypipr at 0x7572394860>,
1648
- 'poetry_publish': <function poetry_publish at 0x7572394900>,
1649
- 'poetry_update_version': <function poetry_update_version at 0x7572394a40>,
1650
- 'print_dir': <function print_dir at 0x7572394b80>,
1651
- 'print_to_last_line': <function print_to_last_line at 0x7572394c20>,
1652
- 'random_bool': <function random_bool at 0x7572394cc0>,
1653
- 'repath': <function repath at 0x7572394e00>,
1654
- 'restart': <function restart at 0x7572394ea0>,
1655
- 'set_timeout': <function set_timeout at 0x7572394f40>,
1656
- 'sets_ordered': <function sets_ordered at 0x7572394fe0>,
1657
- 'sqlite_backup': <function sqlite_backup at 0x7572395080>,
1658
- 'sqlite_delete_table': <function sqlite_delete_table at 0x7572395120>,
1659
- 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x75723951c0>,
1660
- 'sqlite_get_data_table': <function sqlite_get_data_table at 0x7572395260>,
1661
- 'str_cmp': <function str_cmp at 0x7572395b20>,
1662
- 'text_colorize': <function text_colorize at 0x7572395bc0>,
1663
- 'tiles': <function tiles at 0x7572395c60>,
1664
- 'traceback_filename': <function traceback_filename at 0x7572395d00>,
1665
- 'traceback_framename': <function traceback_framename at 0x7572395da0>},
1585
+ {'function': {'avg': <function avg at 0x79025e8680>,
1586
+ 'get_filemtime': <function get_filemtime at 0x78fce353a0>,
1587
+ 'print_colorize': <function print_colorize at 0x78fce35580>,
1588
+ 'print_log': <function print_log at 0x78fd5534c0>,
1589
+ 'console_run': <function console_run at 0x78fce35440>,
1590
+ 'auto_reload': <function auto_reload at 0x78fce34d60>,
1591
+ 'basename': <function basename at 0x78fce35620>,
1592
+ 'chr_to_int': <function chr_to_int at 0x78fce35bc0>,
1593
+ 'int_to_chr': <function int_to_chr at 0x78fce35c60>,
1594
+ 'irange': <function irange at 0x78fce36160>,
1595
+ 'batchmaker': <function batchmaker at 0x78fce35940>,
1596
+ 'calculate': <function calculate at 0x78fce354e0>,
1597
+ 'batch_calculate': <function batch_calculate at 0x78fce356c0>,
1598
+ 'bin_to_int': <function bin_to_int at 0x78fce358a0>,
1599
+ 'is_empty': <function is_empty at 0x78fce36a20>,
1600
+ 'exit_if_empty': <function exit_if_empty at 0x78fce368e0>,
1601
+ 'input_char': <function input_char at 0x78fce36980>,
1602
+ 'choices': <function choices at 0x78fce36ca0>,
1603
+ 'chunk_array': <function chunk_array at 0x78fce36d40>,
1604
+ 'create_folder': <function create_folder at 0x78fce36de0>,
1605
+ 'datetime_from_string': <function datetime_from_string at 0x78fce36e80>,
1606
+ 'datetime_now': <function datetime_now at 0x78fce36f20>,
1607
+ 'dict_first': <function dict_first at 0x78fce551c0>,
1608
+ 'dirname': <function dirname at 0x78fce55300>,
1609
+ 'django_clear_migrations': <function django_clear_migrations at 0x78fce553a0>,
1610
+ 'django_runserver': <function django_runserver at 0x78fce556c0>,
1611
+ 'is_iterable': <function is_iterable at 0x78fce55a80>,
1612
+ 'to_str': <function to_str at 0x78fce55bc0>,
1613
+ 'filter_empty': <function filter_empty at 0x78fce55940>,
1614
+ 'get_by_index': <function get_by_index at 0x78fce55b20>,
1615
+ 'get_class_method': <function get_class_method at 0x78fce55c60>,
1616
+ 'get_filesize': <function get_filesize at 0x78fce55da0>,
1617
+ 'github_init': <function github_init at 0x78fce55e40>,
1618
+ 'github_pull': <function github_pull at 0x78fce55ee0>,
1619
+ 'github_push': <function github_push at 0x78fce56020>,
1620
+ 'github_user': <function github_user at 0x78fce560c0>,
1621
+ 'hex_to_int': <function hex_to_int at 0x78fce56160>,
1622
+ 'iargv': <function iargv at 0x78fce56200>,
1623
+ 'idir': <function idir at 0x78fce562a0>,
1624
+ 'idumps_html': <function idumps_html at 0x78fcee2160>,
1625
+ 'idumps': <function idumps at 0x78fce56340>,
1626
+ 'int_to_int': <function int_to_int at 0x78fcee2660>,
1627
+ 'ienumerate': <function ienumerate at 0x78fcec49a0>,
1628
+ 'ienv': <function ienv at 0x78fcee2520>,
1629
+ 'iexec': <function iexec at 0x78fcee2700>,
1630
+ 'iinput': <function iinput at 0x78fcee27a0>,
1631
+ 'ijoin': <function ijoin at 0x78fcee2840>,
1632
+ 'iloads_html': <function iloads_html at 0x78fcee2b60>,
1633
+ 'iloads': <function iloads at 0x7903061260>,
1634
+ 'int_to_bin': <function int_to_bin at 0x78fcee28e0>,
1635
+ 'int_to_hex': <function int_to_hex at 0x78fcee2980>,
1636
+ 'int_to_oct': <function int_to_oct at 0x78fcee2c00>,
1637
+ 'is_valid_url': <function is_valid_url at 0x78fcee2e80>,
1638
+ 'iopen': <function iopen at 0x78fcc96a20>,
1639
+ 'iprint': <function iprint at 0x78fcce99e0>,
1640
+ 'is_raw_string': <function is_raw_string at 0x78f8a0c2c0>,
1641
+ 'ireplace': <function ireplace at 0x78f89f67a0>,
1642
+ 'is_html': <function is_html at 0x78f8a0c220>,
1643
+ 'iscandir': <function iscandir at 0x78f8a0c360>,
1644
+ 'isplit': <function isplit at 0x78f8a0c400>,
1645
+ 'ivars': <function ivars at 0x78f8a0c4a0>,
1646
+ 'log': <function log at 0x78f8a0c540>,
1647
+ 'no_indent': <function no_indent at 0x78f8a0c5e0>,
1648
+ 'oct_to_int': <function oct_to_int at 0x78f8a0c680>,
1649
+ 'password_generator': <function password_generator at 0x78f8a0c720>,
1650
+ 'path_to_module': <function path_to_module at 0x78f8a0c7c0>,
1651
+ 'pip_freeze_without_version': <function pip_freeze_without_version at 0x78f8a0c860>,
1652
+ 'pip_update_pypipr': <function pip_update_pypipr at 0x78f8a0c900>,
1653
+ 'poetry_publish': <function poetry_publish at 0x78f8a0c9a0>,
1654
+ 'poetry_update_version': <function poetry_update_version at 0x78f8a0cae0>,
1655
+ 'print_dir': <function print_dir at 0x78f8a0cc20>,
1656
+ 'print_to_last_line': <function print_to_last_line at 0x78f8a0ccc0>,
1657
+ 'random_bool': <function random_bool at 0x78f8a0cd60>,
1658
+ 'repath': <function repath at 0x78f8a0cea0>,
1659
+ 'restart': <function restart at 0x78f8a0cf40>,
1660
+ 'set_timeout': <function set_timeout at 0x78f8a0cfe0>,
1661
+ 'sets_ordered': <function sets_ordered at 0x78f8a0d080>,
1662
+ 'sqlite_backup': <function sqlite_backup at 0x78f8a0d120>,
1663
+ 'sqlite_delete_table': <function sqlite_delete_table at 0x78f8a0d1c0>,
1664
+ 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x78f8a0d260>,
1665
+ 'sqlite_get_data_table': <function sqlite_get_data_table at 0x78f8a0d300>,
1666
+ 'str_cmp': <function str_cmp at 0x78f8a0dbc0>,
1667
+ 'text_colorize': <function text_colorize at 0x78f8a0dc60>,
1668
+ 'tiles': <function tiles at 0x78f8a0dd00>,
1669
+ 'traceback_filename': <function traceback_filename at 0x78f8a0dda0>,
1670
+ 'traceback_framename': <function traceback_framename at 0x78f8a0de40>},
1666
1671
  'class': {'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
1667
1672
  'PintUregQuantity': <class 'pint.Quantity'>,
1668
1673
  'RunParallel': <class 'pypipr.RunParallel.RunParallel'>,
1669
1674
  'TextCase': <class 'pypipr.TextCase.TextCase'>},
1670
1675
  'variable': {'LINUX': True,
1671
- 'PintUreg': <pint.registry.UnitRegistry object at 0x757b1977a0>,
1676
+ 'PintUreg': <pint.registry.UnitRegistry object at 0x78fd53bc50>,
1672
1677
  'WINDOWS': False},
1673
1678
  'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.12/asyncio/__init__.py'>,
1674
1679
  '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 +1768,7 @@ print(password_generator())
1763
1768
 
1764
1769
  Output:
1765
1770
  ```py
1766
- :svh0IIu
1771
+ I}=EB%ID
1767
1772
  ```
1768
1773
 
1769
1774
  ## path_to_module
@@ -1842,7 +1847,7 @@ Output:
1842
1847
  __enter__ : https:/www.google.com
1843
1848
  __fspath__ : https:/www.google.com
1844
1849
  __getstate__ : (None, {'_raw_paths': ['https://www.google.com/'], '_drv': '', '_root': '', '_tail_cached': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
1845
- __hash__ : 9008990908881599149
1850
+ __hash__ : 7360677572712003235
1846
1851
  __init__ : None
1847
1852
  __init_subclass__ : None
1848
1853
  __module__ : pathlib
@@ -1854,7 +1859,7 @@ Output:
1854
1859
  __subclasshook__ : NotImplemented
1855
1860
  _drv :
1856
1861
  _flavour : <module 'posixpath' (frozen)>
1857
- _hash : 9008990908881599149
1862
+ _hash : 7360677572712003235
1858
1863
  _lines : https:
1859
1864
  www.google.com
1860
1865
  _lines_cached : https:
@@ -1888,7 +1893,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
1888
1893
  is_reserved : False
1889
1894
  is_socket : False
1890
1895
  is_symlink : False
1891
- iterdir : <generator object Path.iterdir at 0x75721dfe00>
1896
+ iterdir : <generator object Path.iterdir at 0x78f884be00>
1892
1897
  joinpath : .
1893
1898
  name :
1894
1899
  parent : https:/www.google.com
@@ -1899,7 +1904,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
1899
1904
  stem :
1900
1905
  suffix :
1901
1906
  suffixes : []
1902
- walk : <generator object Path.walk at 0x757245bd80>
1907
+ walk : <generator object Path.walk at 0x78f8ad3d80>
1903
1908
  with_segments : .
1904
1909
  ```
1905
1910
 
@@ -1941,7 +1946,7 @@ print(random_bool())
1941
1946
 
1942
1947
  Output:
1943
1948
  ```py
1944
- False
1949
+ True
1945
1950
  ```
1946
1951
 
1947
1952
  ## repath
@@ -1979,7 +1984,7 @@ x.cancel()
1979
1984
 
1980
1985
  Output:
1981
1986
  ```py
1982
- <Timer(Thread-2, started 504400248048)>
1987
+ <Timer(Thread-2, started 519539928304)>
1983
1988
  menghentikan timeout 7
1984
1989
  ```
1985
1990
 
@@ -1997,7 +2002,7 @@ print(list(sets_ordered(array)))
1997
2002
 
1998
2003
  Output:
1999
2004
  ```py
2000
- <generator object sets_ordered at 0x7571ee2c20>
2005
+ <generator object sets_ordered at 0x78f8556c20>
2001
2006
  [2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
2002
2007
  ```
2003
2008
 
@@ -2119,15 +2124,15 @@ print(ExampleComparePerformance().compare_performance())
2119
2124
 
2120
2125
  Output:
2121
2126
  ```py
2122
- {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7572218b80>,
2127
+ {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x78f8894ac0>,
2123
2128
  'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
2124
2129
  'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
2125
2130
  'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
2126
- {'a': 124, 'b': 164, 'c': 100, 'd': 281}
2127
- {'a': 102, 'b': 158, 'c': 100, 'd': 229}
2128
- {'a': 100, 'b': 154, 'c': 100, 'd': 208}
2129
- {'a': 103, 'b': 156, 'c': 100, 'd': 212}
2130
- {'a': 100, 'b': 155, 'c': 100, 'd': 215}
2131
+ {'a': 99, 'b': 182, 'c': 104, 'd': 321}
2132
+ {'a': 100, 'b': 169, 'c': 109, 'd': 219}
2133
+ {'a': 104, 'b': 170, 'c': 100, 'd': 212}
2134
+ {'a': 100, 'b': 165, 'c': 103, 'd': 209}
2135
+ {'a': 101, 'b': 167, 'c': 100, 'd': 206}
2131
2136
  ```
2132
2137
 
2133
2138
  ## PintUregQuantity
@@ -22,7 +22,7 @@ pypipr/create_folder.py,sha256=YgK3Rhg-v8314VNSgUvq7LgyLHlpHGBYXaa1RgRsbxo,523
22
22
  pypipr/datetime_from_string.py,sha256=-GJ_QHD1feUMX0o8nwCPHGflDPXr84ovN4Awnk1T9r8,466
23
23
  pypipr/datetime_now.py,sha256=YEaatUOp0KBWYRhOFnxnVW0X7C1XEx3dpdBEn5Vwy9w,379
24
24
  pypipr/dict_first.py,sha256=X_pSaY0DLGZJSR2zJBa17yqbwAFLJrVpzb2gxR5wzZg,377
25
- pypipr/dirname.py,sha256=hzkzFqHaKW4kxe8ouI3SPpWBFro3mrPkhd8wndwmd2U,628
25
+ pypipr/dirname.py,sha256=Z2BZTb7cXCbXJfROPwuyHtcMsrp_aIeBisFHeb0n5Ww,973
26
26
  pypipr/django_clear_migrations.py,sha256=Sjb7qq7OZc1_iTNcR2mtRY6k2um9Jr6X4A4PMqOqnCU,302
27
27
  pypipr/django_runserver.py,sha256=puzQajQ_RdLqEZFplKKEKsfhaG-IxHGW4CXZc80EnA8,734
28
28
  pypipr/exit_if_empty.py,sha256=2qUqmYPSkr1NtKPqIN7BAc-WGtcmPPAw8AdO8HirOv8,321
@@ -93,7 +93,7 @@ pypipr/tiles.py,sha256=uSEYqvjBQHIz7pZKtdta1XwFhGrMFieMHOH2DKrlcXc,328
93
93
  pypipr/to_str.py,sha256=vSuspf-ZQldf4enkssa9XH0WMjkmWug51G9ia0K5occ,597
94
94
  pypipr/traceback_filename.py,sha256=4o85J0N8clI0cM6NTGcKZ4zxR9yS7W2NS_bz3J2_PnY,288
95
95
  pypipr/traceback_framename.py,sha256=_mullrAZzMhBFEFVCgdsmkYQmYUkd58o-J-HuMntKyc,291
96
- pypipr-1.0.170.dist-info/METADATA,sha256=kkuVjUeGAJ5dkphFIMBi6OFnQQd1YaeYCY47-J6cKNs,57939
97
- pypipr-1.0.170.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
98
- pypipr-1.0.170.dist-info/entry_points.txt,sha256=XEBtOa61BCVW4cVvoqYQnyTcenJ1tzFFB09YnuqlKBY,51
99
- pypipr-1.0.170.dist-info/RECORD,,
96
+ pypipr-1.0.171.dist-info/METADATA,sha256=6lEEJuMaGL_jdjcIy0P32PElEweuADoXsVPx-SsB4XQ,58308
97
+ pypipr-1.0.171.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
98
+ pypipr-1.0.171.dist-info/entry_points.txt,sha256=XEBtOa61BCVW4cVvoqYQnyTcenJ1tzFFB09YnuqlKBY,51
99
+ pypipr-1.0.171.dist-info/RECORD,,