pypipr 1.0.115__tar.gz → 1.0.117__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. {pypipr-1.0.115 → pypipr-1.0.117}/PKG-INFO +193 -147
  2. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/APIMixinView.py +11 -3
  3. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/chr_to_int.py +1 -1
  4. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/filter_empty.py +1 -0
  5. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/idumps_html.py +2 -1
  6. pypipr-1.0.117/pypipr/ienumerate.py +15 -0
  7. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iloads_html.py +2 -0
  8. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/irange.py +10 -5
  9. pypipr-1.0.117/pypipr/restart.py +17 -0
  10. {pypipr-1.0.115 → pypipr-1.0.117}/pyproject.toml +1 -1
  11. {pypipr-1.0.115 → pypipr-1.0.117}/readme.md +192 -146
  12. pypipr-1.0.115/pypipr/ienumerate.py +0 -5
  13. pypipr-1.0.115/pypipr/restart.py +0 -8
  14. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/ComparePerformance.py +0 -0
  15. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/LINUX.py +0 -0
  16. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/PintUreg.py +0 -0
  17. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/PintUregQuantity.py +0 -0
  18. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/RunParallel.py +0 -0
  19. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/WINDOWS.py +0 -0
  20. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/__init__.py +0 -0
  21. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/__terminal__.py +0 -0
  22. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/auto_reload.py +0 -0
  23. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/avg.py +0 -0
  24. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/basename.py +0 -0
  25. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/batch_calculate.py +0 -0
  26. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/batchmaker.py +0 -0
  27. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/calculate.py +0 -0
  28. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/choices.py +0 -0
  29. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/choices.py.bak +0 -0
  30. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/chunk_array.py +0 -0
  31. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/console_run.py +0 -0
  32. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/create_folder.py +0 -0
  33. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/datetime_from_string.py +0 -0
  34. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/datetime_now.py +0 -0
  35. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/dict_first.py +0 -0
  36. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/dirname.py +0 -0
  37. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/exit_if_empty.py +0 -0
  38. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/get_by_index.py +0 -0
  39. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/get_class_method.py +0 -0
  40. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/get_filemtime.py +0 -0
  41. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/get_filesize.py +0 -0
  42. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/github_pull.py +0 -0
  43. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/github_push.py +0 -0
  44. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/github_user.py +0 -0
  45. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iargv.py +0 -0
  46. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/idumps.py +0 -0
  47. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/ienv.py +0 -0
  48. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iexec.py +0 -0
  49. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/ijoin.py +0 -0
  50. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iloads.py +0 -0
  51. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/input_char.py +0 -0
  52. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/int_to_bin.py +0 -0
  53. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/int_to_chr.py +0 -0
  54. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/int_to_hex.py +0 -0
  55. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/int_to_int.py +0 -0
  56. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/int_to_oct.py +0 -0
  57. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iopen.py +0 -0
  58. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iprint.py +0 -0
  59. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/ireplace.py +0 -0
  60. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/is_empty.py +0 -0
  61. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/is_iterable.py +0 -0
  62. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/is_valid_url.py +0 -0
  63. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/iscandir.py +0 -0
  64. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/isplit.py +0 -0
  65. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/ivars.py +0 -0
  66. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/log.py +0 -0
  67. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/password_generator.py +0 -0
  68. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/pip_freeze_without_version.py +0 -0
  69. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/poetry_publish.py +0 -0
  70. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/poetry_update_version.py +0 -0
  71. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/print_colorize.py +0 -0
  72. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/print_dir.py +0 -0
  73. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/print_log.py +0 -0
  74. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/print_to_last_line.py +0 -0
  75. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/random_bool.py +0 -0
  76. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/set_timeout.py +0 -0
  77. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/sets_ordered.py +0 -0
  78. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/str_cmp.py +0 -0
  79. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/text_colorize.py +0 -0
  80. {pypipr-1.0.115 → pypipr-1.0.117}/pypipr/to_str.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pypipr
3
- Version: 1.0.115
3
+ Version: 1.0.117
4
4
  Summary: The Python Package Index Project
5
5
  Author: ufiapjj
6
6
  Author-email: ufiapjj@gmail.com
@@ -163,7 +163,7 @@ file.py
163
163
 
164
164
  ## chr_to_int
165
165
 
166
- `chr_to_int(s, start=1, numbers='abcdefghijklmnopqrstuvwxyz')`
166
+ `chr_to_int(s, start=0, numbers='abcdefghijklmnopqrstuvwxyz')`
167
167
 
168
168
  Fungsi ini berguna untuk mengubah urutan huruf menjadi angka.
169
169
 
@@ -175,9 +175,9 @@ print(chr_to_int('abc', numbers="abc")) # Output: 18
175
175
 
176
176
  Output:
177
177
  ```py
178
+ 25
178
179
  26
179
- 27
180
- 18
180
+ 17
181
181
  ```
182
182
 
183
183
  ## int_to_chr
@@ -236,20 +236,30 @@ kmd
236
236
  Meningkatkan fungsi range() dari python untuk pengulangan menggunakan huruf
237
237
 
238
238
  ```python
239
- print(irange('a', 'c'))
240
- print(irange('z', 'a', 10))
241
- print(list(irange('a', 'z', 10)))
242
- print(list(irange(1, '7')))
243
- print(list(irange(10, 5)))
239
+ print(irange(10))
240
+ print(irange(3, 15))
241
+ iprint(irange(13, 5))
242
+ iprint(irange(2, 10, 3))
243
+ iprint(irange(2, '10', 3))
244
+ iprint(irange('10'))
245
+ iprint(irange('10', '100', 7))
246
+ iprint(irange("h"))
247
+ iprint(irange("A", "D"))
248
+ iprint(irange("z", "a", 4))
244
249
  ```
