pypipr 1.0.164__tar.gz → 1.0.166__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.
- {pypipr-1.0.164 → pypipr-1.0.166}/PKG-INFO +177 -158
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/__init__.py +1 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/dirname.py +5 -1
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iopen.py +3 -0
- pypipr-1.0.166/pypipr/path_to_module.py +28 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pyproject.toml +1 -1
- {pypipr-1.0.164 → pypipr-1.0.166}/readme.md +176 -157
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ComparePerformance.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/LINUX.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/PintUreg.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/PintUregQuantity.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/RunParallel.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/TextCase.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/WINDOWS.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/__terminal__.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/auto_reload.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/avg.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/basename.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/batch_calculate.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/batchmaker.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/bin_to_int.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/calculate.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/choices.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/chr_to_int.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/chunk_array.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/console_run.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/create_folder.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/datetime_from_string.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/datetime_now.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/dict_first.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/django_clear_migrations.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/django_runserver.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/exit_if_empty.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/filter_empty.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/get_by_index.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/get_class_method.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/get_filemtime.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/get_filesize.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/github_init.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/github_pull.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/github_push.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/github_user.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/hex_to_int.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iargv.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/idir.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/idumps.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/idumps_html.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ienumerate.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ienv.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iexec.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iinput.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ijoin.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iloads.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iloads_html.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/input_char.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/int_to_bin.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/int_to_chr.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/int_to_hex.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/int_to_int.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/int_to_oct.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iprint.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/irange.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ireplace.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/is_empty.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/is_html.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/is_iterable.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/is_raw_string.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/is_valid_url.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/iscandir.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/isplit.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/ivars.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/log.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/oct_to_int.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/password_generator.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/pip_freeze_without_version.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/pip_update_pypipr.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/poetry_publish.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/poetry_update_version.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/print_colorize.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/print_dir.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/print_log.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/print_to_last_line.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/random_bool.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/repath.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/restart.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/set_timeout.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/sets_ordered.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/sqlite_backup.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/sqlite_delete_table.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/sqlite_get_all_tables.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/sqlite_get_data_table.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/str_cmp.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/text_colorize.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/tiles.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/to_str.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/traceback_filename.py +0 -0
- {pypipr-1.0.164 → pypipr-1.0.166}/pypipr/traceback_framename.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pypipr
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.166
|
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
|
252
|
-
<generator object int_range at
|
251
|
+
<generator object int_range at 0x76205f6840>
|
252
|
+
<generator object int_range at 0x76205f6940>
|
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
|
284
|
+
<generator object batchmaker at 0x762060b1c0>
|
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
|
338
|
+
<generator object batch_calculate at 0x762061f220>
|
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
|
444
|
+
<generator object chunk_array at 0x7620603100>
|
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-
|
496
|
-
2025-04-
|
497
|
-
2025-04-07
|
495
|
+
2025-04-10 21:33:07.217306+07:00
|
496
|
+
2025-04-10 14:33:07.218966+00:00
|
497
|
+
2025-04-10 07:33:07.225080-07:00
|
498
498
|
```
|
499
499
|
|
500
500
|
## dict_first
|
@@ -521,7 +521,7 @@ Output:
|
|
521
521
|
|
522
522
|
## dirname
|
523
523
|
|
524
|
-
`dirname(path)`
|
524
|
+
`dirname(path, indeks=-1)`
|
525
525
|
|
526
526
|
Mengembalikan nama folder dari path.
|
527
527
|
Tanpa trailing slash di akhir.
|
@@ -608,7 +608,7 @@ iprint(filter_empty(var))
|
|
608
608
|
|
609
609
|
Output:
|
610
610
|
```py
|
611
|
-
<generator object filter_empty at
|
611
|
+
<generator object filter_empty at 0x76206032e0>
|
612
612
|
[1, '0', True, {}, ['eee']]
|
613
613
|
```
|
614
614
|
|
@@ -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
|
659
|
-
[<function ExampleGetClassMethod.a at
|
658
|
+
<generator object get_class_method at 0x762061fe60>
|
659
|
+
[<function ExampleGetClassMethod.a at 0x762032ede0>, <function ExampleGetClassMethod.b at 0x762032ec00>, <function ExampleGetClassMethod.c at 0x762032eca0>, <function ExampleGetClassMethod.d at 0x762032ee80>]
|
660
660
|
```
|
661
661
|
|
662
662
|
## get_filesize
|
@@ -850,6 +850,7 @@ Output:
|
|
850
850
|
'operator',
|
851
851
|
'os',
|
852
852
|
'password_generator',
|
853
|
+
'path_to_module',
|
853
854
|
'pathlib',
|
854
855
|
'pint',
|
855
856
|
'pip_freeze_without_version',
|
@@ -1082,7 +1083,7 @@ Output:
|
|
1082
1083
|
|
1083
1084
|
## ienumerate
|
1084
1085
|
|
1085
|
-
`ienumerate(iterator, start=0, key=<function int_to_int at
|
1086
|
+
`ienumerate(iterator, start=0, key=<function int_to_int at 0x76249765c0>)`
|
1086
1087
|
|
1087
1088
|
meningkatkan fungsi enumerate() pada python
|
1088
1089
|
untuk key menggunakan huruf dan basis angka lainnya.
|
@@ -1095,7 +1096,7 @@ iprint(ienumerate(it, key=int_to_chr))
|
|
1095
1096
|
|
1096
1097
|
Output:
|
1097
1098
|
```py
|
1098
|
-
<generator object ienumerate at
|
1099
|
+
<generator object ienumerate at 0x76206032e0>
|
1099
1100
|
[('a', 'ini'), ('b', 'contoh'), ('c', 'enumerator')]
|
1100
1101
|
```
|
1101
1102
|
|
@@ -1172,7 +1173,7 @@ print(ijoin(10, ' '))
|
|
1172
1173
|
|
1173
1174
|
Output:
|
1174
1175
|
```py
|
1175
|
-
|
1176
|
+
asd, weq, qweqw, dfs
|
1176
1177
|
,ini,path,seperti,url,
|
1177
1178
|
ini,path,seperti,url
|
1178
1179
|
<li>satu</li>
|
@@ -1217,10 +1218,10 @@ pprint.pprint(iloads_html(iopen("https://harga-emas.org/1-gram/")), depth=10)
|
|
1217
1218
|
Output:
|
1218
1219
|
```py
|
1219
1220
|
(['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
|
1220
|
-
[['Harga Emas Hari Ini -
|
1221
|
-
['Spot Emas USD
|
1221
|
+
[['Harga Emas Hari Ini - Kamis, 10 April 2025'],
|
1222
|
+
['Spot Emas USD↑3.145,75 (+54,71) / oz',
|
1222
1223
|
'Kurs IDR1,00 / USD',
|
1223
|
-
'Emas IDR
|
1224
|
+
'Emas IDR↑101 (+2) / gr'],
|
1224
1225
|
['LM Antam (Jual)↓1.513.000 (-30.000) / gr',
|
1225
1226
|
'LM Antam (Beli)↓1.366.000 (-30.000) / gr']],
|
1226
1227
|
[['Harga Emas Hari Ini'],
|
@@ -1243,10 +1244,10 @@ Output:
|
|
1243
1244
|
'Update harga LM Pegadaian :31 Desember 1969']],
|
1244
1245
|
[['Spot Harga Emas Hari Ini (Market Open)'],
|
1245
1246
|
['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
|
1246
|
-
['Ounce\xa0(oz)', '3.
|
1247
|
-
['Gram\xa0(gr)', '
|
1248
|
-
['Kilogram\xa0(kg)', '
|
1249
|
-
['Update harga emas :
|
1247
|
+
['Ounce\xa0(oz)', '3.145,75 (+54,71)', '1,00', '3.146'],
|
1248
|
+
['Gram\xa0(gr)', '101,14', '1,00', '101 (+2)'],
|
1249
|
+
['Kilogram\xa0(kg)', '101.138,21', '1,00', '101.138'],
|
1250
|
+
['Update harga emas :10 April 2025, pukul 21:33Update kurs :14 Maret 2025, '
|
1250
1251
|
'pukul 10:13']],
|
1251
1252
|
[['Gram', 'UBS Gold 99.99%'],
|
1252
1253
|
['Jual', 'Beli'],
|
@@ -1284,36 +1285,36 @@ Output:
|
|
1284
1285
|
['Unit', 'USD', 'IDR'],
|
1285
1286
|
['Angka', '+/-', 'Angka', '+/-'],
|
1286
1287
|
['Hari Ini', 'Kurs', '', '', '1', '%'],
|
1287
|
-
['oz', '3.
|
1288
|
-
['gr', '
|
1289
|
-
['30 Hari', 'Kurs', '', '', '16.
|
1290
|
-
['oz', '2.
|
1291
|
-
['gr', '93,
|
1292
|
-
['2 Bulan', 'Kurs', '', '', '16.
|
1293
|
-
['oz', '2.
|
1294
|
-
['gr', '91,
|
1295
|
-
['6 Bulan', 'Kurs', '', '', '15.
|
1296
|
-
['oz', '2.
|
1297
|
-
['gr', '
|
1288
|
+
['oz', '3.091,04', '+54,71+1,77%', '3.091', '+55+1,77%'],
|
1289
|
+
['gr', '99,38', '+1,76+1,77%', '99', '+2+1,77%'],
|
1290
|
+
['30 Hari', 'Kurs', '', '', '16.326', '-16.325-99,99%'],
|
1291
|
+
['oz', '2.916,73', '+229,02+7,85%', '47.618.534', '-47.615.388-99,99%'],
|
1292
|
+
['gr', '93,78', '+7,36+7,85%', '1.530.971', '-1.530.870-99,99%'],
|
1293
|
+
['2 Bulan', 'Kurs', '', '', '16.330', '-16.329-99,99%'],
|
1294
|
+
['oz', '2.861,26', '+284,49+9,94%', '46.724.376', '-46.721.230-99,99%'],
|
1295
|
+
['gr', '91,99', '+9,15+9,94', '1.502.224', '-1.502.122-99,99%'],
|
1296
|
+
['6 Bulan', 'Kurs', '', '', '15.658', '-15.657-99,99%'],
|
1297
|
+
['oz', '2.656,78', '+488,97+18,40%', '41.599.861', '-41.596.715-99,99%'],
|
1298
|
+
['gr', '85,42', '+15,72+18,40%', '1.337.467', '-1.337.365-99,99%'],
|
1298
1299
|
['1 Tahun', 'Kurs', '', '', '15.907', '-15.906-99,99%'],
|
1299
|
-
['oz', '2.
|
1300
|
-
['gr', '
|
1300
|
+
['oz', '2.338,57', '+807,18+34,52%', '37.199.633', '-37.196.487-99,99%'],
|
1301
|
+
['gr', '75,19', '+25,95+34,52%', '1.195.996', '-1.195.895-99,99%'],
|
1301
1302
|
['2 Tahun', 'Kurs', '', '', '15.731', '-15.730-99,99%'],
|
1302
|
-
['oz', '1.823,86', '+1.
|
1303
|
-
['gr', '58,64', '+
|
1304
|
-
['3 Tahun', 'Kurs', '', '', '14.
|
1305
|
-
['oz', '1.
|
1306
|
-
['gr', '62,
|
1307
|
-
['5 Tahun', 'Kurs', '', '', '16.
|
1308
|
-
['oz', '1.
|
1309
|
-
['gr', '
|
1303
|
+
['oz', '1.823,86', '+1.321,89+72,48%', '28.691.142', '-28.687.996-99,99%'],
|
1304
|
+
['gr', '58,64', '+42,50+72,48%', '922.442', '-922.340-99,99%'],
|
1305
|
+
['3 Tahun', 'Kurs', '', '', '14.365', '-14.364-99,99%'],
|
1306
|
+
['oz', '1.942,64', '+1.203,11+61,93%', '27.906.043', '-27.902.897-99,99%'],
|
1307
|
+
['gr', '62,46', '+38,68+61,93%', '897.200', '-897.099-99,99%'],
|
1308
|
+
['5 Tahun', 'Kurs', '', '', '16.241', '-16.240-99,99%'],
|
1309
|
+
['oz', '1.688,78', '+1.456,97+86,27%', '27.427.493', '-27.424.347-99,99%'],
|
1310
|
+
['gr', '54,30', '+46,84+86,27%', '881.814', '-881.713-99,99%']])
|
1310
1311
|
(['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
|
1311
1312
|
[[''],
|
1312
1313
|
['Emas 24 KaratHarga Emas 1 Gram', ''],
|
1313
|
-
['USD', '
|
1314
|
+
['USD', '101,14↑', '+1,76+1,77%'],
|
1314
1315
|
['KURS', '16.355,25↓', '%'],
|
1315
|
-
['IDR', '1.
|
1316
|
-
['
|
1316
|
+
['IDR', '1.654.140,73↑', '+28.768,35+1,77%'],
|
1317
|
+
['Kamis, 10 April 2025 21:33']],
|
1317
1318
|
[[''],
|
1318
1319
|
['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
|
1319
1320
|
'Hari Ini',
|
@@ -1324,25 +1325,25 @@ Output:
|
|
1324
1325
|
'']],
|
1325
1326
|
[['Pergerakkan Harga Emas 1 Gram'],
|
1326
1327
|
['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
|
1327
|
-
['USD', '
|
1328
|
+
['USD', '99,38', '99,38 - 101,14', '100,26'],
|
1328
1329
|
['KURS', '16.355,25', '16.355,25 - 16.355,25', '16.355,25'],
|
1329
|
-
['IDR', '1.
|
1330
|
+
['IDR', '1.625.372,38', '1.625.372,38 - 1.654.140,73', '1.639.756,56'],
|
1330
1331
|
[''],
|
1331
1332
|
['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
|
1332
|
-
['USD', '84,42', '84,38 -
|
1333
|
+
['USD', '84,42', '84,38 - 101,14', '+16,72 (19,81%)'],
|
1333
1334
|
['KURS', '16.220,76', '16.156,70 - 16.387,00', '+134,49 (0,83%)'],
|
1334
1335
|
['IDR',
|
1335
1336
|
'1.369.306,75',
|
1336
|
-
'1.368.695,74 - 1.
|
1337
|
-
'+
|
1337
|
+
'1.368.695,74 - 1.654.140,73',
|
1338
|
+
'+284.833,98 (20,80%)'],
|
1338
1339
|
[''],
|
1339
1340
|
['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
|
1340
|
-
['USD', '
|
1341
|
-
['KURS', '15.
|
1341
|
+
['USD', '75,37', '73,75 - 101,14', '+25,77 (34,19%)'],
|
1342
|
+
['KURS', '15.877,00', '15.100,00 - 16.509,65', '+478,25 (3,01%)'],
|
1342
1343
|
['IDR',
|
1343
|
-
'1.
|
1344
|
-
'1.181.943,88 - 1.
|
1345
|
-
'+
|
1344
|
+
'1.196.609,14',
|
1345
|
+
'1.181.943,88 - 1.654.140,73',
|
1346
|
+
'+457.531,59 (38,24%)']])
|
1346
1347
|
```
|
1347
1348
|
|
1348
1349
|
## iloads
|
@@ -1472,7 +1473,7 @@ Output:
|
|
1472
1473
|
```py
|
1473
1474
|
8
|
1474
1475
|
['mana', 'aja']
|
1475
|
-
[<Element a at
|
1476
|
+
[<Element a at 0x7620339810>, <Element a at 0x762036fde0>, <Element a at 0x762036fe30>, <Element a at 0x762036fe80>, <Element a at 0x762036fed0>, <Element a at 0x762036ff20>, <Element a at 0x762036ff70>, <Element a at 0x762036ffc0>, <Element a at 0x7620390050>, <Element a at 0x76203900a0>, <Element a at 0x76203900f0>, <Element a at 0x7620390140>, <Element a at 0x7620390190>, <Element a at 0x76203901e0>, <Element a at 0x7620390230>, <Element a at 0x7620390280>, <Element a at 0x76203902d0>, <Element a at 0x7620390320>]
|
1476
1477
|
False
|
1477
1478
|
```
|
1478
1479
|
|
@@ -1542,7 +1543,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
|
|
1542
1543
|
|
1543
1544
|
Output:
|
1544
1545
|
```py
|
1545
|
-
<generator object iscandir at
|
1546
|
+
<generator object iscandir at 0x76206031f0>
|
1546
1547
|
[PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
|
1547
1548
|
```
|
1548
1549
|
|
@@ -1575,96 +1576,97 @@ iprint(ivars(__import__('pypipr')))
|
|
1575
1576
|
|
1576
1577
|
Output:
|
1577
1578
|
```py
|
1578
|
-
{'function': {'avg': <function avg at
|
1579
|
-
'get_filemtime': <function get_filemtime at
|
1580
|
-
'print_colorize': <function print_colorize at
|
1581
|
-
'print_log': <function print_log at
|
1582
|
-
'console_run': <function console_run at
|
1583
|
-
'auto_reload': <function auto_reload at
|
1584
|
-
'basename': <function basename at
|
1585
|
-
'chr_to_int': <function chr_to_int at
|
1586
|
-
'int_to_chr': <function int_to_chr at
|
1587
|
-
'irange': <function irange at
|
1588
|
-
'batchmaker': <function batchmaker at
|
1589
|
-
'calculate': <function calculate at
|
1590
|
-
'batch_calculate': <function batch_calculate at
|
1591
|
-
'bin_to_int': <function bin_to_int at
|
1592
|
-
'is_empty': <function is_empty at
|
1593
|
-
'exit_if_empty': <function exit_if_empty at
|
1594
|
-
'input_char': <function input_char at
|
1595
|
-
'choices': <function choices at
|
1596
|
-
'chunk_array': <function chunk_array at
|
1597
|
-
'create_folder': <function create_folder at
|
1598
|
-
'datetime_from_string': <function datetime_from_string at
|
1599
|
-
'datetime_now': <function datetime_now at
|
1600
|
-
'dict_first': <function dict_first at
|
1601
|
-
'dirname': <function dirname at
|
1602
|
-
'django_clear_migrations': <function django_clear_migrations at
|
1603
|
-
'django_runserver': <function django_runserver at
|
1604
|
-
'is_iterable': <function is_iterable at
|
1605
|
-
'to_str': <function to_str at
|
1606
|
-
'filter_empty': <function filter_empty at
|
1607
|
-
'get_by_index': <function get_by_index at
|
1608
|
-
'get_class_method': <function get_class_method at
|
1609
|
-
'get_filesize': <function get_filesize at
|
1610
|
-
'github_init': <function github_init at
|
1611
|
-
'github_pull': <function github_pull at
|
1612
|
-
'github_push': <function github_push at
|
1613
|
-
'github_user': <function github_user at
|
1614
|
-
'hex_to_int': <function hex_to_int at
|
1615
|
-
'iargv': <function iargv at
|
1616
|
-
'idir': <function idir at
|
1617
|
-
'idumps_html': <function idumps_html at
|
1618
|
-
'idumps': <function idumps at
|
1619
|
-
'int_to_int': <function int_to_int at
|
1620
|
-
'ienumerate': <function ienumerate at
|
1621
|
-
'ienv': <function ienv at
|
1622
|
-
'iexec': <function iexec at
|
1623
|
-
'iinput': <function iinput at
|
1624
|
-
'ijoin': <function ijoin at
|
1625
|
-
'iloads_html': <function iloads_html at
|
1626
|
-
'iloads': <function iloads at
|
1627
|
-
'int_to_bin': <function int_to_bin at
|
1628
|
-
'int_to_hex': <function int_to_hex at
|
1629
|
-
'int_to_oct': <function int_to_oct at
|
1630
|
-
'is_valid_url': <function is_valid_url at
|
1631
|
-
'iopen': <function iopen at
|
1632
|
-
'iprint': <function iprint at
|
1633
|
-
'is_raw_string': <function is_raw_string at
|
1634
|
-
'ireplace': <function ireplace at
|
1635
|
-
'is_html': <function is_html at
|
1636
|
-
'iscandir': <function iscandir at
|
1637
|
-
'isplit': <function isplit at
|
1638
|
-
'ivars': <function ivars at
|
1639
|
-
'log': <function log at
|
1640
|
-
'oct_to_int': <function oct_to_int at
|
1641
|
-
'password_generator': <function password_generator at
|
1642
|
-
'
|
1643
|
-
'
|
1644
|
-
'
|
1645
|
-
'
|
1646
|
-
'
|
1647
|
-
'
|
1648
|
-
'
|
1649
|
-
'
|
1650
|
-
'
|
1651
|
-
'
|
1652
|
-
'
|
1653
|
-
'
|
1654
|
-
'
|
1655
|
-
'
|
1656
|
-
'
|
1657
|
-
'
|
1658
|
-
'
|
1659
|
-
'
|
1660
|
-
'
|
1661
|
-
'
|
1579
|
+
{'function': {'avg': <function avg at 0x76287f0680>,
|
1580
|
+
'get_filemtime': <function get_filemtime at 0x76248c53a0>,
|
1581
|
+
'print_colorize': <function print_colorize at 0x76248c5580>,
|
1582
|
+
'print_log': <function print_log at 0x7624ff74c0>,
|
1583
|
+
'console_run': <function console_run at 0x76248c5440>,
|
1584
|
+
'auto_reload': <function auto_reload at 0x76248c4d60>,
|
1585
|
+
'basename': <function basename at 0x76248c5620>,
|
1586
|
+
'chr_to_int': <function chr_to_int at 0x76248c5bc0>,
|
1587
|
+
'int_to_chr': <function int_to_chr at 0x76248c5c60>,
|
1588
|
+
'irange': <function irange at 0x76248c6160>,
|
1589
|
+
'batchmaker': <function batchmaker at 0x76248c5940>,
|
1590
|
+
'calculate': <function calculate at 0x76248c54e0>,
|
1591
|
+
'batch_calculate': <function batch_calculate at 0x76248c56c0>,
|
1592
|
+
'bin_to_int': <function bin_to_int at 0x76248c58a0>,
|
1593
|
+
'is_empty': <function is_empty at 0x76248c6a20>,
|
1594
|
+
'exit_if_empty': <function exit_if_empty at 0x76248c68e0>,
|
1595
|
+
'input_char': <function input_char at 0x76248c6980>,
|
1596
|
+
'choices': <function choices at 0x76248c6ca0>,
|
1597
|
+
'chunk_array': <function chunk_array at 0x76248c6d40>,
|
1598
|
+
'create_folder': <function create_folder at 0x76248c6de0>,
|
1599
|
+
'datetime_from_string': <function datetime_from_string at 0x76248c6e80>,
|
1600
|
+
'datetime_now': <function datetime_now at 0x76248c6f20>,
|
1601
|
+
'dict_first': <function dict_first at 0x76248e51c0>,
|
1602
|
+
'dirname': <function dirname at 0x76248e5260>,
|
1603
|
+
'django_clear_migrations': <function django_clear_migrations at 0x76248e5300>,
|
1604
|
+
'django_runserver': <function django_runserver at 0x76248e5620>,
|
1605
|
+
'is_iterable': <function is_iterable at 0x76248e59e0>,
|
1606
|
+
'to_str': <function to_str at 0x76248e5b20>,
|
1607
|
+
'filter_empty': <function filter_empty at 0x76248e58a0>,
|
1608
|
+
'get_by_index': <function get_by_index at 0x76248e5a80>,
|
1609
|
+
'get_class_method': <function get_class_method at 0x76248e5bc0>,
|
1610
|
+
'get_filesize': <function get_filesize at 0x76248e5d00>,
|
1611
|
+
'github_init': <function github_init at 0x76248e5da0>,
|
1612
|
+
'github_pull': <function github_pull at 0x76248e5e40>,
|
1613
|
+
'github_push': <function github_push at 0x76248e5f80>,
|
1614
|
+
'github_user': <function github_user at 0x76248e6020>,
|
1615
|
+
'hex_to_int': <function hex_to_int at 0x76248e60c0>,
|
1616
|
+
'iargv': <function iargv at 0x76248e6160>,
|
1617
|
+
'idir': <function idir at 0x76248e6200>,
|
1618
|
+
'idumps_html': <function idumps_html at 0x76249760c0>,
|
1619
|
+
'idumps': <function idumps at 0x76248e62a0>,
|
1620
|
+
'int_to_int': <function int_to_int at 0x76249765c0>,
|
1621
|
+
'ienumerate': <function ienumerate at 0x762495c900>,
|
1622
|
+
'ienv': <function ienv at 0x7624976480>,
|
1623
|
+
'iexec': <function iexec at 0x7624976660>,
|
1624
|
+
'iinput': <function iinput at 0x7624976700>,
|
1625
|
+
'ijoin': <function ijoin at 0x76249767a0>,
|
1626
|
+
'iloads_html': <function iloads_html at 0x7624976ac0>,
|
1627
|
+
'iloads': <function iloads at 0x76292a5260>,
|
1628
|
+
'int_to_bin': <function int_to_bin at 0x7624976840>,
|
1629
|
+
'int_to_hex': <function int_to_hex at 0x76249768e0>,
|
1630
|
+
'int_to_oct': <function int_to_oct at 0x7624976b60>,
|
1631
|
+
'is_valid_url': <function is_valid_url at 0x7624976de0>,
|
1632
|
+
'iopen': <function iopen at 0x762470e980>,
|
1633
|
+
'iprint': <function iprint at 0x7624765940>,
|
1634
|
+
'is_raw_string': <function is_raw_string at 0x7620ce4220>,
|
1635
|
+
'ireplace': <function ireplace at 0x7620cce700>,
|
1636
|
+
'is_html': <function is_html at 0x7620ce4180>,
|
1637
|
+
'iscandir': <function iscandir at 0x7620ce42c0>,
|
1638
|
+
'isplit': <function isplit at 0x7620ce4360>,
|
1639
|
+
'ivars': <function ivars at 0x7620ce4400>,
|
1640
|
+
'log': <function log at 0x7620ce44a0>,
|
1641
|
+
'oct_to_int': <function oct_to_int at 0x7620ce4540>,
|
1642
|
+
'password_generator': <function password_generator at 0x7620ce45e0>,
|
1643
|
+
'path_to_module': <function path_to_module at 0x7620ce4720>,
|
1644
|
+
'pip_freeze_without_version': <function pip_freeze_without_version at 0x7620ce47c0>,
|
1645
|
+
'pip_update_pypipr': <function pip_update_pypipr at 0x7620ce4860>,
|
1646
|
+
'poetry_publish': <function poetry_publish at 0x7620ce4900>,
|
1647
|
+
'poetry_update_version': <function poetry_update_version at 0x7620ce4a40>,
|
1648
|
+
'print_dir': <function print_dir at 0x7620ce4b80>,
|
1649
|
+
'print_to_last_line': <function print_to_last_line at 0x7620ce4c20>,
|
1650
|
+
'random_bool': <function random_bool at 0x7620ce4cc0>,
|
1651
|
+
'repath': <function repath at 0x7620ce4e00>,
|
1652
|
+
'restart': <function restart at 0x7620ce4ea0>,
|
1653
|
+
'set_timeout': <function set_timeout at 0x7620ce4f40>,
|
1654
|
+
'sets_ordered': <function sets_ordered at 0x7620ce4fe0>,
|
1655
|
+
'sqlite_backup': <function sqlite_backup at 0x7620ce5080>,
|
1656
|
+
'sqlite_delete_table': <function sqlite_delete_table at 0x7620ce5120>,
|
1657
|
+
'sqlite_get_all_tables': <function sqlite_get_all_tables at 0x7620ce51c0>,
|
1658
|
+
'sqlite_get_data_table': <function sqlite_get_data_table at 0x7620ce5260>,
|
1659
|
+
'str_cmp': <function str_cmp at 0x7620ce5b20>,
|
1660
|
+
'text_colorize': <function text_colorize at 0x7620ce5bc0>,
|
1661
|
+
'tiles': <function tiles at 0x7620ce5c60>,
|
1662
|
+
'traceback_filename': <function traceback_filename at 0x7620ce5d00>,
|
1663
|
+
'traceback_framename': <function traceback_framename at 0x7620ce5da0>},
|
1662
1664
|
'class': {'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
|
1663
1665
|
'PintUregQuantity': <class 'pint.Quantity'>,
|
1664
1666
|
'RunParallel': <class 'pypipr.RunParallel.RunParallel'>,
|
1665
1667
|
'TextCase': <class 'pypipr.TextCase.TextCase'>},
|
1666
1668
|
'variable': {'LINUX': True,
|
1667
|
-
'PintUreg': <pint.registry.UnitRegistry object at
|
1669
|
+
'PintUreg': <pint.registry.UnitRegistry object at 0x76287e8e60>,
|
1668
1670
|
'WINDOWS': False},
|
1669
1671
|
'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.12/asyncio/__init__.py'>,
|
1670
1672
|
'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'>,
|
@@ -1755,9 +1757,26 @@ print(password_generator())
|
|
1755
1757
|
|
1756
1758
|
Output:
|
1757
1759
|
```py
|
1758
|
-
|
1760
|
+
4CZ-@g\$
|
1759
1761
|
```
|
1760
1762
|
|
1763
|
+
## path_to_module
|
1764
|
+
|
1765
|
+
`path_to_module(abs_path, indeks=0)`
|
1766
|
+
|
1767
|
+
Mengubah absolute path file menjadi path modul relatif terhadap cwd (current working directory),
|
1768
|
+
dengan opsi untuk memangkas bagian akhir path berdasarkan indeks.
|
1769
|
+
|
1770
|
+
Parameter:
|
1771
|
+
abs_path (str): Path absolut menuju file.
|
1772
|
+
indeks (int):
|
1773
|
+
- 0 => hasil lengkap hingga file (tanpa ekstensi),
|
1774
|
+
- -1 => tanpa nama file, hanya foldernya,
|
1775
|
+
- -2 => dua folder di atasnya, dst.
|
1776
|
+
|
1777
|
+
Returns:
|
1778
|
+
str: Path bergaya modul Python (dipisah dengan ".")
|
1779
|
+
|
1761
1780
|
## pip_freeze_without_version
|
1762
1781
|
|
1763
1782
|
`pip_freeze_without_version(filename=None)`
|
@@ -1817,7 +1836,7 @@ Output:
|
|
1817
1836
|
__enter__ : https:/www.google.com
|
1818
1837
|
__fspath__ : https:/www.google.com
|
1819
1838
|
__getstate__ : (None, {'_raw_paths': ['https://www.google.com/'], '_drv': '', '_root': '', '_tail_cached': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
|
1820
|
-
__hash__ :
|
1839
|
+
__hash__ : 397743534404519733
|
1821
1840
|
__init__ : None
|
1822
1841
|
__init_subclass__ : None
|
1823
1842
|
__module__ : pathlib
|
@@ -1829,7 +1848,7 @@ Output:
|
|
1829
1848
|
__subclasshook__ : NotImplemented
|
1830
1849
|
_drv :
|
1831
1850
|
_flavour : <module 'posixpath' (frozen)>
|
1832
|
-
_hash :
|
1851
|
+
_hash : 397743534404519733
|
1833
1852
|
_lines : https:
|
1834
1853
|
www.google.com
|
1835
1854
|
_lines_cached : https:
|
@@ -1863,7 +1882,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
|
|
1863
1882
|
is_reserved : False
|
1864
1883
|
is_socket : False
|
1865
1884
|
is_symlink : False
|
1866
|
-
iterdir : <generator object Path.iterdir at
|
1885
|
+
iterdir : <generator object Path.iterdir at 0x76203512f0>
|
1867
1886
|
joinpath : .
|
1868
1887
|
name :
|
1869
1888
|
parent : https:/www.google.com
|
@@ -1874,7 +1893,7 @@ _parts_normcase_cached : ['https:', 'www.google.com']
|
|
1874
1893
|
stem :
|
1875
1894
|
suffix :
|
1876
1895
|
suffixes : []
|
1877
|
-
walk : <generator object Path.walk at
|
1896
|
+
walk : <generator object Path.walk at 0x7620db3d80>
|
1878
1897
|
with_segments : .
|
1879
1898
|
```
|
1880
1899
|
|
@@ -1916,7 +1935,7 @@ print(random_bool())
|
|
1916
1935
|
|
1917
1936
|
Output:
|
1918
1937
|
```py
|
1919
|
-
|
1938
|
+
False
|
1920
1939
|
```
|
1921
1940
|
|
1922
1941
|
## repath
|
@@ -1954,7 +1973,7 @@ x.cancel()
|
|
1954
1973
|
|
1955
1974
|
Output:
|
1956
1975
|
```py
|
1957
|
-
<Timer(Thread-2, started
|
1976
|
+
<Timer(Thread-2, started 507319926000)>
|
1958
1977
|
menghentikan timeout 7
|
1959
1978
|
```
|
1960
1979
|
|
@@ -1972,7 +1991,7 @@ print(list(sets_ordered(array)))
|
|
1972
1991
|
|
1973
1992
|
Output:
|
1974
1993
|
```py
|
1975
|
-
<generator object sets_ordered at
|
1994
|
+
<generator object sets_ordered at 0x7620352cf0>
|
1976
1995
|
[2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
|
1977
1996
|
```
|
1978
1997
|
|
@@ -2094,15 +2113,15 @@ print(ExampleComparePerformance().compare_performance())
|
|
2094
2113
|
|
2095
2114
|
Output:
|
2096
2115
|
```py
|
2097
|
-
{'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at
|
2116
|
+
{'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x7620658ac0>,
|
2098
2117
|
'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
|
2099
2118
|
'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
2100
2119
|
'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
|
2101
|
-
{'a':
|
2102
|
-
{'a':
|
2103
|
-
{'a':
|
2104
|
-
{'a':
|
2105
|
-
{'a':
|
2120
|
+
{'a': 127, 'b': 165, 'c': 100, 'd': 264}
|
2121
|
+
{'a': 108, 'b': 163, 'c': 99, 'd': 237}
|
2122
|
+
{'a': 100, 'b': 150, 'c': 103, 'd': 205}
|
2123
|
+
{'a': 107, 'b': 161, 'c': 100, 'd': 206}
|
2124
|
+
{'a': 107, 'b': 162, 'c': 100, 'd': 213}
|
2106
2125
|
```
|
2107
2126
|
|
2108
2127
|
## PintUregQuantity
|
@@ -66,6 +66,7 @@ from .ivars import ivars
|
|
66
66
|
from .log import log
|
67
67
|
from .oct_to_int import oct_to_int
|
68
68
|
from .password_generator import password_generator
|
69
|
+
from .path_to_module import path_to_module
|
69
70
|
from .pip_freeze_without_version import pip_freeze_without_version
|
70
71
|
from .pip_update_pypipr import pip_update_pypipr
|
71
72
|
from .poetry_publish import poetry_publish
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import os
|
2
2
|
|
3
3
|
|
4
|
-
def dirname(path):
|
4
|
+
def dirname(path, indeks=-1):
|
5
5
|
"""
|
6
6
|
Mengembalikan nama folder dari path.
|
7
7
|
Tanpa trailing slash di akhir.
|
@@ -10,4 +10,8 @@ def dirname(path):
|
|
10
10
|
print(dirname("/ini/nama/folder/ke/file.py"))
|
11
11
|
```
|
12
12
|
"""
|
13
|
+
paths = path.split(os.sep)
|
14
|
+
if indeks < 0:
|
15
|
+
paths = paths[: len(paths) + indeks]
|
16
|
+
return os.sep.join(paths)
|
13
17
|
return os.path.dirname(path)
|
@@ -5,6 +5,8 @@ import lxml.html
|
|
5
5
|
|
6
6
|
from .is_valid_url import is_valid_url
|
7
7
|
from .to_str import to_str
|
8
|
+
from .create_folder import create_folder
|
9
|
+
from .dirname import dirname
|
8
10
|
|
9
11
|
|
10
12
|
def iopen(path, data=None, regex=None, css_select=None, xpath=None, file_append=False):
|
@@ -70,6 +72,7 @@ def iopen(path, data=None, regex=None, css_select=None, xpath=None, file_append=
|
|
70
72
|
# Write File
|
71
73
|
if data is not None:
|
72
74
|
mode = "a" if file_append else "w"
|
75
|
+
create_folder(dirname(path))
|
73
76
|
with open(path, mode, encoding="utf-8") as f:
|
74
77
|
content = f.write(data)
|
75
78
|
# Read File
|