The Python Package Index Project
Project description
About
The Python Package Index Project (pypipr)
pypi : https://pypi.org/project/pypipr
Setup
Install with pip
python -m pip install pypipr
Import with * for fastest access
from pypipr.pypipr import *
CONSTANT
LINUX
WINDOWS
FUNCTION
avg
avg
Simple Average Function karena tidak disediakan oleh python
n = [1, 22, 2, 3, 13, 2, 123, 12, 31, 2, 2, 12, 2, 1]
print(avg(n))
Output:
16.285714285714285
basename
basename
Mengembalikan nama file dari path
print(basename("/ini/nama/folder/ke/file.py"))
Output:
file.py
batchmaker
batchmaker
Alat Bantu untuk membuat teks yang berulang. Gunakan {[start]-[finish][-[step]]}.
[start] dan [finish] -> bisa berupa huruf maupun angka
[-[step]] -> bersifat optional
s = "Urutan {1-6-3} dan {10-9} dan {j-k} dan {Z-A-15} saja."
print(generator.batchmaker(s))
print(batchmaker(s))
Output:
<generator object generator.batchmaker at 0x0000021E30427200>
('Urutan 1 dan 10 dan j dan Z saja.', 'Urutan 1 dan 10 dan j dan K saja.', 'Urutan 1 dan 10 dan k dan Z saja.', 'Urutan 1 dan 10 dan k dan K saja.', 'Urutan 1 dan 9 dan j dan Z saja.', 'Urutan 1 dan 9 dan j dan K saja.', 'Urutan 1 dan 9 dan k dan Z saja.', 'Urutan 1 dan 9 dan k dan K saja.', 'Urutan 4 dan 10 dan j dan Z saja.', 'Urutan 4 dan 10 dan j dan K saja.', 'Urutan 4 dan 10 dan k dan Z saja.', 'Urutan 4 dan 10 dan k dan K saja.', 'Urutan 4 dan 9 dan j dan Z saja.', 'Urutan 4 dan 9 dan j dan K saja.', 'Urutan 4 dan 9 dan k dan Z saja.', 'Urutan 4 dan 9 dan k dan K saja.')
calculate
calculate
Mengembalikan hasil dari perhitungan teks menggunakan modul pint. Mendukung perhitungan matematika dasar dengan satuan.
Return value:
- Berupa class Quantity dari modul pint
Format:
- f"{result:~P}" -> pretty
- f"{result:~H}" -> html
- result.to_base_units() -> SI
- result.to_compact() -> human readable
fx = "3 meter * 10 cm * 3 km"
res = calculate(fx)
print(res)
print(res.to_base_units())
print(res.to_compact())
print(f"{res:~P}")
print(f"{res:~H}")
Output:
90 centimeter * kilometer * meter
900.0 meter ** 3
900.0 meter ** 3
90 cm·km·m
90 cm km m
chunck_array
chunck_array
Membagi array menjadi potongan-potongan dengan besaran yg diinginkan
array = [2, 3, 12, 3, 3, 42, 42, 1, 43, 2, 42, 41, 4, 24, 32, 42, 3, 12, 32, 42, 42]
print(generator.chunck_array(array, 5))
print(chunck_array(array, 5))
Output:
<generator object generator.chunck_array at 0x0000021E30427120>
([2, 3, 12, 3, 3], [42, 42, 1, 43, 2], [42, 41, 4, 24, 32], [42, 3, 12, 32, 42], [42])
console_run
console_run
Menjalankan command seperti menjalankan command di Command Terminal
console_run('dir')
console_run('ls')
create_folder
create_folder
Membuat folder. Membuat folder secara recursive dengan permission.
create_folder("contoh_membuat_folder")
create_folder("contoh/membuat/folder/recursive")
create_folder("./contoh_membuat_folder/secara/recursive")
datetime_from_string
datetime_from_string
Parse iso_string menjadi datetime object
print(datetime_from_string("2022-12-12 15:40:13").isoformat())
print(datetime_from_string("2022-12-12 15:40:13", timezone="Asia/Jakarta").isoformat())
Output:
2022-12-12T15:40:13+00:00
2022-12-12T15:40:13+07:00
datetime_now
datetime_now
Memudahkan dalam membuat Datetime untuk suatu timezone tertentu
print(datetime_now("Asia/Jakarta"))
print(datetime_now("GMT"))
print(datetime_now("Etc/GMT+7"))
Output:
2023-05-18 19:10:21.362652+07:00
2023-05-18 12:10:21.363655+00:00
2023-05-18 05:10:21.368656-07:00
dict_first
dict_first
Mengambil nilai (key, value) pertama dari dictionary dalam bentuk tuple
d = {
"key1": "value1",
"key2": "value2",
"key3": "value3",
}
print(dict_first(d))
Output:
('key1', 'value1')
dirname
dirname
Mengembalikan nama folder dari path. Tanpa trailing slash di akhir.
print(dirname("/ini/nama/folder/ke/file.py"))
Output:
/ini/nama/folder/ke
exit_if_empty
exit_if_empty
Keluar dari program apabila seluruh variabel setara dengan empty
var1 = None
var2 = '0'
exit_if_empty(var1, var2)
explode
explode
Memecah text menjadi list berdasarkan separator.
t = '/ini/contoh/path/'
print(explode(t, separator='/'))
Output:
['', 'ini', 'contoh', 'path', '']
file_get_contents
file_get_contents
Membaca seluruh isi file ke memory. Apabila file tidak ada maka akan return None. Apabila file ada tetapi kosong, maka akan return empty string
print(file_get_contents("test.txt"))
file_put_contents
file_put_contents
Menuliskan content ke file. Apabila file tidak ada maka file akan dibuat. Apabila file sudah memiliki content maka akan di overwrite.
file_put_contents("test.txt", "Contoh menulis content")
filter_empty
filter_empty
get_class_method
get_class_method
Mengembalikan berupa tuple yg berisi list dari method dalam class
class ExampleGetClassMethod:
def a():
return [x for x in range(10)]
def b():
return [x for x in range(10)]
def c():
return [x for x in range(10)]
def d():
return [x for x in range(10)]
print(get_class_method(ExampleGetClassMethod))
Output:
(<function ExampleGetClassMethod.a at 0x0000021E305E1CA0>, <function ExampleGetClassMethod.b at 0x0000021E305E1C10>, <function ExampleGetClassMethod.c at 0x0000021E305E1D30>, <function ExampleGetClassMethod.d at 0x0000021E305E1DC0>)
get_filemtime
get_filemtime
Mengambil informasi last modification time file dalam nano seconds
print(get_filemtime(__file__))
Output:
1684411811737850500
get_filesize
get_filesize
Mengambil informasi file size dalam bytes
print(get_filesize(__file__))
Output:
36159
github_pull
github_pull
Menjalankan command git pull
github_pull()
github_push
github_push
Menjalankan command status, add, commit dan push
github_push('Commit Message')
html_get_contents
html_get_contents
Mengambil content html dari url.
RETURN:
- String: Apabila hanya url saja yg diberikan
- List of etree: Apabila xpath diberikan
- False: Apabila terjadi error
print(html_get_contents("https://www.google.com/"))
# Using XPATH
a = html_get_contents("https://www.google.com/", xpath="//a")
for i in a:
print(i.text)
print(i.attrib.get('href'))
# Using REGEX
a = html_get_contents("https://www.google.com/", regex=r"(<a.[^>]+>(?:(?:\s+)?(.[^<]+)(?:\s+)?)<\/a>)")
for i in a:
print(i)
# Using cssselect
a = html_get_contents("https://www.google.com/", css_select="a")
for i in a:
print(i.text)
print(i.attrib.get("href"))
Output:
Semua
None
Gambar
https://www.google.com/webhp?output=search&tbm=isch&tbo=u&sa=X&ved=0ahUKEwi6weGB6_7-AhW5m1YBHauHDoEQ0tQDCBAoAQ
None
https://www.google.co.id/intl/id/about/products?tab=wh
None
https://accounts.google.com/ServiceLogin?hl=id&passive=true&continue=https://www.google.com/&ec=GAZAAQ
None
https://search.app.goo.gl/?ofl=https%3A%2F%2Flens.google&al=googleapp%3A%2F%2Flens%3Flens_data%3DKAw&apn=com.google.android.googlequicksearchbox&amv=301204913&isi=284815942&ius=googleapp&ibi=com.google.GoogleMobile&link=https%3A%2F%2Fgoo.gl%2Fiosgoogleapp%2Fdefault%3Furl%3Dgoogleapp%253A%252F%252Flens%253Fmin-version%253D180%2526lens_data%253DKAw&ifl=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fgoogle%2Fid284815942%3Fppid%3D1ac8cc35-d99c-4a1d-b909-321c8968cc74%26pt%3D9008%26mt%3D8%26ct%3D4815459-oo-lens-isb-bar-lens-cam%26UTM_campaign%3Dgoogle_search_mweb&efr=1&ct=4815459-oo-lens-isb-bar-lens-cam&utm_campaign=4815459-oo-lens-isb-bar-lens-cam&utm_source=google_search_mweb&utm_medium=owned&pt=9008&mt=8
English
https://www.google.com/setprefs?sig=0_ukaOV2KMgZVrcXakGNyUhFJseO4%3D&hl=en&source=homepage&sa=X&ved=0ahUKEwi6weGB6_7-AhW5m1YBHauHDoEQ2ZgBCBk
None
https://www.google.com/setprefs?sig=0_ukaOV2KMgZVrcXakGNyUhFJseO4%3D&hl=jv&source=homepage&sa=X&ved=0ahUKEwi6weGB6_7-AhW5m1YBHauHDoEQ2ZgBCBo
Basa Bali
https://www.google.com/setprefs?sig=0_ukaOV2KMgZVrcXakGNyUhFJseO4%3D&hl=ban&source=homepage&sa=X&ved=0ahUKEwi6weGB6_7-AhW5m1YBHauHDoEQ2ZgBCBs
None
/preferences?hl=id&prev=https://www.google.com/&sa=X&ved=0ahUKEwi6weGB6_7-AhW5m1YBHauHDoEQr8gICCA
#
Tema gelap: nonaktif
#
Setelan
https://www.google.com/preferences?hl=id
Privasi
https://policies.google.com/privacy?hl=id&fg=1
Persyaratan
https://policies.google.com/terms?hl=id&fg=1
Periklanan
https://www.google.com/intl/id_id/ads/?subid=ww-ww-et-g-awa-a-g_hpafoot1_1!o2&utm_source=google.com&utm_medium=referral&utm_campaign=google_hpafooter&fg=1
Bisnis
https://www.google.com/services/?subid=ww-ww-et-g-awa-a-g_hpbfoot1_1!o2&utm_source=google.com&utm_medium=referral&utm_campaign=google_hpbfooter&fg=1
Tentang
https://about.google/?utm_source=google-ID&utm_medium=referral&utm_campaign=hp-footer&fg=1
html_put_contents
html_put_contents
Fungsi untuk mengirim data ke URL dengan method POST dan mengembalikan respon dari server sebagai string.
Parameters: url (str): URL tujuan. data (dict): Data yang akan dikirim.
Returns:
- str: Respon dari server dalam bentuk string.
data = dict(pengirim="saya", penerima="kamu")
print(html_put_contents("https://arbadzukhron.deta.dev/", data))
iexec
iexec
improve exec() python function untuk mendapatkan outputnya
print(iexec('print(9*9)'))
Output:
81
implode
implode
Simplify Python join functions like PHP function. Iterable bisa berupa sets, tuple, list, dictionary.
arr = {'asd','dfs','weq','qweqw'}
print(implode(arr, ', '))
arr = '/ini/path/seperti/url/'.split('/')
print(implode(arr, ','))
print(implode(arr, ',', remove_empty=True))
arr = {'a':'satu', 'b':(12, 34, 56), 'c':'tiga', 'd':'empat'}
print(implode(arr, separator='</li>\n<li>', start='<li>', end='</li>', recursive_flat=True))
print(implode(arr, separator='</div>\n<div>', start='<div>', end='</div>'))
print(implode(10, ' '))
Output:
dfs, qweqw, asd, weq
,ini,path,seperti,url,
ini,path,seperti,url
<li>satu</li>
<li>12</li>
<li>34</li>
<li>56</li>
<li>tiga</li>
<li>empat</li>
<div>satu</div>
<div><div>12</div>
<div>34</div>
<div>56</div></div>
<div>tiga</div>
<div>empat</div>
10
input_char
input_char
Meminta masukan satu huruf tanpa menekan Enter.
input_char("Input char : ")
input_char("Input char : ", default='Y')
input_char("Input Char without print : ", echo_char=False)
irange
irange
Improve python range() function untuk pengulangan menggunakan huruf
print(generator.irange('a', 'z'))
print(irange('H', 'a'))
print(irange('1', '5', 3))
print(irange('1', 5, 3))
# print(irange('a', 5, 3))
print(irange(-10, 4, 3))
print(irange(1, 5))
Output:
<generator object generator.irange at 0x0000021E304B86D0>
['H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a']
['1', '4']
[1, 4]
[-10, -7, -4, -1, 2]
[1, 2, 3, 4, 5]
is_empty
is_empty
Mengecek apakah variable setara dengan nilai kosong pada empty.
Pengecekan nilai yang setara menggunakan simbol '==', sedangkan untuk pengecekan lokasi memory yang sama menggunakan keyword 'is'
print(is_empty("teks"))
print(is_empty(True))
print(is_empty(False))
print(is_empty(None))
print(is_empty(0))
print(is_empty([]))
Output:
False
False
True
True
True
True
is_iterable
is_iterable
Mengecek apakah suatu variabel bisa dilakukan forloop atau tidak
s = 'ini string'
print(is_iterable(s))
l = [12,21,2,1]
print(is_iterable(l))
r = range(100)
print(is_iterable(r))
d = {'a':1, 'b':2}
print(is_iterable(d.values()))
Output:
False
True
True
True
iscandir
iscandir
Mempermudah scandir untuk mengumpulkan folder, subfolder dan file
print(generator.iscandir())
print(iscandir())
log
log
Decorator untuk mempermudah pembuatan log karena tidak perlu mengubah fungsi yg sudah ada. Melakukan print ke console untuk menginformasikan proses yg sedang berjalan didalam program.
@log
def some_function():
pass
@log()
def some_function_again():
pass
@log("Calling some function")
def some_function_more():
pass
some_function()
some_function_again()
some_function_more()
print_colorize
print_colorize
Print text dengan warna untuk menunjukan text penting
print_colorize("Print some text")
print_colorize("Print some text", color=colorama.Fore.RED)
print_dir
print_dir
Print property dan method yang tersedia pada variabel
p = pathlib.Path("https://www.google.com/")
print_dir(p)
Output:
__bytes__ : b'https:\\www.google.com'
__class__ : .
__dir__ : ['__module__', '__doc__', '__slots__', 'is_mount', '__new__', '_init', '_make_child_relpath', '__enter__', '__exit__', '_opener', '_raw_open', 'cwd', 'home', 'samefile', 'iterdir', 'glob', 'rglob', 'absolute', 'resolve', 'stat', 'owner', 'group', 'open', 'read_bytes', 'read_text', 'write_bytes', 'write_text', 'readlink', 'touch', 'mkdir', 'chmod', 'lchmod', 'unlink', 'rmdir', 'lstat', 'link_to', 'rename', 'replace', 'symlink_to', 'exists', 'is_dir', 'is_file', 'is_symlink', 'is_block_device', 'is_char_device', 'is_fifo', 'is_socket', 'expanduser', '_accessor', '__reduce__', '_parse_args', '_from_parts', '_from_parsed_parts', '_format_parsed_parts', '_make_child', '__str__', '__fspath__', 'as_posix', '__bytes__', '__repr__', 'as_uri', '_cparts', '__eq__', '__hash__', '__lt__', '__le__', '__gt__', '__ge__', '__class_getitem__', 'drive', 'root', 'anchor', 'name', 'suffix', 'suffixes', 'stem', 'with_name', 'with_stem', 'with_suffix', 'relative_to', 'is_relative_to', 'parts', 'joinpath', '__truediv__', '__rtruediv__', 'parent', 'parents', 'is_absolute', 'is_reserved', 'match', '_cached_cparts', '_drv', '_hash', '_parts', '_pparts', '_root', '_str', '__getattribute__', '__setattr__', '__delattr__', '__ne__', '__init__', '__reduce_ex__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__', '_flavour']
__doc__ : Path subclass for Windows systems.
On a Windows system, instantiating a Path should return this object.
__enter__ : https:\www.google.com
__fspath__ : https:\www.google.com
__hash__ : -3459111094813906924
__init__ : None
__init_subclass__ : None
__module__ : pathlib
__reduce__ : (<class 'pathlib.WindowsPath'>, ('https:', 'www.google.com'))
__repr__ : WindowsPath('https:/www.google.com')
__sizeof__ : 80
__slots__ : ()
__str__ : https:\www.google.com
__subclasshook__ : NotImplemented
_accessor : <pathlib._NormalAccessor object at 0x0000021E2F7F3CD0>
_cached_cparts : ['https:', 'www.google.com']
_cparts : ['https:', 'www.google.com']
_drv :
_flavour : <pathlib._WindowsFlavour object at 0x0000021E2F7F34C0>
_hash : -3459111094813906924
_init : None
_parts : ['https:', 'www.google.com']
_root :
_str : https:\www.google.com
absolute : C:\Users\ToshibaM840\Desktop\website\pypipr\https:\www.google.com
anchor :
as_posix : https:/www.google.com
cwd : C:\Users\ToshibaM840\Desktop\website\pypipr
drive :
expanduser : https:\www.google.com
home : C:\Users\ToshibaM840
is_absolute : False
is_reserved : False
iterdir : <generator object Path.iterdir at 0x0000021E30555A50>
joinpath : https:\www.google.com
name : www.google.com
parent : https:
parents : <WindowsPath.parents>
parts : ('https:', 'www.google.com')
root :
stem : www.google
suffix : .com
suffixes : ['.google', '.com']
print_log
print_log
Akan melakukan print ke console. Berguna untuk memberikan informasi proses program yg sedang berjalan.
print_log("Standalone Log")
random_bool
random_bool
Menghasilkan nilai random True atau False. Fungsi ini merupakan fungsi tercepat untuk mendapatkan random bool.
print(random_bool())
Output:
False
scan_file
scan_file
Mengumpulkan nama-nama file dalam folder dan subfolder.
print(generator.scan_file())
print(scan_file())
scan_folder
scan_folder
Mengumpulkan nama-nama folder dan subfolder. Tidak termasuk [".", ".."] dan file.
print(generator.scan_folder(recursive=False))
print(scan_folder(recursive=False))
Output:
<generator object generator.scan_folder at 0x0000021E304B86D0>
(WindowsPath('.git'), WindowsPath('.pytest_cache'), WindowsPath('.vscode'), WindowsPath('dist'), WindowsPath('pypipr'))
serialize
serialize
Mengubah variabel data menjadi string untuk yang dapat dibaca untuk disimpan. String yang dihasilkan berbentuk syntax YAML.
data = {
'a': 123,
't': ['disini', 'senang', 'disana', 'senang'],
'l': (12, 23, [12, 42])
}
print(serialize(data))
Output:
a: 123
l:
- 12
- 23
- - 12
- 42
t:
- disini
- senang
- disana
- senang
set_timeout
set_timeout
Menjalankan fungsi ketika sudah sekian detik. Apabila timeout masih berjalan tapi kode sudah selesai dieksekusi semua, maka program tidak akan berhenti sampai timeout selesai, kemudian fungsi dijalankan, kemudian program dihentikan.
set_timeout(3, lambda: print("Timeout 3"))
x = set_timeout(7, lambda: print("Timeout 7"))
print(x)
print("menghentikan timeout 7")
x.cancel()
Output:
<Timer(Thread-2, started 4820)>
menghentikan timeout 7
sets_ordered
sets_ordered
Hanya mengambil nilai unik dari suatu list
array = [2, 3, 12, 3, 3, 42, 42, 1, 43, 2, 42, 41, 4, 24, 32, 42, 3, 12, 32, 42, 42]
print(generator.sets_ordered(array))
print(sets_ordered(array))
Output:
<generator object generator.sets_ordered at 0x0000021E30555890>
[2, 3, 12, 42, 1, 43, 41, 4, 24, 32]
strtr
strtr
STRing TRanslate, mengubah string menggunakan kamus dari dict.
text = 'aku disini mau kemana saja'
replacements = {
"disini": "disitu",
"kemana": "kesini",
}
print(strtr(text, replacements))
Output:
aku disitu mau kesini saja
strtr_regex
strtr_regex
STRing TRanslate metode Regex, mengubah string menggunakan kamus dari dict.
text = 'aku {{ ini }} mau ke {{ sini }} mau kemana saja'
replacements = {
r"\{\{\s*(ini)\s*\}\}": r"itu dan \1",
r"\{\{\s*sini\s*\}\}": r"situ",
}
print(strtr_regex(text, replacements))
Output:
aku itu dan ini mau ke situ mau kemana saja
to_str
to_str
Mengubah value menjadi string literal
print(to_str(5))
print(to_str([]))
print(to_str(False))
print(to_str(True))
print(to_str(None))
Output:
5
False
True
unserialize
unserialize
Mengubah string data hasil dari serialize menjadi variabel. String data adalah berupa syntax YAML.
data = {
'a': 123,
't': ['disini', 'senang', 'disana', 'senang'],
'l': (12, 23, [12, 42])
}
s = serialize(data)
print(unserialize(s))
Output:
{'a': 123, 'l': [12, 23, [12, 42]], 't': ['disini', 'senang', 'disana', 'senang']}
CLASS
ComparePerformance
ComparePerformance
Menjalankan seluruh method dalam class, Kemudian membandingkan waktu yg diperlukan. Nilai 100 berarti yang tercepat.
class ExampleComparePerformance(ComparePerformance):
# number = 1
z = 10
def a(self):
return (x for x in range(self.z))
def b(self):
return tuple(x for x in range(self.z))
def c(self):
return [x for x in range(self.z)]
def d(self):
return list(x for x in range(self.z))
print(ExampleComparePerformance().compare_result())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
Output:
{'a': <generator object ExampleComparePerformance.a.<locals>.<genexpr> at 0x0000021E304B86D0>, 'b': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), 'c': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'd': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
{'a': 116, 'b': 140, 'c': 100, 'd': 367}
{'a': 101, 'b': 133, 'c': 100, 'd': 158}
{'a': 100, 'b': 147, 'c': 101, 'd': 171}
{'a': 100, 'b': 131, 'c': 103, 'd': 163}
{'a': 100, 'b': 150, 'c': 103, 'd': 166}
RunParallel
RunParallel
Menjalankan program secara bersamaan.
Structure:
- Semua methods akan dijalankan secara paralel kecuali method dengan nama yg diawali underscore
_
- Method untuk multithreading/multiprocessing harus memiliki 2 parameter, yaitu:
result: dict
danq: queue.Queue
. Parameterresult
digunaan untuk memberikan return value dari method, dan Parameterq
digunakan untuk mengirim data antar proses. - Method untuk asyncio harus menggunakan keyword
async def
, dan untuk perpindahan antar kode menggunakanawait asyncio.sleep(0)
, dan keywordreturn
untuk memberikan return value. - Return Value berupa dictionary dengan key adalah nama function, dan value adalah return value dari setiap fungsi
- Harus berada dalam
if __name__ == "__main__":
karena pembatasan dari python
Note:
class RunParallel
didesain hanya untuk pemrosesan data saja.- Penggunaannya
class RunParallel
dengan cara membuat instance sub class beserta data yg akan diproses, kemudian panggil fungsi yg dipilihrun_asyncio / run_multi_threading / run_multi_processing
, kemudian dapatkan hasilnya. class RunParallel
tidak didesain untuk menyimpan data, karena setiap module terutama modulemultiprocessing
tidak dapat mengakses data kelas dari proses yg berbeda.
class ExampleRunParallel(RunParallel):
z = "ini"
def __init__(self) -> None:
self.pop = random.randint(0, 100)
def _set_property_here(self, v):
self.prop = v
def a(self, result: dict, q: queue.Queue):
result["z"] = self.z
result["pop"] = self.pop
result["a"] = "a"
q.put("from a 1")
q.put("from a 2")
def b(self, result: dict, q: queue.Queue):
result["z"] = self.z
result["pop"] = self.pop
result["b"] = "b"
result["q_get"] = q.get()
def c(self, result: dict, q: queue.Queue):
result["z"] = self.z
result["pop"] = self.pop
result["c"] = "c"
result["q_get"] = q.get()
async def d(self):
print("hello")
await asyncio.sleep(0)
print("hello")
result = {}
result["z"] = self.z
result["pop"] = self.pop
result["d"] = "d"
return result
async def e(self):
print("world")
await asyncio.sleep(0)
print("world")
result = {}
result["z"] = self.z
result["pop"] = self.pop
result["e"] = "e"
return result
if __name__ == "__main__":
print(ExampleRunParallel().run_asyncio())
print(ExampleRunParallel().run_multi_threading())
print(ExampleRunParallel().run_multi_processing())
Output:
calculate__quantity
__calculate__quantity__
generator
generator
Class ini menyediakan beberapa fungsi yang bisa mengembalikan generator. Digunakan untuk mengoptimalkan program.
Class ini dibuat karena python generator yang disimpan dalam variabel hanya dapat diakses satu kali.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.