245
250
 
246
251
  Output:
247
252
  ```py
248
- <generator object chr_range at 0x778b6fce10>
249
- <generator object chr_range at 0x778b6fce10>
250
- ['a', 'k', 'u']
251
- [1, 2, 3, 4, 5, 6]
252
- [10, 9, 8, 7, 6]
253
+ <generator object int_range at 0x764f2f0540>
254
+ <generator object int_range at 0x764f2f0540>
255
+ [13, 12, 11, 10, 9, 8, 7, 6]
256
+ [2, 5, 8]
257
+ [2, 5, 8]
258
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
259
+ [10, 17, 24, 31, 38, 45, 52, 59, 66, 73, 80, 87, 94]
260
+ ['a', 'b', 'c', 'd', 'e', 'f', 'g']
261
+ ['A', 'B', 'C']
262
+ ['z', 'v', 'r', 'n', 'j', 'f', 'b']
253
263
  ```
254
264
 
255
265
  ## batchmaker
@@ -273,7 +283,7 @@ print(list(batchmaker(s)))
273
283
 
274
284
  Output:
275
285
  ```py
276
- <generator object batchmaker at 0x778b7283a0>
286
+ <generator object batchmaker at 0x764f2e43a0>
277
287
  ['Urutan 1 dan 10 dan j dan Z saja.', 'Urutan 1 dan 10 dan j dan K saja.', 'Urutan 4 dan 10 dan j dan Z saja.', 'Urutan 4 dan 10 dan j dan K saja.']
278
288
  ```
279
289
 
@@ -327,7 +337,7 @@ print(list(batch_calculate("{1 10} m ** {1 3}")))
327
337
 
328
338
  Output:
329
339
  ```py
330
- <generator object batch_calculate at 0x778b6af010>
340
+ <generator object batch_calculate at 0x764f26b010>
331
341
  [('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')>)]
332
342
  ```
333
343
 
@@ -439,7 +449,7 @@ print(list(chunk_array(arr, 5)))
439
449
 
440
450
  Output:
441
451
  ```py
442
- <generator object chunk_array at 0x778b738440>
452
+ <generator object chunk_array at 0x764f2f0540>
443
453
  [[2, 3, 12, 3, 3], [42, 42, 1, 43, 2], [42, 41, 4, 24, 32], [42, 3, 12, 32, 42], [42]]
444
454
  ```
445
455
 
@@ -490,9 +500,9 @@ print(datetime_now("Etc/GMT+7"))
490
500
 
491
501
  Output:
492
502
  ```py
493
- 2024-04-30 21:41:28.090395+07:00
494
- 2024-04-30 14:41:28.092197+00:00
495
- 2024-04-30 07:41:28.095386-07:00
503
+ 2024-05-01 07:46:29.835163+07:00
504
+ 2024-05-01 00:46:29.836024+00:00
505
+ 2024-04-30 17:46:29.837421-07:00
496
506
  ```
497
507
 
498
508
  ## dict_first
@@ -593,11 +603,13 @@ Mengembalikan iterabel yang hanya memiliki nilai
593
603
  ```python
594
604
  var = [1, None, False, 0, "0", True, {}, ['eee']]
595
605
  print(filter_empty(var))
606
+ iprint(filter_empty(var))
596
607
  ```
597
608
 
598
609
  Output:
599
610
  ```py
600
- <generator object filter_empty at 0x778b6af010>
611
+ <generator object filter_empty at 0x764f26b010>
612
+ [1, '0', True, {}, ['eee']]
601
613
  ```
602
614
 
603
615
  ## get_class_method
@@ -626,8 +638,8 @@ print(list(get_class_method(ExampleGetClassMethod)))
626
638
 
627
639
  Output:
628
640
  ```py
629
- <generator object get_class_method at 0x778b6af2e0>
630
- [<function ExampleGetClassMethod.a at 0x778b74d3a0>, <function ExampleGetClassMethod.b at 0x778b74d1c0>, <function ExampleGetClassMethod.c at 0x778b74d4e0>, <function ExampleGetClassMethod.d at 0x778b74d580>]
641
+ <generator object get_class_method at 0x764f26b2e0>
642
+ [<function ExampleGetClassMethod.a at 0x764f3091c0>, <function ExampleGetClassMethod.b at 0x764f3093a0>, <function ExampleGetClassMethod.c at 0x764f3094e0>, <function ExampleGetClassMethod.d at 0x764f309580>]
631
643
  ```
632
644
 
633
645
  ## get_filesize
@@ -698,7 +710,8 @@ Output:
698
710
  `idumps_html(data, indent=None)`
699
711
 
700
712
  Serialisasi python variabel menjadi HTML.
701
- ```
713
+
714
+ ```html
702
715
  List -> <ul>...</ul>
703
716
  Dict -> <table>...</table>
