Skip to main content

PYPIPR

ComparePerformance

Menjalankan seluruh method dalam class, Kemudian membandingkan waktu yg diperlukan. Nilai 100 berarti yang tercepat.

example :

import pprint

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))

pprint.pprint(ExampleComparePerformance().compare_result())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())
print(ExampleComparePerformance().compare_performance())

result :

{'a': <generator object test.<locals>.ExampleComparePerformance.a.<locals>.<genexpr> at 0x77d7cc1300>,
 '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': 121, 'b': 165, 'c': 99, 'd': 261}
{'a': 99, 'b': 160, 'c': 99, 'd': 204}
{'a': 99, 'b': 150, 'c': 101, 'd': 193}
{'a': 102, 'b': 159, 'c': 100, 'd': 194}
{'a': 100, 'b': 164, 'c': 103, 'd': 192}

LINUX

bool(x) -> bool

Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.

example :

print(LINUX)

result :

True

WINDOWS

bool(x) -> bool

Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.

example :

print(WINDOWS)

result :

False

batch_calculate

Analisa perhitungan massal. Bisa digunakan untuk mencari alternatif terendah/tertinggi/dsb.

example :

res = batch_calculate("({1 10} m) ** {1 3}")
for k, v in res:
    print(f"{k} : {v:~P}")

result :

(1 m) ** 1 : 1 m
(1 m) ** 2 : 1 m²
(1 m) ** 3 : 1 m³
(2 m) ** 1 : 2 m
(2 m) ** 2 : 4 m²
(2 m) ** 3 : 8 m³
(3 m) ** 1 : 3 m
(3 m) ** 2 : 9 m²
(3 m) ** 3 : 27 m³
(4 m) ** 1 : 4 m
(4 m) ** 2 : 16 m²
(4 m) ** 3 : 64 m³
(5 m) ** 1 : 5 m
(5 m) ** 2 : 25 m²
(5 m) ** 3 : 125 m³
(6 m) ** 1 : 6 m
(6 m) ** 2 : 36 m²
(6 m) ** 3 : 216 m³
(7 m) ** 1 : 7 m
(7 m) ** 2 : 49 m²
(7 m) ** 3 : 343 m³
(8 m) ** 1 : 8 m
(8 m) ** 2 : 64 m²
(8 m) ** 3 : 512 m³
(9 m) ** 1 : 9 m
(9 m) ** 2 : 81 m²
(9 m) ** 3 : 729 m³
(10 m) ** 1 : 10 m
(10 m) ** 2 : 100 m²
(10 m) ** 3 : 1000 m³

batchmaker

Alat Bantu untuk membuat teks yang berulang. Gunakan {[start][separator][finish]([separator][step])}.

[start] dan [finish]    -> bisa berupa huruf maupun angka
([separator][step])     -> bersifat optional
[separator]             -> selain huruf dan angka
[step]                  -> berupa angka positif

example :

import pprint
pattern = "Urutan {1/6/3} dan {10:9} dan {j k} dan {Z - A - 15} saja."
pprint.pprint(list(batchmaker(pattern)))

result :

['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.',
 'Urutan 1 dan 10 dan k dan Z saja.',
 'Urutan 1 dan 10 dan k dan K saja.',
 'Urutan 1 dan 10 dan k dan  saja.',
 'Urutan 1 dan 9 dan j dan Z saja.',
 'Urutan 1 dan 9 dan j dan K saja.',
 'Urutan 1 dan 9 dan j dan  saja.',
 'Urutan 1 dan 9 dan k dan Z saja.',
 'Urutan 1 dan 9 dan k dan K saja.',
 'Urutan 1 dan 9 dan k dan  saja.',
 'Urutan 4 dan 10 dan j dan Z saja.',
 'Urutan 4 dan 10 dan j dan K saja.',
 'Urutan 4 dan 10 dan j dan  saja.',
 'Urutan 4 dan 10 dan k dan Z saja.',
 'Urutan 4 dan 10 dan k dan K saja.',
 'Urutan 4 dan 10 dan k dan  saja.',
 'Urutan 4 dan 9 dan j dan Z saja.',
 'Urutan 4 dan 9 dan j dan K saja.',
 'Urutan 4 dan 9 dan j dan  saja.',
 'Urutan 4 dan 9 dan k dan Z saja.',
 'Urutan 4 dan 9 dan k dan K saja.',
 'Urutan 4 dan 9 dan k dan  saja.',
 'Urutan 7 dan 10 dan j dan Z saja.',
 'Urutan 7 dan 10 dan j dan K saja.',
 'Urutan 7 dan 10 dan j dan  saja.',
 'Urutan 7 dan 10 dan k dan Z saja.',
 'Urutan 7 dan 10 dan k dan K saja.',
 'Urutan 7 dan 10 dan k dan  saja.',
 'Urutan 7 dan 9 dan j dan Z saja.',
 'Urutan 7 dan 9 dan j dan K saja.',
 'Urutan 7 dan 9 dan j dan  saja.',
 'Urutan 7 dan 9 dan k dan Z saja.',
 'Urutan 7 dan 9 dan k dan K saja.',
 'Urutan 7 dan 9 dan k dan  saja.']

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

