pypipr 1.0.141__py3-none-any.whl → 1.0.146__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/TextCase.py ADDED
@@ -0,0 +1,102 @@
1
+ class TextCase:
2
+ simbol = ".-_/\ "
3
+ kapital = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
4
+
5
+ def __init__(self, text: str) -> None:
6
+ self.text = self.explode(text)
7
+ self.double_symbol = True
8
+
9
+ def explode(self, text):
10
+ r = []
11
+ b = ""
12
+
13
+ for t in text:
14
+ if t in self.simbol:
15
+ if len(b):
16
+ r.append(b)
17
+ b = ""
18
+ r.append(t)
19
+ elif t in self.kapital:
20
+ if len(b):
21
+ r.append(b)
22
+ b = ""
23
+ b = t
24
+ else:
25
+ b += t
26
+
27
+ if len(b):
28
+ r.append(b)
29
+ b = ""
30
+
31
+ return r
32
+
33
+ def ToTitleCase(self):
34
+ r = ""
35
+ z = True
36
+ for i in self.text:
37
+ if i in self.simbol:
38
+ z = True
39
+ r += ""
40
+ else:
41
+ if not z:
42
+ r += ""
43
+ r += i.title()
44
+ z = False
45
+ return r
46
+
47
+ def to_snake_case(self):
48
+ r = ""
49
+ z = True
50
+ for i in self.text:
51
+ if i in self.simbol:
52
+ if not z or self.double_symbol:
53
+ r += "_"
54
+ z = True
55
+ else:
56
+ if not z:
57
+ r += "_"
58
+ r += i.lower()
59
+ z = False
60
+ return r
61
+
62
+ def toCamelCase(self):
63
+ r = ""
64
+ z = True
65
+ for i in self.text:
66
+ if i in self.simbol:
67
+ z = True
68
+ r += "/"
69
+ else:
70
+ if not z:
71
+ r += "/"
72
+ r += i.title()
73
+ z = False
74
+ return r
75
+
76
+ def to_path_case(self):
77
+ r = ""
78
+ z = True
79
+ for i in self.text:
80
+ if i in self.simbol:
81
+ z = True
82
+ r += "/"
83
+ else:
84
+ if not z:
85
+ r += "/"
86
+ r += i
87
+ z = False
88
+ return r
89
+
90
+ def to_dot_case(self):
91
+ r = ""
92
+ z = True
93
+ for i in self.text:
94
+ if i in self.simbol:
95
+ z = True
96
+ r += "."
97
+ else:
98
+ if not z:
99
+ r += "."
100
+ r += i
101
+ z = False
102
+ return r
pypipr/TextCase.py.bak ADDED
@@ -0,0 +1,58 @@
1
+ import re
2
+
3
+ class TextCase:
4
+ simbol = ".-_/\ "
5
+ kapital = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
6
+ cpattern = re.compile(r'(?=[ \-_/\.\\A-Z])')
7
+
8
+ def __init__(self, text:str) -> None:
9
+ self.text = self.explode(text)
10
+ print(self.text)
11
+
12
+ def explode(self, text):
13
+ return self.cpattern.split(text)
14
+
15
+ def ToTitleCase(self):
16
+ r = ""
17
+ for i in self.text:
18
+ if i:
19
+ r += i.title()
20
+ return r
21
+
22
+ def to_snake_case(self):
23
+ r = ""
24
+ for i in self.text:
25
+ print(i)
26
+ if len(i):
27
+ r += i.lower()
28
+ else:
29
+ r += "_"
30
+ return r
31
+
32
+ def toCamelCase(self):
33
+ r = ""
34
+ for i in self.text:
35
+ if i:
36
+ if r:
37
+ r += i.title()
38
+ else:
39
+ r += i.lower()
40
+ return r
41
+
42
+ def to_path_case(self):
43
+ r = ""
44
+ for i in self.text:
45
+ if i:
46
+ r += i
47
+ else:
48
+ r += "/"
49
+ return r
50
+
51
+ def to_dot_case(self):
52
+ r = ""
53
+ for i in self.text:
54
+ if i:
55
+ r += i
56
+ else:
57
+ r += "."
58
+ return r
pypipr/__init__.py CHANGED
@@ -3,6 +3,7 @@ from .LINUX import LINUX
3
3
  from .PintUreg import PintUreg
4
4
  from .PintUregQuantity import PintUregQuantity
5
5
  from .RunParallel import RunParallel
6
+ from .TextCase import TextCase
6
7
  from .WINDOWS import WINDOWS
7
8
  from .auto_reload import auto_reload
8
9
  from .avg import avg
@@ -1,7 +1,7 @@
1
1
  import traceback
2
2
 
3
3
 
4
- def traceback_filename():
4
+ def traceback_filename(stack_level=-3):
5
5
  """
6
6
  Mendapatkan filename dimana fungsi yg memanggil
7
7
  fungsi dimana fungsi ini diletakkan dipanggil.
@@ -10,4 +10,4 @@ def traceback_filename():
10
10
  print(traceback_filename())
11
11
  ```
12
12
  """
13
- return traceback.extract_stack()[-3].filename
13
+ return traceback.extract_stack()[stack_level].filename
@@ -1,7 +1,7 @@
1
1
  import traceback
2
2
 
3
3
 
4
- def traceback_framename():
4
+ def traceback_framename(stack_level=-3):
5
5
  """
6
6
  Mendapatkan frame name dimana fungsi yg memanggil
7
7
  fungsi dimana fungsi ini diletakan ini dipanggil.
@@ -10,4 +10,4 @@ def traceback_framename():
10
10
  print(traceback_framename())
11
11
  ```
12
12
  """
13
- return traceback.extract_stack()[-3].name
13
+ return traceback.extract_stack()[stack_level].name
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pypipr
3
- Version: 1.0.141
3
+ Version: 1.0.146
4
4
  Summary: The Python Package Index Project
5
5
  Author: ufiapjj
6
6
  Author-email: ufiapjj@gmail.com
@@ -84,7 +84,7 @@ print(get_filemtime(__file__))
84
84
 
85
85
  Output:
86
86
  ```py
87
- 1714399678112897487
87
+ 1722660773330427269
88
88
  ```
89
89
 
90
90
  ## print_colorize
@@ -248,8 +248,8 @@ iprint(irange("z", "a", 4))
248
248
 
249
249
  Output:
250
250
  ```py
251
- <generator object int_range at 0x7d7a623940>
252
- <generator object int_range at 0x7d7a623940>
251
+ <generator object int_range at 0x7dd5deaa40>
252
+ <generator object int_range at 0x7dd5deaa40>
253
253
  [13, 12, 11, 10, 9, 8, 7, 6]
254
254
  [2, 5, 8]
255
255
  [2, 5, 8]
@@ -281,7 +281,7 @@ print(list(batchmaker(s)))
281
281
 
282
282
  Output:
283
283
  ```py