704
717
  ```
@@ -880,7 +893,22 @@ Output:
880
893
 
881
894
  ## ienumerate
882
895
 
883
- `ienumerate(iterator, start=0, key=<function int_to_int at 0x778ddd1e40>)`
896
+ `ienumerate(iterator, start=0, key=<function int_to_int at 0x7653195e40>)`
897
+
898
+ meningkatkan fungsi enumerate() pada python
899
+ untuk key menggunakan huruf dan basis angka lainnya.
900
+
901
+ ```python
902
+ it = ["ini", "contoh", "enumerator"]
903
+ print(ienumerate(it))
904
+ iprint(ienumerate(it, key=int_to_chr))
905
+ ```
906
+
907
+ Output:
908
+ ```py
909
+ <generator object ienumerate at 0x764f26b2e0>
910
+ [('a', 'ini'), ('b', 'contoh'), ('c', 'enumerator')]
911
+ ```
884
912
 
885
913
  ## ienv
886
914
 
@@ -945,7 +973,7 @@ print(ijoin(10, ' '))
945
973
 
946
974
  Output:
947
975
  ```py
948
- weq, asd, dfs, qweqw
976
+ dfs, qweqw, asd, weq
949
977
  ,ini,path,seperti,url,
950
978
  ini,path,seperti,url
951
979
  <li>satu</li>
@@ -970,10 +998,12 @@ ini,path,seperti,url
970
998
  Mengambil data yang berupa list `<ul>`, dan table `<table>` dari html
971
999
  dan menjadikannya data python berupa list.
972
1000
  setiap data yang ditemukan akan dibungkus dengan tuple sebagai separator.
1001
+
973
1002
  ```
974
1003
  list (<ul>) -> list -> list satu dimensi
975
1004
  table (<table>) -> list[list] -> list satu dimensi didalam list
976
1005
  ```
1006
+
977
1007
  apabila data berupa ul maka dapat dicek type(data) -> html_ul
978
1008
  apabila data berupa ol maka dapat dicek type(data) -> html_ol
979
1009
  apabila data berupa dl maka dapat dicek type(data) -> html_dl
@@ -988,10 +1018,10 @@ pprint.pprint(iloads_html(iopen("https://harga-emas.org/1-gram/")), depth=10)
988
1018
  Output:
989
1019
  ```py
990
1020
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
991
- [['Harga Emas Hari Ini - Selasa, 30 April 2024'],
992
- ['Spot Emas USD↓2.298,30 (-46,24) / oz',
993
- 'Kurs IDR↑16.249,00 (+27,00) / USD',
994
- 'Emas IDR↓1.200.672 (-22.121) / gr'],
1021
+ [['Harga Emas Hari Ini - Rabu, 01 Mei 2024'],
1022
+ ['Spot Emas USD↓2.288,71 (-7,31) / oz',
1023
+ 'Kurs IDR16.249,00 / USD',
1024
+ 'Emas IDR↓1.195.662 (-3.819) / gr'],
995
1025
  ['LM Antam (Jual)1.325.000 / gr', 'LM Antam (Beli)1.221.000 / gr']],
996
1026
  [['Harga Emas Hari Ini'],
997
1027
  ['Gram', 'Gedung Antam Jakarta', 'Pegadaian'],
@@ -1029,10 +1059,10 @@ Output:
1029
1059
  'Update harga LM Pegadaian :31 Agustus 2023']],
1030
1060
  [['Spot Harga Emas Hari Ini (Market Open)'],
1031
1061
  ['Satuan', 'USD', 'Kurs\xa0Dollar', 'IDR'],
1032
- ['Ounce\xa0(oz)', '2.298,30 (-46,24)', '16.249,00 (+27,00)', '37.345.077'],
1033
- ['Gram\xa0(gr)', '73,89', '16.249,00', '1.200.672 (-22.121)'],
1034
- ['Kilogram\xa0(kg)', '73.892,06', '16.249,00', '1.200.672.098'],
1035
- ['Update harga emas :30 April 2024, pukul 21:41Update kurs :30 April 2024, '
1062
+ ['Ounce\xa0(oz)', '2.288,71 (-7,31)', '16.249,00', '37.189.249'],
1063
+ ['Gram\xa0(gr)', '73,58', '16.249,00', '1.195.662 (-3.819)'],
1064
+ ['Kilogram\xa0(kg)', '73.583,74', '16.249,00', '1.195.662.114'],
1065
+ ['Update harga emas :01 Mei 2024, pukul 07:46Update kurs :30 April 2024, '
1036
1066
  'pukul 13:10']],
1037
1067
  [['Gram', 'UBS Gold 99.99%'],
1038
1068
  ['Jual', 'Beli'],
@@ -1053,37 +1083,37 @@ Output:
1053
1083
  ['Waktu', 'Emas'],
1054
1084
  ['Unit', 'USD', 'IDR'],
1055
1085
  ['Angka', '+/-', 'Angka', '+/-'],
1056
- ['Hari Ini', 'Kurs', '', '', '16.222', '+27+0,17%'],
1057
- ['oz', '2.344,54', '-46,24-1,97%', '38.033.128', '-688.051-1,81%'],
1058
- ['gr', '75,38', '-1,49-1,97%', '1.222.793', '-22.121-1,81%'],
1059
- ['30 Hari', 'Kurs', '', '', '15.853', '+396+2,50%'],
1060
- ['oz', '2.232,75', '+65,55+2,94%', '35.395.786', '+1.949.291+5,51%'],
1061
- ['gr', '71,78', '+2,11+2,94%', '1.138.001', '+62.671+5,51%'],
1086
+ ['Hari Ini', 'Kurs', '', '', '16.249', '%'],
1087
+ ['oz', '2.296,02', '-7,31-0,32%', '37.308.029', '-118.780-0,32%'],
1088
+ ['gr', '73,82', '-0,24-0,32%', '1.199.481', '-3.819-0,32%'],
1089
+ ['30 Hari', 'Kurs', '', '', '15.873', '+376+2,37%'],
1090
+ ['oz', '2.239,34', '+49,37+2,20%', '35.545.044', '+1.644.205+4,63%'],
1091
+ ['gr', '72,00', '+1,59+2,20%', '1.142.800', '+52.862+4,63%'],
1062
1092
  ['2 Bulan', 'Kurs', '', '', '15.715', '+534+3,40%'],
1063
- ['oz', '2.081,20', '+217,10+10,43%', '32.706.058', '+4.639.019+14,18%'],
1064
- ['gr', '66,91', '+6,98+10,43', '1.051.524', '+149.148+14,18%'],
1065
- ['6 Bulan', 'Kurs', '', '', '15.946', '+303+1,90%'],
1066
- ['oz', '1.981,84', '+316,46+15,97%', '31.602.421', '+5.742.656+18,17%'],
1067
- ['gr', '63,72', '+10,17+15,97%', '1.016.041', '+184.631+18,17%'],
1093
+ ['oz', '2.082,55', '+206,16+9,90%', '32.727.273', '+4.461.976+13,63%'],
1094
+ ['gr', '66,96', '+6,63+9,90', '1.052.206', '+143.456+13,63%'],
1095
+ ['6 Bulan', 'Kurs', '', '', '15.861', '+388+2,45%'],
1096
+ ['oz', '1.990,54', '+298,17+14,98%', '31.571.955', '+5.617.294+17,79%'],
1097
+ ['gr', '64,00', '+9,59+14,98%', '1.015.062', '+180.600+17,79%'],
1068
1098
  ['1 Tahun', 'Kurs', '', '', '15.731', '+518+3,29%'],
1069
- ['oz', '1.823,86', '+474,44+26,01%', '28.691.142', '+8.653.935+30,16%'],
1070
- ['gr', '58,64', '+15,25+26,01%', '922.442', '+278.230+30,16%'],
1099
+ ['oz', '1.823,86', '+464,85+25,49%', '28.691.142', '+8.498.107+29,62%'],
1100
+ ['gr', '58,64', '+14,95+25,49%', '922.442', '+273.220+29,62%'],
1071
1101
  ['2 Tahun', 'Kurs', '', '', '14.418', '+1.831+12,70%'],
1072
- ['oz', '1.896,95', '+401,35+21,16%', '27.350.225', '+9.994.852+36,54%'],
1073
- ['gr', '60,99', '+12,90+21,16%', '879.330', '+321.342+36,54%'],
1102
+ ['oz', '1.867,23', '+421,48+22,57%', '26.921.722', '+10.267.527+38,14%'],
1103
+ ['gr', '60,03', '+13,55+22,57%', '865.553', '+330.109+38,14%'],
1074
1104
  ['3 Tahun', 'Kurs', '', '', '14.468', '+1.781+12,31%'],
1075
- ['oz', '1.768,91', '+529,39+29,93%', '25.592.590', '+11.752.487+45,92%'],
1076
- ['gr', '56,87', '+17,02+29,93%', '822.821', '+377.851+45,92%'],
1077
- ['5 Tahun', 'Kurs', '', '', '14.245', '+2.004+14,07%'],
1078
- ['oz', '1.270,94', '+1.027,36+80,83%', '18.104.540', '+19.240.536+106,27%'],
1079
- ['gr', '40,86', '+33,03+80,83%', '582.074', '+618.598+106,27%']])
1105
+ ['oz', '1.768,91', '+519,80+29,39%', '25.592.590', '+11.596.659+45,31%'],
1106
+ ['gr', '56,87', '+16,71+29,39%', '822.821', '+372.841+45,31%'],
1107
+ ['5 Tahun', 'Kurs', '', '', '14.282', '+1.967+13,77%'],
1108
+ ['oz', '1.280,82', '+1.007,89+78,69%', '18.292.671', '+18.896.578+103,30%'],
1109
+ ['gr', '41,18', '+32,40+78,69%', '588.123', '+607.539+103,30%']])
1080
1110
  (['Home', 'Emas 1 Gram', 'History', 'Trend', 'Perak 1 Gram', 'Pluang'],
1081
1111
  [[''],
1082
1112
  ['Emas 24 KaratHarga Emas 1 Gram', ''],
1083
- ['USD', '73,89↓', '-1,49-1,98%'],
1084
- ['KURS', '16.252,20↑', '+38,70+0,24%'],
1085
- ['IDR', '1.200.908,55↓', '-21.244,19-1,74%'],
1086
- ['Selasa, 30 April 2024 21:41']],
1113
+ ['USD', '73,58↓', '-0,24-0,33%'],
1114
+ ['KURS', '16.264,05↑', '+3,05+0,02%'],
1115
+ ['IDR', '1.196.769,55↓', '-3.597,26-0,30%'],
1116
+ ['Rabu, 01 Mei 2024 07:46']],
1087
1117
  [[''],
1088
1118
  ['Emas 1 Gram (IDR)Emas 1 Gram (USD)Kurs USD-IDR',
1089
1119
  'Hari Ini',
@@ -1094,19 +1124,19 @@ Output:
1094
1124
  '']],
1095
1125
  [['Pergerakkan Harga Emas 1 Gram'],
1096
1126
  ['', 'Penutupan Kemarin', 'Pergerakkan Hari Ini', 'Rata-rata'],
1097
- ['USD', '75,38', '73,89 - 75,38', '74,64'],
1098
- ['KURS', '16.213,50', '16.213,50 - 16.252,20', '16.232,85'],
1099
- ['IDR', '1.222.152,74', '1.200.908,55 - 1.222.152,74', '1.211.530,65'],
1127
+ ['USD', '73,82', '73,58 - 73,82', '73,70'],
1128
+ ['KURS', '16.261,00', '16.261,00 - 16.264,05', '16.262,53'],
1129
+ ['IDR', '1.200.366,81', '1.196.769,55 - 1.200.366,81', '1.198.568,18'],
1100
1130
  [''],
1101
1131
  ['', 'Awal Tahun', 'Pergerakkan YTD', '+/- YTD'],
1102
- ['USD', '66,32', '64,07 - 77,14', '+7,57 (11,41%)'],
1103
- ['KURS', '15.390,10', '15.390,00 - 16.307,80', '+862,10 (5,60%)'],
1104
- ['IDR', '1.020.729,53', '997.660,12 - 1.256.829,06', '+180.179,02 (17,65%)'],
1132
+ ['USD', '66,32', '64,07 - 77,14', '+7,26 (10,95%)'],
1133
+ ['KURS', '15.390,10', '15.390,00 - 16.307,80', '+873,95 (5,68%)'],
1134
+ ['IDR', '1.020.729,53', '997.660,12 - 1.256.829,06', '+176.040,02 (17,25%)'],
1105
1135
  [''],
1106
1136
  ['', 'Tahun Lalu / 52 Minggu', 'Pergerakkan 52 Minggu', '+/- 52 Minggu'],
1107
- ['USD', '63,97', '58,43 - 77,14', '+9,92 (15,51%)'],
1108
- ['KURS', '14.673,55', '14.669,40 - 16.307,80', '+1.578,65 (10,76%)'],
1109
- ['IDR', '938.709,73', '912.925,68 - 1.256.829,06', '+262.198,82 (27,93%)']])
1137
+ ['USD', '63,97', '58,43 - 77,14', '+9,61 (15,02%)'],
1138
+ ['KURS', '14.673,55', '14.669,40 - 16.307,80', '+1.590,50 (10,84%)'],
1139
+ ['IDR', '938.709,73', '912.925,68 - 1.256.829,06', '+258.059,82 (27,49%)']])
1110
1140
  ```