example :

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}")

result :

90 centimeter * kilometer * meter
900.0 meter ** 3
900.0 meter ** 3
90 cm·km·m
90 cm km m

chr_to_int

Fungsi ini berguna untuk mengubah urutan huruf menjadi angka. dimulai dari a = 0

example :

print(chr_to_int("a"))
print(chr_to_int("z"))
print(chr_to_int("ac"))
print(chr_to_int("abc", numbers="abcde"))

result :

0
25
28
37

chunk_array

Membagi array menjadi potongan-potongan dengan besaran yg diinginkan

example :

arr = [2, 3, 12, 3, 3, 42, 42, 1, 43, 2, 42, 41, 4, 24, 32, 42, 3, 12, 32, 42, 42]
print(chunk_array(arr, 5))
pprint.pprint(list(chunk_array(arr, 5)))

result :

<generator object chunk_array at 0x77e1490310>
[[2, 3, 12, 3, 3],
 [42, 42, 1, 43, 2],
 [42, 41, 4, 24, 32],
 [42, 3, 12, 32, 42],
 [42]]

datetime_from_string

Parse iso_string menjadi datetime object. Mempermudah untuk konversi timezone

example :

print(datetime_from_string("2022-12-12 15:40:13").isoformat())
print(datetime_from_string("2022-12-12 15:40:13", timezone="Asia/Jakarta"))

result :

2022-12-12T15:40:13+00:00
2022-12-12 15:40:13+07:00

datetime_now

Memudahkan dalam membuat Datetime untuk suatu timezone tertentu

example :

print(datetime_now())
print(datetime_now("Asia/Jakarta"))
print(datetime_now("GMT"))
print(datetime_now("Etc/GMT+7"))

result :

2025-10-20 10:17:28.695107
2025-10-20 10:17:28.695134+07:00
2025-10-20 03:17:28.695909+00:00
2025-10-19 20:17:28.699404-07:00

filter_empty

Generator yang mengembalikan elemen non-kosong dari iterable. Lihat docstring sebelumnya untuk detail parameter.

example :

var = [1, None, False, 0, "0", True, {}, ['eee']]
print(filter_empty(var))
print(list(filter_empty(var)))

result :

<generator object filter_empty at 0x77d7e7e510>
[1, '0', True, ['eee']]

get_class_method

Mengembalikan berupa tuple yg berisi list dari method dalam class

example :

class ExampleGetClassMethod:
    def a(self):
        return [x for x in range(10)]

    def b(self):
        return [x for x in range(10)]

    def c(self):
        return [x for x in range(10)]

    def d(self):
        return [x for x in range(10)]

print(get_class_method(ExampleGetClassMethod))
pprint.pprint(list(get_class_method(ExampleGetClassMethod)))

result :

<generator object get_class_method at 0x77d1d0e180>
[<function test.<locals>.ExampleGetClassMethod.a at 0x77d1d253a0>,
 <function test.<locals>.ExampleGetClassMethod.b at 0x77d1d26480>,
 <function test.<locals>.ExampleGetClassMethod.c at 0x77d1d25580>,
 <function test.<locals>.ExampleGetClassMethod.d at 0x77d1d26520>]

irange

Meningkatkan fungsi range() dari python untuk pengulangan menggunakan huruf

example :

print(list(irange(10)))
print(list(irange(3, 15)))
print(list(irange(13, 5)))
print(list(irange(2, 10, 3)))
print(list(irange(2, "10", 3)))
print(list(irange("10")))
print(list(irange("10", "100", 7)))
print(list(irange("h")))
print(list(irange("A", "D")))
print(list(irange("z", "a", 4)))

result :

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[13, 12, 11, 10, 9, 8, 7, 6]
[2, 5, 8]
[2, 5, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 17, 24, 31, 38, 45, 52, 59, 66, 73, 80, 87, 94]
['a', 'b', 'c', 'd', 'e', 'f', 'g']
['A', 'B', 'C']
['z', 'v', 'r', 'n', 'j', 'f', 'b']