284
- <generator object batchmaker at 0x7d7a6ad480>
284
+ <generator object batchmaker at 0x7dd5d4ae60>
285
285
  ['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.']
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 0x7d7a6b6110>
338
+ <generator object batch_calculate at 0x7dd39b07c0>
339
339
  [('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')>)]
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 0x7d7a623a40>
444
+ <generator object chunk_array at 0x7dd5deab40>
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
- 2024-05-25 11:45:23.044774+07:00
496
- 2024-05-25 04:45:23.045852+00:00
497
- 2024-05-24 21:45:23.049871-07:00
495
+ 2024-08-05 10:33:18.583265+07:00
496
+ 2024-08-05 03:33:18.584397+00:00
497
+ 2024-08-04 20:33:18.587352-07:00
498
498
  ```
499
499
 
500
500
  ## dict_first
@@ -600,7 +600,7 @@ iprint(filter_empty(var))
600
600
 
601
601
  Output:
602
602
  ```py
603
- <generator object filter_empty at 0x7d7a6b5e40>
603
+ <generator object filter_empty at 0x7dd39b04f0>
604
604
  [1, '0', True, {}, ['eee']]
605
605
  ```
606
606
 
@@ -647,8 +647,8 @@ print(list(get_class_method(ExampleGetClassMethod)))
647
647
 
648
648
  Output:
649
649
  ```py
650
- <generator object get_class_method at 0x7d7a6b63e0>
651
- [<function ExampleGetClassMethod.a at 0x7d7a6f3060>, <function ExampleGetClassMethod.b at 0x7d7a6f2fc0>, <function ExampleGetClassMethod.c at 0x7d7a6f31a0>, <function ExampleGetClassMethod.d at 0x7d7a6f3240>]
650
+ <generator object get_class_method at 0x7dd39b0a90>
651
+ [<function ExampleGetClassMethod.a at 0x7dd39cde40>, <function ExampleGetClassMethod.b at 0x7dd39cdda0>, <function ExampleGetClassMethod.c at 0x7dd39cdf80>, <function ExampleGetClassMethod.d at 0x7dd39ce020>]
652
652
  ```
653
653
 
654
654
  ## get_filesize
@@ -766,6 +766,7 @@ Output:
766
766
  'PintUreg',
767
767
  'PintUregQuantity',
768
768
  'RunParallel',
769
+ 'TextCase',
769
770
  'WINDOWS',
770
771
  'asyncio',
771
772
  'auto_reload',
@@ -1064,7 +1065,7 @@ Output:
1064
1065
 
1065
1066
  ## ienumerate
1066
1067
 
1067
- `ienumerate(iterator, start=0, key=<function int_to_int at 0x7d882bb9c0>)`
1068
+ `ienumerate(iterator, start=0, key=<function int_to_int at 0x7dd8c7a3e0>)`
1068
1069
 
1069
1070
  meningkatkan fungsi enumerate() pada python
1070
1071
  untuk key menggunakan huruf dan basis angka lainnya.
@@ -1077,7 +1078,7 @@ iprint(ienumerate(it, key=int_to_chr))
1077
1078
 
1078
1079
  Output:
1079
1080
  ```py
1080
- <generator object ienumerate at 0x7d7a6b64d0>
1081
+ <generator object ienumerate at 0x7dd39b0b80>
1081
1082
  [('a', 'ini'), ('b', 'contoh'), ('c', 'enumerator')]
1082
1083
  ```
1083
1084
 
@@ -1189,62 +1190,111 @@ pprint.pprint(iloads_html(iopen("https://harga-emas.org/1-gram/")), depth=10)
1189
1190
  Output:
1190
1191
  ```py