1111
1141
 
1112
1142
  ## iloads
@@ -1236,7 +1266,7 @@ Output:
1236
1266
  ```py
1237
1267
  8
1238
1268
  ['mana', 'aja']
1239
- [<Element a at 0x778b745db0>, <Element a at 0x778b780ff0>, <Element a at 0x778b781090>, <Element a at 0x778b7810e0>, <Element a at 0x778b781130>, <Element a at 0x778b781180>, <Element a at 0x778b7811d0>, <Element a at 0x778b781220>, <Element a at 0x778b781270>, <Element a at 0x778b7812c0>, <Element a at 0x778b781310>, <Element a at 0x778b781360>, <Element a at 0x778b7813b0>, <Element a at 0x778b781400>, <Element a at 0x778b781450>, <Element a at 0x778b7814a0>, <Element a at 0x778b7814f0>, <Element a at 0x778b781540>]
1269
+ [<Element a at 0x764f306c10>, <Element a at 0x764f33cff0>, <Element a at 0x764f33d090>, <Element a at 0x764f33d0e0>, <Element a at 0x764f33d130>, <Element a at 0x764f33d180>, <Element a at 0x764f33d1d0>, <Element a at 0x764f33d220>, <Element a at 0x764f33d270>, <Element a at 0x764f33d2c0>, <Element a at 0x764f33d310>, <Element a at 0x764f33d360>, <Element a at 0x764f33d3b0>, <Element a at 0x764f33d400>, <Element a at 0x764f33d450>, <Element a at 0x764f33d4a0>, <Element a at 0x764f33d4f0>, <Element a at 0x764f33d540>]
1240
1270
  False
1241
1271
  ```
1242
1272
 
@@ -1298,7 +1328,7 @@ print(list(iscandir("./", recursive=False, scan_file=False)))
1298
1328
 
1299
1329
  Output:
1300
1330
  ```py
1301
- <generator object iscandir at 0x778b738740>
1331
+ <generator object iscandir at 0x764f2f0840>
1302
1332
  [PosixPath('.git'), PosixPath('.vscode'), PosixPath('pypipr'), PosixPath('__pycache__'), PosixPath('dist')]
1303
1333
  ```
1304
1334
 
@@ -1335,73 +1365,73 @@ Output:
1335
1365
  'ComparePerformance': <class 'pypipr.ComparePerformance.ComparePerformance'>,
1336
1366
  'PintUregQuantity': <class 'pint.Quantity'>,
1337
1367
  'RunParallel': <class 'pypipr.RunParallel.RunParallel'>},
