Bringing the hell of pointers to Python.
Project description
pointers.py
Bringing the hell of pointers to Python
Why would you ever need this
Examples
from pointers import _
text: str = "hello world"
ptr = _&text # creates a new pointer object
ptr <<= "world hello"
print(text) # world hello
from pointers import c_malloc as malloc, c_free as free, strcpy, printf
ptr = malloc(3)
strcpy(ptr, "hi")
printf("%s\n", ptr)
free(ptr)
Features
- Fully type safe
- Pythonic pointer API
- Bindings for the entire C standard library
- Segfaults
Why does this exist?
The main purpose of pointers.py is to simply break the rules of Python, but has some other use cases:
- Can help C/C++ developers get adjusted to Python
- Provides a nice learning environment for programmers learning how pointers work
- Makes it very easy to manipulate memory in Python
- Why not?
Installation
Linux/macOS
python3 -m pip install -U pointers.py
Windows
py -3 -m pip install -U pointers.py
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.
Source Distribution
pointers.py-2.0.0.tar.gz
(21.6 kB
view hashes)
Built Distributions
Close
Hashes for pointers.py-2.0.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2cd10a07d35ebb4e7e94634aaa17e1b5ee8230dbda2d47dafebbfd4b5b95e02 |
|
MD5 | 4fefac67a339cb94fd7f8894b6b226c6 |
|
BLAKE2b-256 | cf850c897ac50dcd0aac2ad0219ba1b2e0a1d9f5a1ca63e2d15b5c7bb06b0ff6 |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 340cb62478c0940f6a93eab7a7d5ed7c2aa70cf6585eaed80cd8554c41adbe44 |
|
MD5 | a321e1d30ec934405f95a9d9851e0717 |
|
BLAKE2b-256 | 8a3769a1022081f93c5516206646beb5bab250c8eeebf12757db9fa29edcc46a |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ecce801a322c07cc89b623735721e0d7823e636a881897ac2415c7ac3850ad5 |
|
MD5 | 125575d2f18a2726357add2699dd5b1d |
|
BLAKE2b-256 | 19e4e78d8ee5c1ba4bee21d69dae47429623ea19e9a4a92b5346ba08a44f4cbf |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be6950e67f9763cf1b2cd7c6855cdd0c3a4ed85844540b6d4b2ae19c06ba3d69 |
|
MD5 | e2802e50f74483500216dbe376c23ea2 |
|
BLAKE2b-256 | f980797673651b0d574df25090fdabf37fa3fb195442efce32cd635b708cd2ed |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 390675296beb87fabf8e387fcafa1ee81307effdb388abb0af733fce972fe3b5 |
|
MD5 | ae64eb2b99ef6e2c8963ef7a2626f246 |
|
BLAKE2b-256 | 7e8e4d901490afd7b0f54cbc5c74657a6f06d22dad9c7732edb53d7aafce8e5f |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b57b9aa391302508af753b12bee9dac9866e0f3351fa4de518daea4a1a98572d |
|
MD5 | 4be7e7a85efe695fec344882ac82fc7c |
|
BLAKE2b-256 | 1f15e3458186e17f5c35a5e06a92e66ac5ab9a0701fdae0cdf0b5ce79a4887f2 |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b76faadddc5b81b37ece5f8875b8fcf1d4d48819f2ac328d62ed3407120632c |
|
MD5 | 2447c85fe148a6edc8fc7607603d84dc |
|
BLAKE2b-256 | f8433543c65f755f00edb190ea0e794b9d121bcb070f4ce43f196958cd69dbdc |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e06761586844b56e183aba84affe9489f5113101ceecde1898c70adbd8156400 |
|
MD5 | f2a6b538569bc1ff9e8a4a03d26e44fe |
|
BLAKE2b-256 | 984972b846343fa61c0a43c65a139ab3a3e928bd68ba8d8f30eea22e2314ea80 |
Close
Hashes for pointers.py-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f748604dfe54fe5c90f6d07c2e16ccff3804e555b02f3498766f88fc01e1489d |
|
MD5 | 82f68e4817dd175acb9e8c4cf61309e0 |
|
BLAKE2b-256 | 362ffa3c1c3ca5f6e7c3144ea94bb91e6d5a618cad8126a88d00640dd0da2dfe |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09422a9b22b4560285d84f2dafe894b52e04db420d8e07e442a83e9147672090 |
|
MD5 | d38fb8a6e5f5f2e638783b222bbb5e42 |
|
BLAKE2b-256 | 3d7a5c07940fef576eee4795840d4897ffc4f2b1eebed97167cf8fcbbddc5152 |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8de24c826adc7b505d6e577a05b780b116e118f6ed81dcce7d19151f17cab65 |
|
MD5 | 264f1abc0020992ffce9f007f9373c79 |
|
BLAKE2b-256 | 4b12c14c62515786e2d570929168e72b42183c6578541fbf54bfac53abe64ea4 |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34dec0203ed952d47f22bafa7627da8d6ba8698484ab7ed09e14fb7bb53b84b6 |
|
MD5 | 3615cfc31c3cf1a0b142115c61fbe532 |
|
BLAKE2b-256 | e2f690517fef6f61c0f9b6f4b5b9ca810def49507fd126aed3ef99989f0b277f |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b53688007d171e0addafa3acd4b112949b1b3204167b5d682b9a4e4c89e64fc1 |
|
MD5 | bc7841a69394c337e816a93636eb67da |
|
BLAKE2b-256 | ddc71cf6dddb7c6c372b0f817edbb79a59f200a658bf3fad4092d17892025e11 |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 338de2eaaea466bf89fb63a85b423e7ec5d577883aba38c118d14f088740de5a |
|
MD5 | c8295322eb07019c6fb5f0858e48cdaf |
|
BLAKE2b-256 | a63046f5865474017c0deb77c3947c1f546497e1d6f0f65a277b65637ee7fb78 |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27b99e26e9fb0dd7a3bb3ff8844834eaffd625a031458a1d7b95a7cb4d8cc5a9 |
|
MD5 | 38b6842eec92c6b9891e2af844cdc0cd |
|
BLAKE2b-256 | 1f8df96508ac170ee637d4668845b19328a0d240b217d8ba2d20cf5fe56a719a |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f23d0a3155ebf6886144a8848f28dbba67ef1955158bef653e6e72ea21b07e4 |
|
MD5 | 9e37390e3c3f91f107b5296c4b6380a9 |
|
BLAKE2b-256 | d66040d121a5d54d153069cabe627a3c761195eefed0624b394627b4edaa0571 |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a19d011865d688456e8ad53bab5414330eb53d163728923e326263370dcdbf6 |
|
MD5 | 23162181def7ec9dd10fe3acaf5862ed |
|
BLAKE2b-256 | a1c5bcf3bd830afd6412a9c325ee9a8a82a578d279fc8e28ab4107915dada66a |
Close
Hashes for pointers.py-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60fe0c1fbab7f04aa180f7c11a6f266b38a0059328a781bfa1767a285a5f94b8 |
|
MD5 | 4b7dcfa96382da710ad9a28c39f29bb0 |
|
BLAKE2b-256 | 03886d5f48b64ca878b267d504a0b4626e97b6ce99be06f8e5bd1af1b1a957ec |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2c7ce12d380a5192d1e78b478a0109ca8230fdf560300e87cde5fc87d1bb176 |
|
MD5 | c1cc5d5f174e5ed24bd0a3f0bb3c01c4 |
|
BLAKE2b-256 | 1b25c4eea8f9bb8397680a97e5b9655eb8148d21dcf9187ad8e57cd241b341a4 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d70e571cf4796be961bc7e43c134ca31bdfe3aedb5124d7852c03dc5f513a60 |
|
MD5 | 5f5f3b4c77825850391e76835e47c4f2 |
|
BLAKE2b-256 | fe2204ce59505f445c380e803d8c4f88f2a4a7f306097d87552bb34f833d1c90 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbb7bc5131f13cc7107fd75c13775cb2d566762ecc1e144b5c25e8d29905d507 |
|
MD5 | 6fcd034a39a924cfc6354831fbcd2f9f |
|
BLAKE2b-256 | 454e6e8555c83933269936cc3005ccf565abd328b5d093c262bf860a35aa471f |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbf919661740a2ee9584a983c18703258d6c3bdbea93bf1be9dc123ec1ab110d |
|
MD5 | 0311d4864b7c4d8f2126d61636cd4583 |
|
BLAKE2b-256 | ccd0e9850a54b29560fdd63c147b871c1e3d7af1160b1290fa2c5730ed9069ae |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e959eb5316bee75fe366ae5f35af47168baac2c9d11dbca6d6411d785f2d433 |
|
MD5 | 99f0f9f297cba9b0dc75b13e2fc1f7a0 |
|
BLAKE2b-256 | 99f2d51fbc0c230f6fbd3afeac0d07f0664e004985426d9bf2cd913fb3e15e06 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4469c4be7d79065f4a968f38cc81c3bd1f7ec91d4d3d9fe2f6fe8e3b487d3aa8 |
|
MD5 | e012af8f72720976f6b58e78e8567fff |
|
BLAKE2b-256 | 66aac5e59624543d724c0bef6e436393e372e81bab1c37a42eb00f18304fef42 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e57e607a9e8d26e6259295fe175d7a6068831cf5b2d32b2ae5ec950df81b7b9 |
|
MD5 | 8b02f3388acc0a0d6c6e8d1f9fe8b69b |
|
BLAKE2b-256 | 156d3e8da1f1392eb622984605b090f6989c03d93e0f3fb8aaa777bf66dc8a37 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a0ef8d581cd3e0b886e29c2255503acc8f5cb3dabe06ba23dd665cb3ffa58dc |
|
MD5 | 947bfe2fba8890dc8b40e1956ea5ba56 |
|
BLAKE2b-256 | b1e26366fade2b18ce810b1506d667f55e5e1c511797ab1e762be919d9b52398 |
Close
Hashes for pointers.py-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f734229288856a877a7d8aba254a0ce4d8c815fb4064bfa60843f8236c609553 |
|
MD5 | 3a044c8d9974071860983ec4ab6fe4e2 |
|
BLAKE2b-256 | 6631734d2b1274e030e685d5dcf98668d8b1bde9459e0f0ed350ab85ec248a91 |