1191
1192
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1192
- [['Harga Emas Hari Ini - Sabtu, 25 Mei 2024'],
1193
- ['Spot Emas USD2.334,20 (-0,64) / oz',
1194
- 'Kurs IDR16.024,00 / USD',
1195
- 'Emas IDR1.202.541 (-330) / gr'],
1196
- ['LM Antam (Jual)1.325.000 / gr', 'LM Antam (Beli)1.211.000 / gr']],
1193
+ [['Harga Emas Hari Ini - Senin, 05 Agustus 2024'],
1194
+ ['Spot Emas USD2.444,08 (+2,13) / oz',
1195
+ 'Kurs IDR↓16.234,00 (-9,00) / USD',
1196
+ 'Emas IDR1.275.651 (+405) / gr'],
1197
+ ['LM Antam (Jual)1.420.000 (-8.000) / gr',
1198
+ 'LM Antam (Beli)↓1.273.000 (-8.000) / gr']],
1197
1199
  [['Harga Emas Hari Ini'],
1198
1200
  ['Gram', 'Gedung Antam Jakarta', 'Pegadaian'],
1199
1201
  ['per Gram (Rp)', 'per Batangan (Rp)', 'per Gram (Rp)', 'per Batangan (Rp)'],
1200
1202
  ['1000',
1201
- '1.266',
1202
- '1.265.600',
1203
+ '1.361 (-8)',
1204
+ '1.360.600 (-8.000)',
1203
1205
  '1.043.040 (+8.200)',
1204
1206
  '1.043.040.000 (+8.200.000)'],
1205
1207
  ['500',
1206
- '2.531',
1207
- '1.265.640',
1208
+ '2.721 (-16)',
1209
+ '1.360.640 (-8.000)',
1208
1210
  '1.043.082 (+8.200)',
1209
1211
  '521.541.000 (+4.100.000)'],
1210
1212
  ['250',
1211
- '5.064',
1212
- '1.266.060',
1213
+ '5.444 (-32)',
1214
+ '1.361.060 (-8.000)',
1213
1215
  '1.043.512 (+8.200)',
1214
1216
  '260.878.000 (+2.050.000)'],
1215
1217
  ['100',
1216
- '12.671',
1217
- '1.267.120',
1218
+ '13.621 (-80)',
1219
+ '1.362.120 (-8.000)',
1218
1220
  '1.044.600 (+8.200)',
1219
1221
  '104.460.000 (+820.000)'],
1220
- ['50', '25.358', '1.267.900', '1.045.400 (+8.200)', '52.270.000 (+410.000)'],
1221
- ['25', '50.779', '1.269.480', '1.047.040 (+8.200)', '26.176.000 (+205.000)'],
1222
- ['10', '127.450', '1.274.500', '1.052.200 (+8.200)', '10.522.000 (+82.000)'],
1223
- ['5', '256.000', '1.280.000', '1.057.800 (+8.200)', '5.289.000 (+41.000)'],
1224
- ['3', '428.889', '1.286.667', '1.064.667 (+8.000)', '3.194.000 (+24.000)'],
1225
- ['2', '647.500', '1.295.000', '1.073.500 (+8.500)', '2.147.000 (+17.000)'],
1226
- ['1', '1.325.000', '1.325.000', '1.104.000 (+8.000)', '1.104.000 (+8.000)'],
1227
- ['0.5', '2.850.000', '1.425.000', '1.208.000 (+8.000)', '604.000 (+4.000)'],
1228
- ['Update harga LM Antam :25 Mei 2024, pukul 08:25Harga pembelian kembali '
1229
- ':Rp. 1.211.000/gram',
1222
+ ['50',
1223
+ '27.258 (-160)',
1224
+ '1.362.900 (-8.000)',
1225
+ '1.045.400 (+8.200)',
1226
+ '52.270.000 (+410.000)'],
1227
+ ['25',
1228
+ '54.579 (-320)',
1229
+ '1.364.480 (-8.000)',
1230
+ '1.047.040 (+8.200)',
1231
+ '26.176.000 (+205.000)'],
1232
+ ['10',
1233
+ '136.950 (-800)',
1234
+ '1.369.500 (-8.000)',
1235
+ '1.052.200 (+8.200)',
1236
+ '10.522.000 (+82.000)'],
1237
+ ['5',
1238
+ '275.000 (-1.600)',
1239
+ '1.375.000 (-8.000)',
1240
+ '1.057.800 (+8.200)',
1241
+ '5.289.000 (+41.000)'],
1242
+ ['3',
1243
+ '460.556 (-2.667)',
1244
+ '1.381.667 (-8.000)',
1245
+ '1.064.667 (+8.000)',
1246
+ '3.194.000 (+24.000)'],
1247
+ ['2',
1248
+ '695.000 (-4.000)',
1249
+ '1.390.000 (-8.000)',
1250
+ '1.073.500 (+8.500)',
1251
+ '2.147.000 (+17.000)'],
1252
+ ['1',
1253
+ '1.420.000 (-8.000)',
1254
+ '1.420.000 (-8.000)',
1255
+ '1.104.000 (+8.000)',
1256
+ '1.104.000 (+8.000)'],
1257
+ ['0.5',
1258
+ '3.040.000 (-16.000)',
1259
+ '1.520.000 (-8.000)',
1260
+ '1.208.000 (+8.000)',
1261
+ '604.000 (+4.000)'],
1262
+ ['Update harga LM Antam :05 Agustus 2024, pukul 08:26Harga pembelian kembali '
1263
+ ':Rp. 1.273.000/gram (-8.000)',
1230
1264
  'Update harga LM Pegadaian :31 Agustus 2023']],
1231
- [['Spot Harga Emas Hari Ini (Market Close)'],
1265
+ [['Spot Harga Emas Hari Ini (Market Open)'],
1232
1266
  ['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
1233
- ['Ounce\xa0(oz)', '2.334,20 (-0,64)', '16.024,00', '37.403.221'],
1234
- ['Gram\xa0(gr)', '75,05', '16.024,00', '1.202.541 (-330)'],
1235
- ['Kilogram\xa0(kg)', '75.046,27', '16.024,00', '1.202.541.474'],
1236
- ['Update harga emas :25 Mei 2024, pukul 11:45Update kurs :24 Mei 2024, pukul '
1237
- '13:10']],
1267
+ ['Ounce\xa0(oz)', '2.444,08 (+2,13)', '16.234,00 (-9,00)', '39.677.195'],
1268
+ ['Gram\xa0(gr)', '78,58', '16.234,00', '1.275.651 (+405)'],
1269
+ ['Kilogram\xa0(kg)', '78.579,00', '16.234,00', '1.275.651.433'],
1270
+ ['Update harga emas :05 Agustus 2024, pukul 10:33Update kurs :05 Agustus '
1271
+ '2024, pukul 08:10']],
1238
1272
  [['Gram', 'UBS Gold 99.99%'],
1239
1273
  ['Jual', 'Beli'],
1240
1274
  ['/ Batang', '/ Gram', '/ Batang', '/ Gram'],
1241
- ['100', '126.300.000', '1.263.000', '124.285.000', '1.242.850'],
1242
- ['50', '63.300.000', '1.266.000', '62.195.000', '1.243.900'],
1243
- ['25', '31.700.000', '1.268.000', '31.200.000', '1.248.000'],
1244
- ['10', '12.720.000', '1.272.000', '12.530.000', '1.253.000'],
1245
- ['5', '6.385.000', '1.277.000', '6.317.000', '1.263.400'],
1246
- ['1', '1.325.000', '1.325.000', '1.296.000', '1.296.000'],
1247
- ['', 'Update :24 Mei 2024, pukul 11:40']],
1275
+ ['100',
1276
+ '136.100.000 (-800.000)',
1277
+ '1.361.000 (-8.000)',
1278
+ '130.998.000',
1279
+ '1.309.980'],
1280
+ ['50',
1281
+ '68.450.000 (-400.000)',
1282
+ '1.369.000 (-8.000)',
1283
+ '65.549.000',
1284
+ '1.310.980'],
1285
+ ['25',
1286
+ '34.275.000 (-200.000)',
1287
+ '1.371.000 (-8.000)',
1288
+ '32.873.500',
1289
+ '1.314.940'],
1290
+ ['10',
1291
+ '13.740.000 (-80.000)',
1292
+ '1.374.000 (-8.000)',
1293
+ '13.208.000',
1294
+ '1.320.800'],
1295
+ ['5', '6.895.000 (-40.000)', '1.379.000 (-8.000)', '6.659.000', '1.331.800'],
1296
+ ['1', '1.419.000 (-8.000)', '1.419.000 (-8.000)', '1.363.000', '1.363.000'],
1297
+ ['', 'Update :02 Agustus 2024, pukul 11:29']],
1248
1298
  [['Konversi Satuan'],
1249
1299
  ['Satuan', 'Ounce (oz)', 'Gram (gr)', 'Kilogram (kg)'],
1250
1300
  ['Ounce\xa0(oz)', '1', '31,1034767696', '0,0311034768'],
@@ -1254,37 +1304,37 @@ Output:
1254
1304
  ['Waktu', 'Emas'],
1255
1305
  ['Unit', 'USD', 'IDR'],
1256
1306
  ['Angka', '+/-', 'Angka', '+/-'],
1257
- ['Hari Ini', 'Kurs', '', '', '16.024', '%'],
1258
- ['oz', '2.334,84', '-0,64-0,03%', '37.413.476', '-10.255-0,03%'],
1259
- ['gr', '75,07', '-0,02-0,03%', '1.202.871', '-330-0,03%'],
1260
- ['30 Hari', 'Kurs', '', '', '16.161', '-137-0,85%'],
1261
- ['oz', '2.329,41', '+4,79+0,21%', '37.645.595', '-242.374-0,64%'],
1262
- ['gr', '74,89', '+0,15+0,21%', '1.210.334', '-7.793-0,64%'],
1263
- ['2 Bulan', 'Kurs', '', '', '15.795', '+229+1,45%'],
1264
- ['oz', '2.177,78', '+156,42+7,18%', '34.398.035', '+3.005.186+8,74%'],
1265
- ['gr', '70,02', '+5,03+7,18', '1.105.923', '+96.619+8,74%'],
1266
- ['6 Bulan', 'Kurs', '', '', '15.587', '+437+2,80%'],
1267
- ['oz', '2.010,31', '+323,89+16,11%', '31.334.702', '+6.068.519+19,37%'],
1268
- ['gr', '64,63', '+10,41+16,11%', '1.007.434', '+195.107+19,37%'],
1269
- ['1 Tahun', 'Kurs', '', '', '15.731', '+293+1,86%'],
1270
- ['oz', '1.823,86', '+510,34+27,98%', '28.691.142', '+8.712.079+30,37%'],
1271
- ['gr', '58,64', '+16,41+27,98%', '922.442', '+280.100+30,37%'],
1272
- ['2 Tahun', 'Kurs', '', '', '14.653', '+1.371+9,36%'],
1273
- ['oz', '1.846,77', '+487,43+26,39%', '27.060.739', '+10.342.482+38,22%'],
1274
- ['gr', '59,38', '+15,67+26,39%', '870.023', '+332.519+38,22%'],
1275
- ['3 Tahun', 'Kurs', '', '', '14.362', '+1.662+11,57%'],
1276
- ['oz', '1.902,81', '+431,39+22,67%', '27.328.157', '+10.075.064+36,87%'],
1277
- ['gr', '61,18', '+13,87+22,67%', '878.621', '+323.921+36,87%'],
1278
- ['5 Tahun', 'Kurs', '', '', '14.360', '+1.664+11,59%'],
1279
- ['oz', '1.285,23', '+1.048,97+81,62%', '18.455.903', '+18.947.318+102,66%'],
1280
- ['gr', '41,32', '+33,73+81,62%', '593.371', '+609.170+102,66%']])
1307
+ ['Hari Ini', 'Kurs', '', '', '16.243', '-9-0,06%'],
1308
+ ['oz', '2.441,95', '+2,13+0,09%', '39.664.594', '+12.601+0,03%'],
1309
+ ['gr', '78,51', '+0,07+0,09%', '1.275.246', '+405+0,03%'],
1310
+ ['30 Hari', 'Kurs', '', '', '16.341', '-107-0,65%'],
1311
+ ['oz', '2.391,59', '+52,49+2,19%', '39.080.996', '+596.199+1,53%'],
1312
+ ['gr', '76,89', '+1,69+2,19%', '1.256.483', '+19.168+1,53%'],
1313
+ ['2 Bulan', 'Kurs', '', '', '16.282', '-48-0,29%'],
1314
+ ['oz', '2.373,59', '+70,49+2,97%', '38.646.792', '+1.030.402+2,67%'],
1315
+ ['gr', '76,31', '+2,27+2,97', '1.242.523', '+33.128+2,67%'],
1316
+ ['6 Bulan', 'Kurs', '', '', '15.734', '+500+3,18%'],
1317
+ ['oz', '2.039,14', '+404,94+19,86%', '32.083.829', '+7.593.366+23,67%'],
1318
+ ['gr', '65,56', '+13,02+19,86%', '1.031.519', '+244.132+23,67%'],
1319
+ ['1 Tahun', 'Kurs', '', '', '15.731', '+503+3,20%'],
1320
+ ['oz', '1.823,86', '+620,22+34,01%', '28.691.142', '+10.986.053+38,29%'],
1321
+ ['gr', '58,64', '+19,94+34,01%', '922.442', '+353.210+38,29%'],
1322
+ ['2 Tahun', 'Kurs', '', '', '14.929', '+1.305+8,74%'],
1323
+ ['oz', '1.787,68', '+656,40+36,72%', '26.688.275', '+12.988.920+48,67%'],
1324
+ ['gr', '57,48', '+21,10+36,72%', '858.048', '+417.603+48,67%'],
1325
+ ['3 Tahun', 'Kurs', '', '', '14.342', '+1.892+13,19%'],
1326
+ ['oz', '1.759,29', '+684,79+38,92%', '25.231.737', '+14.445.458+57,25%'],
1327
+ ['gr', '56,56', '+22,02+38,92%', '811.219', '+464.432+57,25%'],
1328
+ ['5 Tahun', 'Kurs', '', '', '14.275', '+1.959+13,72%'],
1329
+ ['oz', '1.505,73', '+938,35+62,32%', '21.494.296', '+18.182.899+84,59%'],
1330
+ ['gr', '48,41', '+30,17+62,32%', '691.058', '+584.594+84,59%']])
1281
1331
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1282
1332
  [[''],
1283
1333
  ['Emas 24 KaratHarga Emas 1 Gram', ''],
1284
- ['USD', '75,05↓', '-0,02-0,03%'],
1285
- ['KURS', '16.045,00↑', '+12,60+0,08%'],
1286
- ['IDR', '1.204.117,45↑', '+615,70+0,05%'],
1287
- ['Sabtu, 25 Mei 2024 11:45']],
1334
+ ['USD', '78,58↑', '+0,07+0,09%'],
1335
+ ['KURS', '16.125,75↓', '-50,20-0,31%'],
1336
+ ['IDR', '1.267.145,26↓', '-2.836,92-0,22%'],
1337
+ ['Senin, 05 Agustus 2024 10:33']],
1288
1338
  [[''],
1289
1339
  ['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
1290
1340
  'Hari Ini',
@@ -1295,19 +1345,19 @@ Output:
1295
1345
  '']],
