A multifunctional all-in-one utility tool for managing internal Python objects, compatible with nearly all Python 3 versions.
Project description
pyobject - A multifunctional all-in-one utility tool for managing internal Python objects, compatible with nearly all Python 3 versions and all platforms (Windows, Linux, macOS, etc.).
[English | 中文]
Submodules:
pyobject.__init__ - Displays and outputs attribute values of Python objects.
pyobject.browser - Provides a visual interface to browse Python objects using tkinter.
pyobject.code - Provides tools for manipulating Python native bytecode.
pyobject.search - Implements the utility for locating the path to a specific object.
pyobject.objproxy - Implement a generic object proxy that can replace any Python object, including modules, functions, and classes
pyobject.pyobj_extension - A C extension module offering functions to manipulate low-level Python objects.
Functions:
describe(obj, level=0, maxlevel=1, tab=4, verbose=False, file=sys.stdout):
browse(object, verbose=False, name=‘obj’):
Browse any Python objects in a GUI using tkinter. - verbose: Same as in describe(), whether to print special methods.
The GUI of browse() function is:
GUI of browse()
bases(obj, level=0, tab=4):
Prints base classes and the inheritance order of an object. - tab: Number of spaces for indentation, default is 4.
Functions for searching objects:
make_list(start_obj, recursions=2, all=False):
Creates a list of objects without duplicates. - start: The object to start searching from. - recursion: Number of recursions. - all: Whether to include special attributes (e.g., __init__) in the list.
make_iter(start_obj, recursions=2, all=False):
Similar to make_list, but creates an iterator, which may contain duplicates.
search(obj, start, recursions=3, search_str=False):
Searches for objects starting from a specified starting point. For example, search(os, sys, 3) returns results like ["sys.modules['site'].os", "sys.modules['os']", ...]. - obj: The object to search for. - start: The starting object. - recursion: Number of recursions. - search_str: Whether to search substrings within strings.
Class: pyobject.Code
The Code class provides a wrapper for Python bytecode objects to manipulate them.
Python’s internal bytecode object, CodeType (e.g., func.__code__), is immutable. The Code class offers a mutable bytecode object and a set of methods to simplify operations on the underlying bytecode.
Unlike Java bytecode, Python bytecode is not cross-version compatible. Bytecode generated by different versions of the Python interpreter is incompatible.
The Code class provides a universal interface for bytecode, supporting all Python versions from 3.6 to 3.14 (including PyPy’s .pyc format), simplifying complex version compatibility issues.
Constructor (def __init__(self, code=None))
The Code class can be initialized with an existing CodeType object or another Code instance. If no argument is provided, a default CodeType object is created.
Attributes
_code: The internal bytecode of the current Code object. Use exec(c._code) or exec(c.to_code()) instead of directly using exec(c).
The following are attributes of Python’s built-in bytecode (also attributes of the Code object). While Python’s internal CodeType bytecode is immutable and these attributes are read-only, the Code object is mutable, meaning these attributes can be modified:
co_argcount: The number of positional arguments (including those with default values).
co_cellvars: A tuple containing the names of local variables referenced by nested functions.
co_code: A bytes object representing the sequence of bytecode instructions, storing the actual binary bytecode.
co_consts: A tuple containing the literals used by the bytecode.
co_filename: The filename of the source code being compiled.
co_firstlineno: The first line number of the source code corresponding to the bytecode. Used internally by the interpreter in combination with co_lnotab to output precise line numbers in tracebacks.
co_flags: An integer encoding multiple flags used by the interpreter.
co_freevars: A tuple containing the names of free variables.
co_kwonlyargcount: The number of keyword-only arguments.
co_lnotab: A string encoding the mapping of bytecode offsets to line numbers (replaced by co_linetable in Python 3.10).
co_name: The name of the function/class corresponding to the bytecode.
co_names: A tuple containing the names used by the bytecode.
co_nlocals: The number of local variables used by the function (including arguments).
co_stacksize: The stack size required to execute the bytecode.
co_varnames: A tuple containing the names of local variables (starting with argument names).
Attributes introduced in Python 3.8 and later: - co_posonlyargcount: The number of positional-only arguments, introduced in Python 3.8. - co_linetable: Line number mapping data, introduced in Python 3.10 as a replacement for co_lnotab. - co_exceptiontable: Exception table data, introduced in Python 3.11. - co_qualname: The qualified name of the bytecode, introduced in Python 3.11.
Methods
Core Methods
exec(globals_=None, locals_=None): Executes the code object within the provided global and local scope dictionaries.
eval(globals_=None, locals_=None): Executes the code object within the provided global and local scope dictionaries and returns the result.
copy(): Creates a copy of the Code object and returns the duplicate.
to_code(): Converts the Code instance back to a built-in CodeType object, equivalent to c._code.
to_func(globals_=None, name=None, argdefs=None, closure=None, kwdefaults=None): Converts the code object into a Python function. The parameters are the same as those used when instantiating Python’s built-in FunctionType.
get_flags(): Returns a list of flag names for the co_flags attribute, e.g., ["NOFREE"].
get_sub_code(name): Searches for sub-code objects (e.g., functions or class definitions) in the co_consts attribute. This method does not perform recursive searches. Returns the found Code object or raises a ValueError if not found.
Serialization
to_pycfile(filename): Dumps the code object into a .pyc file using the marshal module.
from_pycfile(filename): Creates a Code instance from a .pyc file.
from_file(filename): Creates a Code instance from a .py or .pyc file.
pickle(filename): Serializes the Code object into a pickle file.
Debugging and Inspection
show(*args, **kw): Internally calls pyobject.desc to display the attributes of the code object. The parameters are the same as those used in desc().
info(): Internally calls dis.show_code to display basic information about the bytecode.
dis(*args, **kw): Calls the dis module to output the disassembly of the bytecode, equivalent to dis.dis(c.to_code()).
decompile(version=None, *args, **kw): Calls the uncompyle6 library to decompile the code object into source code. (The uncompyle6 library is optional when installing the pyobject package.)
Factory Functions
fromfunc(function): Creates a Code instance from a Python function object, equivalent to Code(func.__code__).
fromstring(string, mode='exec', filename=''): Creates a Code instance from a source code string. The parameters are the same as those used in the built-in compile function, which is called internally.
Compatibility Details
Attribute co_lnotab: In Python 3.10 and later, attempts to set the co_lnotab attribute will automatically be converted into setting the co_linetable attribute.
Example usage: (excerpted from the doctest):
>>> def f():print("Hello")
>>> c=Code.fromfunc(f) # or c=Code(f.__code__)
>>> c.co_consts
(None, 'Hello')
>>> c.co_consts=(None, 'Hello World!')
>>> c.exec()
Hello World!
>>>
>>> # Save to pickle files
>>> import os,pickle
>>> temp=os.getenv('temp')
>>> with open(os.path.join(temp,"temp.pkl"),'wb') as f:
... pickle.dump(c,f)
...
>>> # Execute bytecodes from pickle files
>>> f=open(os.path.join(temp,"temp.pkl"),'rb')
>>> pickle.load(f).to_func()()
Hello World!
>>> # Convert to pyc files and import them
>>> c.to_pycfile(os.path.join(temp,"temppyc.pyc"))
>>> sys.path.append(temp)
>>> import temppyc
Hello World!
>>> Code.from_pycfile(os.path.join(temp,"temppyc.pyc")).exec()
Hello World!
Object Proxy Classes ObjChain and ProxiedObj
Example usage:
from pyobject import ObjChain
chain = ObjChain(export_attrs=["__array_struct__"])
np = chain.new_object("import numpy as np", "np")
plt = chain.new_object("import matplotlib.pyplot as plt", "plt",
export_funcs=["show"])
# Testing the pseudo numpy and matplotlib modules
arr = np.array(range(1, 11))
arr_squared = arr ** 2
print(np.mean(arr)) # Output the average value
plt.plot(arr, arr_squared) # Plot the graph of y=x**2
plt.show()
# Display the auto-generated code calling numpy and matplotlib libraries
print(f"Code:\n{chain.get_code()}\n")
print(f"Optimized:\n{chain.get_optimized_code()}")
Output:
Code: # Unoptimized code that contains all detailed access records for objects
import numpy as np
import matplotlib.pyplot as plt
var0 = np.array
var1 = var0(range(1, 11))
var2 = var1 ** 2
var3 = np.mean
var4 = var3(var1)
var5 = var1.mean
var6 = var5(axis=None, dtype=None, out=None)
ex_var7 = str(var4)
var8 = plt.plot
var9 = var8(var1, var2)
var10 = var1.to_numpy
var11 = var1.values
var12 = var1.shape
var13 = var1.ndim
...
var81 = var67.__array_struct__
ex_var82 = iter(var70)
ex_var83 = iter(var70)
var84 = var70.mask
var85 = var70.__array_struct__
var86 = plt.show
var87 = var86()
Optimized: # Optimized code
import numpy as np
import matplotlib.pyplot as plt
var1 = np.array(range(1, 11))
plt.plot(var1, var1 ** 2)
plt.show()
Detailed Usage
``ProxiedObj``
ProxiedObj is the type of object returned by ObjChain’s new_object() and add_existing_obj() methods. It can be used as a substitute for any regular object, though it is generally not recommended to directly use the methods and properties of the ProxiedObj class itself.
Implementation Details
Principle of Code Optimization
temp_var = [1, 2, 3]
unused_var = func(temp_var)
Module: pyobj_extension
This module is written in C and can be imported directly using import pyobject.pyobj_extension as pyobj_extension. It includes the following functions:
convptr(pointer):
Converts an integer pointer to a Python object, as a reverse of id().
py_decref(obj):
Decreases the reference count of an object.
py_incref(obj):
Increases the reference count of an object.
getrealrefcount(obj):
setrefcount(obj, n):
getrefcount_nogil(obj) and setrefcount_nogil(obj, ref_data):
In the GIL-free version of Python 3.13+, get and set reference counts, where ref_data is (ob_ref_local, ob_ref_shared), without considering the reference counts added during the call.
Warning: Improper use of these functions above may lead to crash of the intepreter.
list_in(obj, lst):
Determine whether obj is in the sequence lst. Compared to the built-in Python call obj in lst that invokes the == operator (__eq__()) multiple times, this function directly compares the pointers to improve the performance.
get_string_intern_dict():
Return the internal dictionary for interning strings (sys.intern()).
Current ``pyobject`` Version: 1.3.4
Change Log
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyobject-1.3.4.tar.gz.
File metadata
- Download URL: pyobject-1.3.4.tar.gz
- Upload date:
- Size: 56.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d66936df2dcc062c38e3978b39ef2f9102ea3b0335118c9ca7806654a8f9d130
|
|
| MD5 |
60490c02f0606643eeb2eaecc8fdd616
|
|
| BLAKE2b-256 |
ad7205d0c6200cc427e0d6df3f0d28866d58cab52b10a8b1578e76ee7135a769
|
File details
Details for the file pyobject-1.3.4-pp311-pypy311_pp73-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-pp311-pypy311_pp73-win_amd64.whl
- Upload date:
- Size: 54.1 kB
- Tags: PyPy, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b0539fac9e493327984caadccc6f712b6b69d66579680c3e57289ff6f69c496
|
|
| MD5 |
c343b1c0e35f5d25588d2653d68e53b9
|
|
| BLAKE2b-256 |
235ff87a632413223e3eafee08411a9ebeb73914cbc41f03501550e2753cb952
|
File details
Details for the file pyobject-1.3.4-pp38-pypy38_pp73-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-pp38-pypy38_pp73-win_amd64.whl
- Upload date:
- Size: 54.2 kB
- Tags: PyPy, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43b821cd9b6b2261cfa344daecc4f04af8fea9a1303af21811fa8844328c01ee
|
|
| MD5 |
e3a7e007cd381303bda7514ab6f3d3b7
|
|
| BLAKE2b-256 |
08ffa0fa549c013479dcea556d1e763c28e15e67368f6bc100735c13a0ceb6c7
|
File details
Details for the file pyobject-1.3.4-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 55.6 kB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8550116cac01e3e7f6f078410610ceab47ad162275786979698c4ead59a3cc8e
|
|
| MD5 |
4e59961b048d0857cd3e0525067d378a
|
|
| BLAKE2b-256 |
9191cf88fbde5d0db892e9fe459ed3e284dfe59054ab92a9baf53b1d5fcecd83
|
File details
Details for the file pyobject-1.3.4-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 54.9 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44fbe678b5f6db2c61c4dc0c31fd6b1359938456aca45bd8fd6136db6b748e19
|
|
| MD5 |
d1ad882ea8ced7e8ea0600964329743d
|
|
| BLAKE2b-256 |
118806376afbe921e7f45da06d391ed533558c6e3d5a3752e12923cb917366e0
|
File details
Details for the file pyobject-1.3.4-cp313-cp313t-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp313-cp313t-win_amd64.whl
- Upload date:
- Size: 54.9 kB
- Tags: CPython 3.13t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
851c49384daedc444473640a9cc3db264aac5b64da3e9b01f742a2e1f821d375
|
|
| MD5 |
927b47d44723c622cbdd1062a4126465
|
|
| BLAKE2b-256 |
99b5166b1b9025743998205a040dbff47e7e61a86821ec8c8678355cfabb66f9
|
File details
Details for the file pyobject-1.3.4-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 54.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3b0ee5262739207dbaf9e4cb759a043b50fbd55462eeefe2d6adf9110775826
|
|
| MD5 |
b125ffe4c50a200adc18a533c29a407d
|
|
| BLAKE2b-256 |
3b740a1b21f4000143e935a0fb9f0380865f8ae41b9ef3d615a168b68b4474bc
|
File details
Details for the file pyobject-1.3.4-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 54.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
994fa915a13e14b58ca6da144344ddc9cb306a81c97063bf4402626321a7be92
|
|
| MD5 |
e04e6e514e808fd36a3d9a5e509703ca
|
|
| BLAKE2b-256 |
ce9be6f28deeec8945a4277db7be62edec3be6b2ba853249e0889f2ad63f7e98
|
File details
Details for the file pyobject-1.3.4-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 54.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66bb44a9e678f9f0973315ff246ed3242803bb9ee3e7d4df9723a4aa47eab18e
|
|
| MD5 |
8a2233948ffb70c77df8cdfdf88de754
|
|
| BLAKE2b-256 |
87bce781f9149d41a44ac40831bf77e5c49947a025c6c46df6d14e613aa8d5f7
|
File details
Details for the file pyobject-1.3.4-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 54.2 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26bb9770dcc8d4f79ca78c22fd06f8e9a1a690236fa9bdb65de10cebf04728a7
|
|
| MD5 |
2f93b469966be6b72b7b53b9bac4db1f
|
|
| BLAKE2b-256 |
f7b67d5793254eb699120fed69d4e6192aa16a7ec950c15dd0bb45bbbd875264
|
File details
Details for the file pyobject-1.3.4-cp310-cp310-win32.whl.
File metadata
- Download URL: pyobject-1.3.4-cp310-cp310-win32.whl
- Upload date:
- Size: 53.4 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44dd4eb35e96f549ae37121b3083ca7eea52c6fb86bf013923471b8b6e9efabb
|
|
| MD5 |
c5d3d49d83526a011510af1a78617529
|
|
| BLAKE2b-256 |
b939dcafe41d6a511d244d7c7ece46f1aa3c5132ffe087f6b9b3fca6f51e4c80
|
File details
Details for the file pyobject-1.3.4-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 54.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9051ed471e598d1a0672ef626add4a62f3b930488f973fc1663518116e342fc
|
|
| MD5 |
56fa058c571533693f91ff2bea719a63
|
|
| BLAKE2b-256 |
28f9ee0645d44f1d5ecdca20eae6c0d04448d270d47c2f361f298df3c8bf4594
|
File details
Details for the file pyobject-1.3.4-cp39-cp39-win32.whl.
File metadata
- Download URL: pyobject-1.3.4-cp39-cp39-win32.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9305fad10da7013e3d2fb2102c85c66ab2f330665d5a69f71e498012fbd5bb24
|
|
| MD5 |
283b45bbc28dfc473fbb6d0abbbbaab0
|
|
| BLAKE2b-256 |
1a67b4a7afbdbe21177a53cc12a2dca62a89590213d404ba60405bf9ae07bc47
|
File details
Details for the file pyobject-1.3.4-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 54.0 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2db6355f728f87138ac184296cb4436d7e61b3d27cb8caec8e8ac0f2204f2a09
|
|
| MD5 |
791fd0a6e38a282d0ce2aa2eb893f9d7
|
|
| BLAKE2b-256 |
62c43fe0ed206ce248a16556728c9def0a8a3791954ccce2b7dfe2e382e41f73
|
File details
Details for the file pyobject-1.3.4-cp38-cp38-win32.whl.
File metadata
- Download URL: pyobject-1.3.4-cp38-cp38-win32.whl
- Upload date:
- Size: 53.4 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1408b3cadd5f5ef85035eb04750a424b20648af03fd8d7383743058d21025b3c
|
|
| MD5 |
89d18a8af45f453523f101a5e37db1da
|
|
| BLAKE2b-256 |
362e635a5927a6afdd734dfe46ed82c12281847a97c41a0ae49b46d154ee0ab7
|
File details
Details for the file pyobject-1.3.4-cp37-cp37m-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 54.1 kB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daf7c2b650b78c888cd7b2e5bdf06d115506491d67c75a9d4977205e1dc9a0eb
|
|
| MD5 |
4790935fcd57261e0c71d753e2a48399
|
|
| BLAKE2b-256 |
3d0ff2a6ee06366d72f7491d45a4fcf3e36c279603de0bec2dd15f33f29eb263
|
File details
Details for the file pyobject-1.3.4-cp37-cp37m-win32.whl.
File metadata
- Download URL: pyobject-1.3.4-cp37-cp37m-win32.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d69bf5fb64cea0ab443bdfafc179bd6331c38870a7434b8b8b41a04771f9344
|
|
| MD5 |
ab1f11379f560cd4cf991ddde079ce54
|
|
| BLAKE2b-256 |
0fcd8d9867d250676df0bc8f2169786817dbfe61a4f78a558c17813a2cd3776c
|
File details
Details for the file pyobject-1.3.4-cp36-cp36m-win_amd64.whl.
File metadata
- Download URL: pyobject-1.3.4-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 54.1 kB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b9d041a2bab85ade5457cade45dfa93d9b0a2682a22dea09b8e2bcb7fc5b049
|
|
| MD5 |
5e9d641c31c188ef00be1b8d2652ca44
|
|
| BLAKE2b-256 |
0179c18322a8a45a73486eac305d4171e37ee771c586fca934bd435633f2fa8c
|
File details
Details for the file pyobject-1.3.4-cp36-cp36m-win32.whl.
File metadata
- Download URL: pyobject-1.3.4-cp36-cp36m-win32.whl
- Upload date:
- Size: 57.0 kB
- Tags: CPython 3.6m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee6ca4eb1229a43d075e913cdda9bc26a209df164573448bbfc72bfd9d703544
|
|
| MD5 |
28c49338ebd68d561907fe3e893db616
|
|
| BLAKE2b-256 |
4daac28a23e0f19266a6e5d454d45d00a213c455d581d91ced8fe6e131d7aa24
|