random_bool

Menghasilkan nilai random True atau False. Fungsi ini merupakan fungsi tercepat untuk mendapatkan random bool. Fungsi ini sangat cepat, tetapi pemanggilan fungsi ini membutuhkan overhead yg besar.

example :

print(random_bool())

result :

False

Metadata

Release files for pypipr 3.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypipr 3.0.4
File Size Uploaded
pypipr-3.0.4.tar.gz 26.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypipr 3.0.4
File Interpreter ABI Platform
pypipr-3.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 66.2 kB

Release files / pypipr-3.0.4.tar.gz

Download URL pypipr-3.0.4.tar.gz
Size 26.6 kB
Tags Source
SHA-256 checksum
How to use checksums
97ae23adc04292611964b65177f42c241eb094f2f63d75c6a3961371db489a59
BLAKE2b-256 checksum
How to use checksums
946e22085f1b669cb3519bb0f04f1ee1d4bf6a75713c6f38deae4f19664ad83b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release files / pypipr-3.0.4-py3-none-any.whl

Download URL pypipr-3.0.4-py3-none-any.whl
Size 39.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4008a77c899c54851b89f84aaa4f7d49f68f70c5b534cc75ec96ed4438e6f8ac
BLAKE2b-256 checksum
How to use checksums
234fd28b3d5b1e336ab52d02efdb752d7c0203e5aa85123987e70f56e5b9f90b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release history Release notifications | RSS feed

This release

3.0.4 This release

2 release files

3.0.3

2 release files

3.0.0

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.99

2 release files

1.0.98

2 release files

1.0.97

2 release files

1.0.96

1 release file

1.0.95

2 release files

1.0.94

2 release files

1.0.93

2 release files

1.0.92

2 release files

1.0.91

2 release files

1.0.90

2 release files

1.0.89

2 release files

1.0.88

2 release files

1.0.87

2 release files

1.0.86

2 release files

1.0.85

2 release files

1.0.84

2 release files

1.0.83

2 release files

1.0.82

2 release files

1.0.81

2 release files

1.0.80

2 release files

1.0.79

2 release files

1.0.78

2 release files

1.0.77

2 release files

1.0.76

2 release files

1.0.75

2 release files

1.0.74

2 release files

1.0.73

2 release files

1.0.72

2 release files

1.0.71

2 release files

1.0.70

2 release files

1.0.69

2 release files

1.0.68

2 release files

1.0.67

2 release files

1.0.66

2 release files

1.0.65

2 release files

1.0.64

2 release files

1.0.63

1 release file

1.0.62

2 release files

1.0.61

2 release files

1.0.60

2 release files

1.0.59

2 release files

1.0.58

2 release files

1.0.57

2 release files

1.0.56

2 release files

1.0.52

2 release files

1.0.51

2 release files

1.0.49

2 release files

1.0.48

2 release files

1.0.47

2 release files

1.0.46

2 release files

1.0.45

2 release files

1.0.44

2 release files

1.0.43

2 release files

1.0.42

2 release files

1.0.41

2 release files

1.0.40

2 release files

1.0.39

2 release files

1.0.38

2 release files

1.0.37

2 release files

1.0.36

2 release files

1.0.35

2 release files

1.0.34

2 release files

1.0.33

2 release files

1.0.32

2 release files

1.0.31

2 release files

1.0.30

2 release files

1.0.29

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.2

2 release files

0.1.95

2 release files

0.1.94

2 release files

0.1.93

2 release files

0.1.92

2 release files

0.1.91

2 release files

0.1.90

2 release files

0.1.89

2 release files

0.1.88

2 release files

0.1.87

2 release files

0.1.86

2 release files

0.1.85

2 release files

0.1.84

2 release files

0.1.83

2 release files

0.1.82

2 release files

0.1.81

2 release files

0.1.80

2 release files

0.1.79

2 release files

0.1.78

2 release files

0.1.77

2 release files

0.1.69

2 release files

0.1.68

2 release files

0.1.67

2 release files

0.1.66

2 release files

0.1.65

2 release files

0.1.64

2 release files

0.1.63

2 release files

0.1.62

2 release files

0.1.61

2 release files

0.1.60

2 release files

0.1.59

2 release files

0.1.58

2 release files

0.1.57

2 release files

0.1.56

2 release files

0.1.55

2 release files

0.1.54

2 release files

0.1.53

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page