1296
1346
  [['Pergerakkan Harga Emas 1 Gram'],
1297
1347
  ['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
1298
- ['USD', '75,07', '75,05 - 75,07', '75,06'],
1299
- ['KURS', '16.032,40', '16.032,40 - 16.045,00', '16.038,70'],
1300
- ['IDR', '1.203.501,75', '1.203.501,75 - 1.204.117,45', '1.203.809,60'],
1348
+ ['USD', '78,51', '78,51 - 78,58', '78,55'],
1349
+ ['KURS', '16.175,95', '16.125,75 - 16.175,95', '16.150,85'],
1350
+ ['IDR', '1.269.982,18', '1.267.145,26 - 1.269.982,18', '1.268.563,72'],
1301
1351
  [''],
1302
1352
  ['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
1303
- ['USD', '66,32', '64,07 - 77,97', '+8,73 (13,16%)'],
1304
- ['KURS', '15.390,10', '15.390,00 - 16.307,80', '+654,90 (4,26%)'],
1305
- ['IDR', '1.020.729,53', '997.660,12 - 1.256.829,06', '+183.387,92 (17,97%)'],
1353
+ ['USD', '66,32', '64,07 - 79,08', '+12,26 (18,49%)'],
1354
+ ['KURS', '15.390,10', '15.390,00 - 16.509,65', '+735,65 (4,78%)'],
1355
+ ['IDR', '1.020.729,53', '997.660,12 - 1.279.266,69', '+246.415,73 (24,14%)'],
1306
1356
  [''],
1307
1357
  ['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
1308
- ['USD', '63,01', '58,43 - 77,97', '+12,04 (19,11%)'],
1309
- ['KURS', '14.942,00', '14.833,15 - 16.307,80', '+1.103,00 (7,38%)'],
1310
- ['IDR', '941.495,39', '912.925,68 - 1.256.829,06', '+262.622,06 (27,89%)']])
1358
+ ['USD', '62,44', '58,43 - 79,08', '+16,14 (25,85%)'],
1359
+ ['KURS', '15.121,75', '15.152,90 - 16.509,65', '+1.004,00 (6,64%)'],
1360
+ ['IDR', '944.250,16', '912.925,68 - 1.279.266,69', '+322.895,10 (34,20%)']])
1311
1361
  ```
1312
1362
 
1313
1363
  ## iloads
@@ -1437,7 +1487,7 @@ Output:
1437
1487
  ```py