1338
- 'function': {'avg': <function avg at 0x779161e700>,
1339
- 'get_filemtime': <function get_filemtime at 0x778ded32e0>,
1340
- 'print_colorize': <function print_colorize at 0x778ded34c0>,
1341
- 'print_log': <function print_log at 0x778df8ab60>,
1342
- 'console_run': <function console_run at 0x778ded3380>,
1343
- 'auto_reload': <function auto_reload at 0x778debbec0>,
1344
- 'basename': <function basename at 0x778ded3240>,
1345
- 'chr_to_int': <function chr_to_int at 0x778ded3a60>,
1346
- 'int_to_chr': <function int_to_chr at 0x778ded3b00>,
1347
- 'irange': <function irange at 0x778ded3d80>,
1348
- 'batchmaker': <function batchmaker at 0x778ded3740>,
1349
- 'calculate': <function calculate at 0x778dcfc2c0>,
1350
- 'batch_calculate': <function batch_calculate at 0x778ded3600>,
1351
- 'is_empty': <function is_empty at 0x778dcfc540>,
1352
- 'exit_if_empty': <function exit_if_empty at 0x778dcfc400>,
1353
- 'input_char': <function input_char at 0x778dcfc4a0>,
1354
- 'get_by_index': <function get_by_index at 0x778dcfc5e0>,
1355
- 'choices': <function choices at 0x778dcfc7c0>,
1356
- 'chunk_array': <function chunk_array at 0x778dcfc860>,
1357
- 'create_folder': <function create_folder at 0x778dcfc900>,
1358
- 'datetime_from_string': <function datetime_from_string at 0x778dcfc9a0>,
1359
- 'datetime_now': <function datetime_now at 0x778dcfca40>,
1360
- 'dict_first': <function dict_first at 0x778dcfcae0>,
1361
- 'dirname': <function dirname at 0x778dcfcb80>,
1362
- 'is_iterable': <function is_iterable at 0x778dcfcd60>,
1363
- 'to_str': <function to_str at 0x778dcfce00>,
1364
- 'filter_empty': <function filter_empty at 0x778dcfcc20>,
1365
- 'get_class_method': <function get_class_method at 0x778dcfccc0>,
1366
- 'get_filesize': <function get_filesize at 0x778dcfcf40>,
1367
- 'github_pull': <function github_pull at 0x778dcfcfe0>,
1368
- 'github_push': <function github_push at 0x778dcfd1c0>,
1369
- 'github_user': <function github_user at 0x778dcfd260>,
1370
- 'iargv': <function iargv at 0x778dcfd080>,
1371
- 'idumps_html': <function idumps_html at 0x778dcfd4e0>,
1372
- 'idumps': <function idumps at 0x778dcfd3a0>,
1373
- 'int_to_int': <function int_to_int at 0x778ddd1e40>,
1374
- 'ienumerate': <function ienumerate at 0x778dcfd9e0>,
1375
- 'ienv': <function ienv at 0x778ddd1d00>,
1376
- 'iexec': <function iexec at 0x778ddd1ee0>,
1377
- 'ijoin': <function ijoin at 0x778ddd2020>,
1378
- 'iloads_html': <function iloads_html at 0x778ddd2200>,
1379
- 'iloads': <function iloads at 0x778ddd1f80>,
1380
- 'int_to_bin': <function int_to_bin at 0x778ddd2160>,
1381
- 'int_to_hex': <function int_to_hex at 0x778ddd22a0>,
1382
- 'int_to_oct': <function int_to_oct at 0x778ddd2340>,
1383
- 'is_valid_url': <function is_valid_url at 0x778ddd2520>,
1384
- 'iopen': <function iopen at 0x778dbd2980>,
1385
- 'iprint': <function iprint at 0x778ddd2480>,
1386
- 'ireplace': <function ireplace at 0x778ddd2840>,
1387
- 'iscandir': <function iscandir at 0x778dc860c0>,
1388
- 'isplit': <function isplit at 0x778dc86160>,
1389
- 'ivars': <function ivars at 0x778dc86200>,
1390
- 'log': <function log at 0x778dc862a0>,
1391
- 'password_generator': <function password_generator at 0x778dc86340>,
1392
- 'pip_freeze_without_version': <function pip_freeze_without_version at 0x778dc86480>,
1393
- 'poetry_publish': <function poetry_publish at 0x778dc86520>,
1394
- 'poetry_update_version': <function poetry_update_version at 0x778dc86660>,
1395
- 'print_dir': <function print_dir at 0x778dc86840>,
1396
- 'print_to_last_line': <function print_to_last_line at 0x778dc868e0>,
1397
- 'random_bool': <function random_bool at 0x778dc86980>,
1398
- 'restart': <function restart at 0x778dc86a20>,
1399
- 'set_timeout': <function set_timeout at 0x778dc86ac0>,
1400
- 'sets_ordered': <function sets_ordered at 0x778dc86b60>,
1401
- 'str_cmp': <function str_cmp at 0x778dc86c00>,
1402
- 'text_colorize': <function text_colorize at 0x778dc86ca0>},
1368
+ 'function': {'avg': <function avg at 0x765cea2700>,
1369
+ 'get_filemtime': <function get_filemtime at 0x76532972e0>,
1370
+ 'print_colorize': <function print_colorize at 0x76532974c0>,
1371
+ 'print_log': <function print_log at 0x7653346b60>,
1372
+ 'console_run': <function console_run at 0x7653297380>,
1373
+ 'auto_reload': <function auto_reload at 0x765327fec0>,
1374
+ 'basename': <function basename at 0x7653297240>,
1375
+ 'chr_to_int': <function chr_to_int at 0x7653297a60>,
1376
+ 'int_to_chr': <function int_to_chr at 0x7653297b00>,
1377
+ 'irange': <function irange at 0x7653297d80>,
1378
+ 'batchmaker': <function batchmaker at 0x7653297740>,
1379
+ 'calculate': <function calculate at 0x76530bc2c0>,
1380
+ 'batch_calculate': <function batch_calculate at 0x7653297600>,
1381
+ 'is_empty': <function is_empty at 0x76530bc540>,
1382
+ 'exit_if_empty': <function exit_if_empty at 0x76530bc400>,
1383
+ 'input_char': <function input_char at 0x76530bc4a0>,
1384
+ 'get_by_index': <function get_by_index at 0x76530bc5e0>,
1385
+ 'choices': <function choices at 0x76530bc7c0>,
1386
+ 'chunk_array': <function chunk_array at 0x76530bc860>,
1387
+ 'create_folder': <function create_folder at 0x76530bc900>,
1388
+ 'datetime_from_string': <function datetime_from_string at 0x76530bc9a0>,
1389
+ 'datetime_now': <function datetime_now at 0x76530bca40>,
1390
+ 'dict_first': <function dict_first at 0x76530bcae0>,
1391
+ 'dirname': <function dirname at 0x76530bcb80>,
1392
+ 'is_iterable': <function is_iterable at 0x76530bcd60>,
1393
+ 'to_str': <function to_str at 0x76530bce00>,
1394
+ 'filter_empty': <function filter_empty at 0x76530bcc20>,
1395
+ 'get_class_method': <function get_class_method at 0x76530bccc0>,
1396
+ 'get_filesize': <function get_filesize at 0x76530bcf40>,
1397
+ 'github_pull': <function github_pull at 0x76530bcfe0>,
1398
+ 'github_push': <function github_push at 0x76530bd1c0>,
1399
+ 'github_user': <function github_user at 0x76530bd260>,
1400
+ 'iargv': <function iargv at 0x76530bd080>,
1401
+ 'idumps_html': <function idumps_html at 0x76530bd4e0>,
1402
+ 'idumps': <function idumps at 0x76530bd3a0>,
1403
+ 'int_to_int': <function int_to_int at 0x7653195e40>,
1404
+ 'ienumerate': <function ienumerate at 0x76530bd9e0>,
1405
+ 'ienv': <function ienv at 0x7653195d00>,
1406
+ 'iexec': <function iexec at 0x7653195ee0>,
1407
+ 'ijoin': <function ijoin at 0x7653196020>,
1408
+ 'iloads_html': <function iloads_html at 0x7653196200>,
1409
+ 'iloads': <function iloads at 0x7653195f80>,
1410
+ 'int_to_bin': <function int_to_bin at 0x7653196160>,
1411
+ 'int_to_hex': <function int_to_hex at 0x76531962a0>,
1412
+ 'int_to_oct': <function int_to_oct at 0x7653196340>,
1413
+ 'is_valid_url': <function is_valid_url at 0x7653196520>,
1414
+ 'iopen': <function iopen at 0x7652f96980>,
1415
+ 'iprint': <function iprint at 0x7653196480>,
1416
+ 'ireplace': <function ireplace at 0x7653196840>,
1417
+ 'iscandir': <function iscandir at 0x76530520c0>,
1418
+ 'isplit': <function isplit at 0x7653052160>,
1419
+ 'ivars': <function ivars at 0x7653052200>,
1420
+ 'log': <function log at 0x76530522a0>,
1421
+ 'password_generator': <function password_generator at 0x7653052340>,
1422
+ 'pip_freeze_without_version': <function pip_freeze_without_version at 0x7653052480>,
1423
+ 'poetry_publish': <function poetry_publish at 0x7653052520>,
1424
+ 'poetry_update_version': <function poetry_update_version at 0x7653052660>,
1425
+ 'print_dir': <function print_dir at 0x7653052840>,
1426
+ 'print_to_last_line': <function print_to_last_line at 0x76530528e0>,
1427
+ 'random_bool': <function random_bool at 0x7653052980>,
1428
+ 'restart': <function restart at 0x7653052a20>,
1429
+ 'set_timeout': <function set_timeout at 0x7653052ac0>,
1430
+ 'sets_ordered': <function sets_ordered at 0x7653052b60>,
1431
+ 'str_cmp': <function str_cmp at 0x7653052c00>,
1432
+ 'text_colorize': <function text_colorize at 0x7653052ca0>},
1403
1433
  'variable': {'LINUX': True,
1404
- 'PintUreg': <pint.registry.UnitRegistry object at 0x7791624290>,
1434
+ 'PintUreg': <pint.registry.UnitRegistry object at 0x765cea85d0>,
1405
1435
  'WINDOWS': False},