1438
1488
  8
1439
1489
  ['mana', 'aja']
1440
- [<Element a at 0x7d7a6fe8f0>, <Element a at 0x7d7a204960>, <Element a at 0x7d7a204a00>, <Element a at 0x7d7a204a50>, <Element a at 0x7d7a204aa0>, <Element a at 0x7d7a204af0>, <Element a at 0x7d7a204b40>, <Element a at 0x7d7a204b90>, <Element a at 0x7d7a204be0>, <Element a at 0x7d7a204c30>, <Element a at 0x7d7a204c80>, <Element a at 0x7d7a204cd0>, <Element a at 0x7d7a204d20>, <Element a at 0x7d7a204d70>, <Element a at 0x7d7a204dc0>, <Element a at 0x7d7a204e10>, <Element a at 0x7d7a204e60>, <Element a at 0x7d7a204eb0>]
1490
+ [<Element a at 0x7dd39d19f0>, <Element a at 0x7dd3a252c0>, <Element a at 0x7dd3a25360>, <Element a at 0x7dd3a253b0>, <Element a at 0x7dd3a25400>, <Element a at 0x7dd3a25450>, <Element a at 0x7dd3a254a0>, <Element a at 0x7dd3a254f0>, <Element a at 0x7dd3a25540>, <Element a at 0x7dd3a25590>, <Element a at 0x7dd3a255e0>, <Element a at 0x7dd3a25630>, <Element a at 0x7dd3a25680>, <Element a at 0x7dd3a256d0>, <Element a at 0x7dd3a25720>, <Element a at 0x7dd3a25770>, <Element a at 0x7dd3a257c0>, <Element a at 0x7dd3a25810>, <Element a at 0x7dd3a25860>, <Element a at 0x7dd3a258b0>]
1441
1491
  False
1442
1492
  ```
1443
1493
 
@@ -1499,7 +1549,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
1499
1549
 
1500
1550
  Output:
1501
1551
  ```py
1502
- <generator object iscandir at 0x7d7a623b40>
1552
+ <generator object iscandir at 0x7dd5deaf40>
1503
1553
  [PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
1504
1554
  ```
1505
1555
 
@@ -1532,86 +1582,87 @@ iprint(ivars(__import__('pypipr')))
1532
1582
 
1533
1583
  Output:
1534
1584
  ```py
1535
- {'function': {'avg': <function avg at 0x7d89fe0040>,
1536
- 'get_filemtime': <function get_filemtime at 0x7d88473060>,
1537
- 'print_colorize': <function print_colorize at 0x7d88473240>,
1538
- 'print_log': <function print_log at 0x7d88473100>,
1539
- 'console_run': <function console_run at 0x7d884731a0>,
1540
- 'auto_reload': <function auto_reload at 0x7d88d9cf40>,
1541
- 'basename': <function basename at 0x7d8840e980>,
1542
- 'chr_to_int': <function chr_to_int at 0x7d884737e0>,
1543
- 'int_to_chr': <function int_to_chr at 0x7d88473880>,
1544
- 'irange': <function irange at 0x7d88473b00>,
1545
- 'batchmaker': <function batchmaker at 0x7d884734c0>,
1546
- 'calculate': <function calculate at 0x7d88473600>,
1547
- 'batch_calculate': <function batch_calculate at 0x7d88473380>,
1548
- 'bin_to_int': <function bin_to_int at 0x7d88d9cea0>,
1549
- 'is_empty': <function is_empty at 0x7d884802c0>,
1550
- 'exit_if_empty': <function exit_if_empty at 0x7d88480180>,
1551
- 'input_char': <function input_char at 0x7d88480220>,
1552
- 'choices': <function choices at 0x7d88480540>,
1553
- 'chunk_array': <function chunk_array at 0x7d884805e0>,
1554
- 'create_folder': <function create_folder at 0x7d88480680>,
1555
- 'datetime_from_string': <function datetime_from_string at 0x7d88480720>,
1556
- 'datetime_now': <function datetime_now at 0x7d884800e0>,
1557
- 'dict_first': <function dict_first at 0x7d88482a20>,
1558
- 'dirname': <function dirname at 0x7d88482ac0>,
1559
- 'is_iterable': <function is_iterable at 0x7d88482ca0>,
1560
- 'to_str': <function to_str at 0x7d88482d40>,
1561
- 'filter_empty': <function filter_empty at 0x7d884732e0>,
1562
- 'get_by_index': <function get_by_index at 0x7d88482b60>,
1563
- 'get_class_method': <function get_class_method at 0x7d88482de0>,
1564
- 'get_filesize': <function get_filesize at 0x7d88482f20>,
1565
- 'github_init': <function github_init at 0x7d88482fc0>,
1566
- 'github_pull': <function github_pull at 0x7d88483060>,
1567
- 'github_push': <function github_push at 0x7d884831a0>,
1568
- 'github_user': <function github_user at 0x7d88483240>,
1569
- 'hex_to_int': <function hex_to_int at 0x7d884832e0>,
1570
- 'iargv': <function iargv at 0x7d88483380>,
1571
- 'idir': <function idir at 0x7d88483420>,
1572
- 'idumps_html': <function idumps_html at 0x7d88483b00>,
1573
- 'idumps': <function idumps at 0x7d88483560>,
1574
- 'int_to_int': <function int_to_int at 0x7d882bb9c0>,
1575
- 'ienumerate': <function ienumerate at 0x7d882ae020>,
1576
- 'ienv': <function ienv at 0x7d882bb6a0>,
1577
- 'iexec': <function iexec at 0x7d882bba60>,
1578
- 'ijoin': <function ijoin at 0x7d882bbba0>,
1579
- 'iloads_html': <function iloads_html at 0x7d882bbd80>,
1580
- 'iloads': <function iloads at 0x7d8a9e2020>,
1581
- 'int_to_bin': <function int_to_bin at 0x7d882bbb00>,
1582
- 'int_to_hex': <function int_to_hex at 0x7d882bbce0>,
1583
- 'int_to_oct': <function int_to_oct at 0x7d882bbe20>,
1584
- 'is_valid_url': <function is_valid_url at 0x7d880efba0>,
1585
- 'iopen': <function iopen at 0x7d882cc040>,
1586
- 'iprint': <function iprint at 0x7d880ef6a0>,
1587
- 'ireplace': <function ireplace at 0x7d880ef7e0>,
1588
- 'iscandir': <function iscandir at 0x7d881b49a0>,
1589
- 'isplit': <function isplit at 0x7d881b4a40>,
1590
- 'ivars': <function ivars at 0x7d881b4ae0>,
1591
- 'log': <function log at 0x7d881b4b80>,
1592
- 'oct_to_int': <function oct_to_int at 0x7d881b4c20>,
1593
- 'password_generator': <function password_generator at 0x7d881b4cc0>,
1594
- 'pip_freeze_without_version': <function pip_freeze_without_version at 0x7d881b4e00>,
1595
- 'poetry_publish': <function poetry_publish at 0x7d881b4ea0>,
1596
- 'poetry_update_version': <function poetry_update_version at 0x7d881b4fe0>,
1597
- 'print_dir': <function print_dir at 0x7d881b51c0>,
1598
- 'print_to_last_line': <function print_to_last_line at 0x7d881b5260>,
1599
- 'random_bool': <function random_bool at 0x7d881b5300>,
1600
- 'restart': <function restart at 0x7d881b53a0>,
1601
- 'set_timeout': <function set_timeout at 0x7d881b5440>,
1602
- 'sets_ordered': <function sets_ordered at 0x7d881b54e0>,
1603
- 'sqlite_delete_table': <function sqlite_delete_table at 0x7d881b5580>,
1604
- 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x7d881b5120>,
1605
- 'sqlite_get_data_table': <function sqlite_get_data_table at 0x7d881b5ee0>,
1606
- 'str_cmp': <function str_cmp at 0x7d881b5f80>,
1607
- 'text_colorize': <function text_colorize at 0x7d881b6020>,
1608
- 'traceback_filename': <function traceback_filename at 0x7d881b60c0>,
1609
- 'traceback_framename': <function traceback_framename at 0x7d881b6160>},
1585
+ {'function': {'avg': <function avg at 0x7dddfe0040>,
1586
+ 'get_filemtime': <function get_filemtime at 0x7dd8bbda80>,
1587
+ 'print_colorize': <function print_colorize at 0x7dd8bbdc60>,
1588
+ 'print_log': <function print_log at 0x7dd8bbdb20>,
1589
+ 'console_run': <function console_run at 0x7dd8bbdbc0>,
1590
+ 'auto_reload': <function auto_reload at 0x7dd8bbd4e0>,
1591
+ 'basename': <function basename at 0x7dd8bbd9e0>,
1592
+ 'chr_to_int': <function chr_to_int at 0x7dd8bbe200>,
1593
+ 'int_to_chr': <function int_to_chr at 0x7dd8bbe2a0>,
1594
+ 'irange': <function irange at 0x7dd8bbe520>,
1595
+ 'batchmaker': <function batchmaker at 0x7dd8bbdee0>,
1596
+ 'calculate': <function calculate at 0x7dd8bbe020>,
1597
+ 'batch_calculate': <function batch_calculate at 0x7dd8bbdda0>,
1598
+ 'bin_to_int': <function bin_to_int at 0x7dd8bbde40>,
1599
+ 'is_empty': <function is_empty at 0x7dd8bbeca0>,
1600
+ 'exit_if_empty': <function exit_if_empty at 0x7dd8bbeb60>,
1601
+ 'input_char': <function input_char at 0x7dd8bbe160>,
1602
+ 'choices': <function choices at 0x7dd8bbef20>,
1603
+ 'chunk_array': <function chunk_array at 0x7dd8bbefc0>,
1604
+ 'create_folder': <function create_folder at 0x7dd8bbf060>,
1605
+ 'datetime_from_string': <function datetime_from_string at 0x7dd8bbf100>,
1606
+ 'datetime_now': <function datetime_now at 0x7dd8bbf1a0>,
1607
+ 'dict_first': <function dict_first at 0x7dd8be1440>,
1608
+ 'dirname': <function dirname at 0x7dd8be14e0>,
1609
+ 'is_iterable': <function is_iterable at 0x7dd8be16c0>,
1610
+ 'to_str': <function to_str at 0x7dd8be1760>,
1611
+ 'filter_empty': <function filter_empty at 0x7dd8bbf2e0>,
1612
+ 'get_by_index': <function get_by_index at 0x7dd8be1580>,
1613
+ 'get_class_method': <function get_class_method at 0x7dd8be1800>,
1614
+ 'get_filesize': <function get_filesize at 0x7dd8be1940>,
1615
+ 'github_init': <function github_init at 0x7dd8be19e0>,
1616
+ 'github_pull': <function github_pull at 0x7dd8be1a80>,
1617
+ 'github_push': <function github_push at 0x7dd8be1bc0>,
1618
+ 'github_user': <function github_user at 0x7dd8be1c60>,
1619
+ 'hex_to_int': <function hex_to_int at 0x7dd8be1d00>,
1620
+ 'iargv': <function iargv at 0x7dd8be1da0>,
1621
+ 'idir': <function idir at 0x7dd8be1e40>,
1622
+ 'idumps_html': <function idumps_html at 0x7dd8be2520>,
1623
+ 'idumps': <function idumps at 0x7dd8be1f80>,
1624
+ 'int_to_int': <function int_to_int at 0x7dd8c7a3e0>,
1625
+ 'ienumerate': <function ienumerate at 0x7dd8be2480>,
1626
+ 'ienv': <function ienv at 0x7dd8c7a0c0>,
1627
+ 'iexec': <function iexec at 0x7dd8c7a480>,
1628
+ 'ijoin': <function ijoin at 0x7dd8c7a5c0>,
1629
+ 'iloads_html': <function iloads_html at 0x7dd8c7a7a0>,
1630
+ 'iloads': <function iloads at 0x7dde972020>,
1631
+ 'int_to_bin': <function int_to_bin at 0x7dd8c7a520>,
1632
+ 'int_to_hex': <function int_to_hex at 0x7dd8c7a700>,
1633
+ 'int_to_oct': <function int_to_oct at 0x7dd8c7a840>,
1634
+ 'is_valid_url': <function is_valid_url at 0x7dd8a325c0>,
1635
+ 'iopen': <function iopen at 0x7dd8c7aa20>,
1636
+ 'iprint': <function iprint at 0x7dd8aa0c20>,
1637
+ 'ireplace': <function ireplace at 0x7dd8a32200>,
1638
+ 'iscandir': <function iscandir at 0x7dd633b380>,
1639
+ 'isplit': <function isplit at 0x7dd633b420>,
1640
+ 'ivars': <function ivars at 0x7dd633b4c0>,
1641
+ 'log': <function log at 0x7dd633b560>,
1642
+ 'oct_to_int': <function oct_to_int at 0x7dd633b600>,
1643
+ 'password_generator': <function password_generator at 0x7dd633b6a0>,
1644
+ 'pip_freeze_without_version': <function pip_freeze_without_version at 0x7dd633b7e0>,
1645
+ 'poetry_publish': <function poetry_publish at 0x7dd633b880>,
1646
+ 'poetry_update_version': <function poetry_update_version at 0x7dd633b9c0>,
1647
+ 'print_dir': <function print_dir at 0x7dd633bba0>,
1648
+ 'print_to_last_line': <function print_to_last_line at 0x7dd633bc40>,
1649
+ 'random_bool': <function random_bool at 0x7dd633bce0>,
1650
+ 'restart': <function restart at 0x7dd633bd80>,
1651
+ 'set_timeout': <function set_timeout at 0x7dd633be20>,
1652
+ 'sets_ordered': <function sets_ordered at 0x7dd633bec0>,
1653
+ 'sqlite_delete_table': <function sqlite_delete_table at 0x7dd633bf60>,
1654
+ 'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x7dd6354180>,
1655
+ 'sqlite_get_data_table': <function sqlite_get_data_table at 0x7dd6354900>,
1656
+ 'str_cmp': <function str_cmp at 0x7dd63549a0>,
1657
+ 'text_colorize': <function text_colorize at 0x7dd6354a40>,
1658
+ 'traceback_filename': <function traceback_filename at 0x7dd6354ae0>,
1659
+ 'traceback_framename': <function traceback_framename at 0x7dd6354b80>},
1610
1660
  'class': {'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
1611
1661
  'PintUregQuantity': <class 'pint.Quantity'>,
1612
- 'RunParallel': <class 'pypipr.RunParallel.RunParallel'>},
1662
+ 'RunParallel': <class 'pypipr.RunParallel.RunParallel'>,
1663
+ 'TextCase': <class 'pypipr.TextCase.TextCase'>},
1613
1664
  'variable': {'LINUX': True,
1614
- 'PintUreg': <pint.registry.UnitRegistry object at 0x7d89feeed0>,
1665
+ 'PintUreg': <pint.registry.UnitRegistry object at 0x7dddfef310>,
1615
1666
  'WINDOWS': False},
1616
1667
  'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.11/asyncio/__init__.py'>,
1617
1668
  'colorama': <module 'colorama' from '/data/data/com.termux/files/home/.cache/pypoetry/virtualenvs/pypipr-ZoJyDxLL-py3.11/lib/python3.11/site-packages/colorama/__init__.py'>,
@@ -1702,7 +1753,7 @@ print(password_generator())
1702
1753
 
1703
1754
  Output:
1704
1755
  ```py
1705
- 0Sq1@_3r
1756
+ |3tR{*tD
1706
1757
  ```
1707
1758
 
1708
1759
  ## pip_freeze_without_version
@@ -1760,7 +1811,7 @@ Output:
1760
1811
  __enter__ : https:/www.google.com
1761
1812
  __fspath__ : https:/www.google.com
1762
1813
  __getstate__ : (None, {'_drv': '', '_root': '', '_parts': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
1763
- __hash__ : -3587593220110788256
1814
+ __hash__ : -3103544291822590768
1764
1815
  __init__ : None
1765
1816
  __init_subclass__ : None
1766
1817
  __module__ : pathlib
@@ -1773,8 +1824,8 @@ Output:
1773
1824
  _cached_cparts : ['https:', 'www.google.com']
1774
1825
  _cparts : ['https:', 'www.google.com']
1775
1826
  _drv :
1776
- _flavour : <pathlib._PosixFlavour object at 0x7d89e31550>
1777
- _hash : -3587593220110788256
1827
+ _flavour : <pathlib._PosixFlavour object at 0x7dddd15790>
1828
+ _hash : -3103544291822590768
1778
1829
  _parts : ['https:', 'www.google.com']
1779
1830
  _root :
1780
1831
  _str : https:/www.google.com
@@ -1796,7 +1847,7 @@ Output:
1796
1847
  is_reserved : False
1797
1848
  is_socket : False
1798
1849
  is_symlink : False
1799
- iterdir : <generator object Path.iterdir at 0x7d7a6ab060>
1850
+ iterdir : <generator object Path.iterdir at 0x7dd39d60a0>
1800
1851
  joinpath : https:/www.google.com
1801
1852
  name : www.google.com
1802
1853
  parent : https:
@@ -1881,7 +1932,7 @@ x.cancel()
1881
1932
 
1882
1933
  Output:
1883
1934
  ```py
1884
- <Timer(Thread-2, started 538896743664)>
1935
+ <Timer(Thread-2, started 540394110192)>
1885
1936
  menghentikan timeout 7
1886
1937
  ```
1887
1938
 
@@ -1899,7 +1950,7 @@ print(list(sets_ordered(array)))
1899
1950
 
1900
1951
  Output:
1901
1952
  ```py
1902
- <generator object sets_ordered at 0x7d7a709b10>
1953
+ <generator object sets_ordered at 0x7dd39f4c70>
1903
1954
  [2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
1904
1955
  ```
1905
1956
 
@@ -1956,7 +2007,7 @@ text_colorize("Print some text", color=colorama.Fore.RED)
1956
2007
 
1957
2008
  ## traceback_filename
1958
2009
 
1959
- `traceback_filename()`
2010
+ `traceback_filename(stack_level=-3)`
1960
2011
 
1961
2012
  Mendapatkan filename dimana fungsi yg memanggil
1962
2013
  fungsi dimana fungsi ini diletakkan dipanggil.
@@ -1967,7 +2018,7 @@ print(traceback_filename())
1967
2018
 
1968
2019
  ## traceback_framename
1969
2020
 
1970
- `traceback_framename()`
2021
+ `traceback_framename(stack_level=-3)`
1971
2022
 
1972
2023
  Mendapatkan frame name dimana fungsi yg memanggil
1973
2024
  fungsi dimana fungsi ini diletakan ini dipanggil.
@@ -2013,15 +2064,15 @@ print(ExampleComparePerformance().compare_performance())
2013
2064
 
2014
2065
  Output:
2015
2066
  ```py
2016
- {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7d7a708d40>,
2067
+ {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7dd39f41e0>,
2017
2068
  'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
2018
2069
  'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
2019
2070
  'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
2020
- {'a': 100, 'b': 115, 'c': 112, 'd': 171}
2021
- {'a': 124, 'b': 128, 'c': 100, 'd': 177}
2022
- {'a': 107, 'b': 124, 'c': 100, 'd': 157}
2023
- {'a': 112, 'b': 129, 'c': 100, 'd': 154}
2024
- {'a': 112, 'b': 124, 'c': 100, 'd': 147}
2071
+ {'a': 100, 'b': 112, 'c': 104, 'd': 177}
2072
+ {'a': 122, 'b': 131, 'c': 99, 'd': 171}
2073
+ {'a': 117, 'b': 130, 'c': 100, 'd': 162}
2074
+ {'a': 110, 'b': 131, 'c': 100, 'd': 155}
2075
+ {'a': 121, 'b': 137, 'c': 100, 'd': 160}
2025
2076
  ```
2026
2077
 
2027
2078
  ## PintUregQuantity
@@ -2130,3 +2181,7 @@ if __name__ == "__main__":
2130
2181
  print(ExampleRunParallel().run_multi_processing())
2131
2182
  ```
2132
2183
 
2184
+ ## TextCase
2185
+
2186
+ `TextCase(text: str) -> None`
2187
+
@@ -3,8 +3,10 @@ pypipr/LINUX.py,sha256=XF5CR2imyRv8hGQpsDLDs_RU8xsD1aZLpFldEzP-mkU,77
3
3
  pypipr/PintUreg.py,sha256=_jmHZhUn8AcgFkXvZ6OTsWnjtp-CYcXUJ-dG_QdcARY,222
4
4
  pypipr/PintUregQuantity.py,sha256=ErSZKB-GHShi1zKac30XgFdBwAUrxMo80IQzIjQ2HVc,118
5
5
  pypipr/RunParallel.py,sha256=3H6sVSeUSATQQsWBcDGTtaXuc-12Yc0XmDyVtsg3PMA,5992
6
+ pypipr/TextCase.py,sha256=BzkOev-x6qd0fdlEdFzLZfnZJdZ63S7zFyj1PCYYKF0,2322
7
+ pypipr/TextCase.py.bak,sha256=coDInmzEu9y8FbTQmhAh2jl8MIt2eE4OsPMEUy8APxA,1229
6
8
  pypipr/WINDOWS.py,sha256=NMW-94lzdqwfEWv2lF_i2GcSHJFDwWjccFufpymg4-E,83
7
- pypipr/__init__.py,sha256=xCFo9AQA5Weng8UxY7xfPOSsWFaRxn3rQlygPWskBXc,3416
9
+ pypipr/__init__.py,sha256=RIP1K8kVchW60bvls3NQ0AHZzUGx9tYA0JWjTFAdC1o,3447
8
10
  pypipr/__terminal__.py,sha256=N_NEXa0V5QLb-dkP1Vp_fYKNjE4jGTqkiYNwPPOXZtw,1412
9
11
  pypipr/auto_reload.py,sha256=FGchFBjQs_eT7CmOMLNYoch-17q7ySFOnPx5z1kbH3E,918
10
12
  pypipr/avg.py,sha256=wUtX3x8dgLoODhQLyMB-HRMVo8Ha2yz3cp7lgcUNbr0,218
@@ -79,9 +81,9 @@ pypipr/sqlite_get_data_table.py,sha256=_GeaakCezPEmCB6cgTqgc1bKK_AMzjuxRGYZdOKA-
79
81
  pypipr/str_cmp.py,sha256=2kavWiT4VTddXcBotF1CxDOWSygk5rFrbllKxBjw9dc,377
80
82
  pypipr/text_colorize.py,sha256=IVjaCnXBSBu4Rh8pTO3CxDvxpA265HVwyKX_-PRXCcI,396
81
83
  pypipr/to_str.py,sha256=vSuspf-ZQldf4enkssa9XH0WMjkmWug51G9ia0K5occ,597
82
- pypipr/traceback_filename.py,sha256=AIdUWHD7tKl8pSP30vLIsqiPCgfzQxqdwQaT93BW7_0,265
83
- pypipr/traceback_framename.py,sha256=zKtOUIxFX812-TUnRFvF5XLT2fUPEEbakapoOcmjaxQ,268
84
- pypipr-1.0.141.dist-info/METADATA,sha256=uy_afATB94hcRTMADBsy1cltjUZL9-OTeeaalK6eRLc,55679
85
- pypipr-1.0.141.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
86
- pypipr-1.0.141.dist-info/entry_points.txt,sha256=XEBtOa61BCVW4cVvoqYQnyTcenJ1tzFFB09YnuqlKBY,51
87
- pypipr-1.0.141.dist-info/RECORD,,
84
+ pypipr/traceback_filename.py,sha256=4o85J0N8clI0cM6NTGcKZ4zxR9yS7W2NS_bz3J2_PnY,288
85
+ pypipr/traceback_framename.py,sha256=_mullrAZzMhBFEFVCgdsmkYQmYUkd58o-J-HuMntKyc,291
86
+ pypipr-1.0.146.dist-info/METADATA,sha256=Uu9v_4VEeXbRwkkJVZTCFFy_JVRjjw1MCKhQPuGcK-M,56423
87
+ pypipr-1.0.146.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
88
+ pypipr-1.0.146.dist-info/entry_points.txt,sha256=XEBtOa61BCVW4cVvoqYQnyTcenJ1tzFFB09YnuqlKBY,51
89
+ pypipr-1.0.146.dist-info/RECORD,,