1406
1436
  'module': {'asyncio': <module 'asyncio' from '/data/data/com.termux/files/usr/lib/python3.11/asyncio/__init__.py'>,
1407
1437
  'colorama': <module 'colorama' from '/data/data/com.termux/files/usr/lib/python3.11/site-packages/colorama/__init__.py'>,
@@ -1475,7 +1505,7 @@ print(password_generator())
1475
1505
 
1476
1506
  Output:
1477
1507
  ```py
1478
- L:R/WICc
1508
+ mu[nW(SF
1479
1509
  ```
1480
1510
 
1481
1511
  ## pip_freeze_without_version
@@ -1533,7 +1563,7 @@ Output:
1533
1563
  __enter__ : https:/www.google.com
1534
1564
  __fspath__ : https:/www.google.com
1535
1565
  __getstate__ : (None, {'_drv': '', '_root': '', '_parts': ['https:', 'www.google.com'], '_str': 'https:/www.google.com'})
1536
- __hash__ : -1646439377113927840
1566
+ __hash__ : -8515626571815858843
1537
1567
  __init__ : None
1538
1568
  __init_subclass__ : None
1539
1569
  __module__ : pathlib
@@ -1546,8 +1576,8 @@ Output:
1546
1576
  _cached_cparts : ['https:', 'www.google.com']
1547
1577
  _cparts : ['https:', 'www.google.com']
1548
1578
  _drv :
1549
- _flavour : <pathlib._PosixFlavour object at 0x7794d18a10>
1550
- _hash : -1646439377113927840
1579
+ _flavour : <pathlib._PosixFlavour object at 0x7662218b10>
1580
+ _hash : -8515626571815858843
1551
1581
  _parts : ['https:', 'www.google.com']
1552
1582
  _root :
1553
1583
  _str : https:/www.google.com
@@ -1569,7 +1599,7 @@ Output:
1569
1599
  is_reserved : False
1570
1600
  is_socket : False
1571
1601
  is_symlink : False
1572
- iterdir : <generator object Path.iterdir at 0x778b73e7a0>
1602
+ iterdir : <generator object Path.iterdir at 0x764f2f66c0>
1573
1603
  joinpath : https:/www.google.com
1574
1604
  name : www.google.com
1575
1605
  parent : https:
@@ -1609,13 +1639,21 @@ print(random_bool())
1609
1639
 
1610
1640
  Output:
1611
1641
  ```py
1612
- False
1642
+ True
1613
1643
  ```
1614
1644
 
1615
1645
  ## restart
1616
1646
 
1617
1647
  `restart(*argv)`
1618
1648
 
1649
+ Mengulang program dari awal seperti memulai awal.
1650
+
1651
+ Bisa ditambahkan dengan argumen tambahan
1652
+
1653
+ ```py
1654
+ restart("--stdio")
1655
+ ```
1656
+
1619
1657
  ## set_timeout
1620
1658
 
1621
1659
  `set_timeout(interval, func, args=None, kwargs=None)`
@@ -1635,7 +1673,7 @@ x.cancel()
1635
1673
 
1636
1674
  Output:
1637
1675
  ```py
1638
- <Timer(Thread-2, started 513412152560)>
1676
+ <Timer(Thread-2, started 508109683952)>
1639
1677
  menghentikan timeout 7
1640
1678
  ```
1641
1679
 
@@ -1653,7 +1691,7 @@ print(list(sets_ordered(array)))
1653
1691
 
1654
1692
  Output:
1655
1693
  ```py
1656
- <generator object sets_ordered at 0x778b75cd40>
1694
+ <generator object sets_ordered at 0x764f318e10>
1657
1695
  [2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
1658
1696
  ```
1659
1697
 
@@ -1693,11 +1731,19 @@ text_colorize("Print some text", color=colorama.Fore.RED)
1693
1731
  `APIMixinView()`
1694
1732
 
1695
1733
  APIView adalah class view untuk membuat Website API
1696
- Cara kerjanya adalah dengan menggunakan variabel GET untuk menerima data.
1734
+
1735
+ Cara kerjanya adalah dengan menggunakan variabel GET
1736
+ untuk menerima data.
1737
+ Cara ini dipilih untuk menghindari CORS protection.
1738
+
1739
+ Key dan value dari parameter get akan disimpan
1740
+ dalam variabel dictionary APIDict yg bisa langsung
1741
+ diakses.
1697
1742
 
1698
1743
  Class ini tidak bisa digunakan sendiri.
1699
- Class ini harus menjadi mixin Class View karena perlu trigger untuk
1700
- memanggil method get().
1744
+ Class ini harus menjadi mixin Class View karena
1745
+ perlu trigger untuk memanggil method get().
1746
+
1701
1747
 
1702
1748
  ```py
1703
1749
  class ExampleAPIView(APIMixinView, View):
@@ -1739,7 +1785,7 @@ print(ExampleComparePerformance().compare_performance())
1739
1785
 
1740
1786
  Output:
1741
1787
  ```py
1742
- {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x778b75c860>,
1788
+ {'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x764f318930>,
1743
1789
  'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
1744
1790
  'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
1745
1791
  'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
@@ -4,11 +4,19 @@ from django.http.response import HttpResponse
4
4
  class APIMixinView:
5
5
  """
6
6
  APIView adalah class view untuk membuat Website API
7
- Cara kerjanya adalah dengan menggunakan variabel GET untuk menerima data.
7
+
8
+ Cara kerjanya adalah dengan menggunakan variabel GET
9
+ untuk menerima data.
10
+ Cara ini dipilih untuk menghindari CORS protection.
11
+
12
+ Key dan value dari parameter get akan disimpan
13
+ dalam variabel dictionary APIDict yg bisa langsung
14
+ diakses.
8
15
 
9
16
  Class ini tidak bisa digunakan sendiri.
10
- Class ini harus menjadi mixin Class View karena perlu trigger untuk
11
- memanggil method get().
17
+ Class ini harus menjadi mixin Class View karena
18
+ perlu trigger untuk memanggil method get().
19
+
12
20
 
13
21
  ```py
14
22
  class ExampleAPIView(APIMixinView, View):
@@ -1,4 +1,4 @@
1
- def chr_to_int(s, start=1, numbers="abcdefghijklmnopqrstuvwxyz"):
1
+ def chr_to_int(s, start=0, numbers="abcdefghijklmnopqrstuvwxyz"):
2
2
  """
3
3
  Fungsi ini berguna untuk mengubah urutan huruf menjadi angka.
4
4
 
@@ -9,6 +9,7 @@ def filter_empty(iterable, zero_is_empty=True, str_strip=True):
9
9
  ```python
10
10
  var = [1, None, False, 0, "0", True, {}, ['eee']]
11
11
  print(filter_empty(var))
12
+ iprint(filter_empty(var))
12
13
  ```
13
14
  """
14
15
  for i in iterable:
@@ -4,7 +4,8 @@ import lxml
4
4
  def idumps_html(data, indent=None):
5
5
  """
6
6
  Serialisasi python variabel menjadi HTML.
7
- ```
7
+
8
+ ```html
8
9
  List -> <ul>...</ul>
9
10
  Dict -> <table>...</table>
10
11
  ```