Skip to main content

A Python package that provides a way to define private attributes in C++ implementation.

Project description

Private Attribute (c++ implementation)

Introduction

This package provide a way to create the private attribute like "C++" does.

All API

from private_attribute import (PrivateAttrBase, PrivateWrapProxy)      # 1 Import public API

def my_generate_func(obj_id, attr_name):                           # 2 Optional: custom name generator
    return f"_hidden_{obj_id}_{attr_name}"

class MyClass(PrivateAttrBase, private_func=my_generate_func):     # 3 Inherit + optional custom generator
    __private_attrs__ = ['a', 'b', 'c', 'result', 'conflicted_name']  # 4 Must declare all private attrs

    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3
        self.result = 42                    # deliberately conflicts with internal names

    # Normal methods can freely access private attributes
    def public_way(self):
        print(self.a, self.b, self.c)

    # Real-world case: method wrapped by multiple decorators
    @PrivateWrapProxy(memoize())                                   # 5 Apply any decorator safely
    @PrivateWrapProxy(login_required())                            # 5 Stack as many as needed
    @PrivateWrapProxy(rate_limit(calls=10))                        # 5
    def expensive_api_call(self, x):                               # First definition (will be wrapped)
        def inner(...):
            return some_implementation(self.a, self.b, self.c, x)
        inner(...)
        return heavy_computation(self.a, self.b, self.c, x)

    # Fix decorator order + resolve name conflicts
    @PrivateWrapProxy(expensive_api_call.result.name2, expensive_api_call)    # 6 Chain .result to push decorators down
    @PrivateWrapProxy(expensive_api_call.result.name1, expensive_api_call)    # 6 Resolve conflict with internal names
    def expensive_api_call(self, x):         # Final real implementation
        return heavy_computation(self.a, self.b, self.c, x)


# ====================== Usage ======================
obj = MyClass()
obj.public_way()                    # prints: 1 2 3

print(hasattr(obj, 'a'))            # False – truly hidden from outside
print(obj.expensive_api_call(10))   # works with all decorators applied
# API Purpose Required?
1 PrivateAttrBase Base class – must inherit Yes
1 PrivateWrapProxy Decorator wrapper for arbitrary decorators When needed
2 private_func=callable Custom hidden-name generator Optional
3 Pass private_func in class definition Same as above Optional
4 __private_attrs__ list Declare which attributes are private Yes
5 @PrivateWrapProxy(...) Make any decorator compatible with private attributes When needed
6 method.result.xxx chain + dummy wrap Fix decorator order and name conflicts When needed

Usage

This is a simple usage about the module:

from private_attribute import PrivateAttrBase

class MyClass(PrivateAttrBase):
    __private_attrs__ = ['a', 'b', 'c']
    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3

    def public_way(self):
        print(self.a, self.b, self.c)

obj = MyClass()
obj.public_way()  # (1, 2, 3)

print(hasattr(obj, 'a'))  # False
print(hasattr(obj, 'b'))  # False
print(hasattr(obj, 'c'))  # False

All of the attributes in __private_attrs__ will be hidden from the outside world, and stored by another name.

You can use your function to generate the name. It needs the id of the obj and the name of the attribute:

def my_generate_func(obj_id, attr_name):
    return some_string

class MyClass(PrivateAttrBase, private_func=my_generate_func):
    __private_attrs__ = ['a', 'b', 'c']
    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3

    def public_way(self):
        print(self.a, self.b, self.c)

obj = MyClass()
obj.public_way()  # (1, 2, 3)

If the method will be decorated, the property, classmethod and staticmethod will be supported. For the other, you can use the PrivateWrapProxy to wrap the function:

from private_attribute import PrivateAttrBase, PrivateWrapProxy

class MyClass(PrivateAttrBase):
    __private_attrs__ = ['a', 'b', 'c']
    @PrivateWrapProxy(decorator1())
    @PrivateWrapProxy(decorator2())
    def method1(self):
        ...

    @method1.attr_name
    @PrivateWrapProxy(lambda _: _) # use empty function to wrap
    def method1(self):
        ...

    @PrivateWrapProxy(decorator3())
    def method2(self):
        ...

    @method2.attr_name
    @PrivateWrapProxy(lambda _: _)
    def method2(self):
        ...

The PrivateWrapProxy is a decorator, and it will wrap the function with the decorator. When it decorates the method, it returns a _PrivateWrap object.

The _PrivateWrap has the public api result. It returns the original decoratored result.

from private_attribute import PrivateAttrBase, PrivateWrapProxy

class MyClass(PrivateAttrBase):
    __private_attrs__ = ['a', 'b', 'c']
    @PrivateWrapProxy(decorator1())
    @PrivateWrapProxy(decorator2())
    def method1(self):
        ...

    @PrivateWrapProxy(method1.result.conflict_attr_name1, method1) # Use the argument "method1" to save old func
    def method1(self):
        ...

    @PrivateWrapProxy(method1.result.conflict_attr_name2, method1)
    def method1(self):
        ...

    @PrivateWrapProxy(decorator3())
    def method2(self):

Notes

  • All of the private attributes class must contain the __private_attrs__ attribute.
  • The __private_attrs__ attribute must be a sequence of strings.
  • You cannot define the name which in __slots__ to __private_attrs__.
  • When you define __slots__ and __private_attrs__ in one class, the attributes in __private_attrs__ can also be defined in the methods, even though they are not in __slots__.
  • All of the object that is the instance of the class "PrivateAttrBase" or its subclass are default to be unable to be pickled.
  • Finally the attributes' names in __private_attrs__ will be change to a tuple with two hash.
  • Finally the _PrivateWrap object will be recoveried to the original object.
  • One class defined in another class cannot use another class's private attribute.
  • One parent class defined an attribute which not in __private_attrs__ or not a PrivateAttrType instance, the child class shouldn't contain the attribute in its __private_attrs__.

License

MIT

Requirement

This package require the c++ module "picosha2" to compute the sha256 hash.

Support

Now it doesn't support "PyPy".

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

private_attribute_cpp-1.0.5.tar.gz (22.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

private_attribute_cpp-1.0.5-cp314-cp314t-win_amd64.whl (80.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-1.0.5-cp314-cp314t-win32.whl (64.5 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-1.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp314-cp314t-macosx_11_0_arm64.whl (77.5 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp314-cp314-win_amd64.whl (78.6 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.0.5-cp314-cp314-win32.whl (63.2 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-1.0.5-cp314-cp314-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp314-cp314-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp313-cp313t-win_amd64.whl (77.8 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-1.0.5-cp313-cp313t-win32.whl (62.7 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-1.0.5-cp313-cp313t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp313-cp313t-macosx_11_0_arm64.whl (77.5 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp313-cp313-win_amd64.whl (76.6 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.0.5-cp313-cp313-win32.whl (61.6 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-1.0.5-cp313-cp313-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp313-cp313-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp312-cp312-win_amd64.whl (76.6 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.0.5-cp312-cp312-win32.whl (61.6 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp312-cp312-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp311-cp311-win_amd64.whl (76.4 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.0.5-cp311-cp311-win32.whl (61.5 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp311-cp311-macosx_11_0_arm64.whl (76.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-1.0.5-cp310-cp310-win_amd64.whl (76.2 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.0.5-cp310-cp310-win32.whl (61.5 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-1.0.5-cp310-cp310-macosx_11_0_arm64.whl (76.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file private_attribute_cpp-1.0.5.tar.gz.

File metadata

  • Download URL: private_attribute_cpp-1.0.5.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for private_attribute_cpp-1.0.5.tar.gz
Algorithm Hash digest
SHA256 53863b1854f754f24473640a4bd55aa3394424550767de1bb6c7525328ec7434
MD5 09d5a49f46a847aa943f2e2c3be3ac5b
BLAKE2b-256 892d4c8fc3331637a5c5dcf1f369cdec61560523b9523e75a90103b3ec558b68

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 6f931651b40d147eabb9951ac74526e79949da7ab1e969196f10beaeae8e6b04
MD5 47d8f8187652e9694884067c9002c326
BLAKE2b-256 5e7566ad4af6ea88e53c85b8a25dbc3aed667f1f20e604f38c1e4a95666f0d4f

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314t-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 de92219fa511085bc8f30c01109765f3629635f599b4edf7d9ec39f90abd85b8
MD5 24221cd9f57bc2718b85bf397aa4149b
BLAKE2b-256 2473cd57a52e038c4447b3ff643600a66007deb63c9175c87f1a2247ba39760d

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ecdaf93b21a51bb4fdd923da04e4744cd07a009012fb0c9bffa774b824ec346
MD5 87d6e8b912b07028268f9f684b102cfc
BLAKE2b-256 e7cf4b4aa327d9e3e6951093132e8a59118bed79eace732d13a4703cde575c21

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 749a9a128bc338db938917f3460df187017ba5c508624240e5f0461a0c050d6f
MD5 fc5b7aff85cc582fc2265d309608b213
BLAKE2b-256 66bd05082d4b20d6ebde044534b3bcd91442f2261f4610c2eadfc4462fd047cb

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3d5ae2f4419b157a92373880b49c74d9054b39a59fe5c3eb18468c04877ed57
MD5 6eed153ce19960c02e586d03f4739c6c
BLAKE2b-256 922b36bbac49c30d837bfd72f9c2d75c648743aedf76bd9af6414d2579a1521f

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 34e2aea6588d493e8df8cdb7748796c423660845f5319264f621f47647cdf3ee
MD5 fb564cfddccb951b20957a050b0c4f9f
BLAKE2b-256 ef39e179438466944a646625d867971b779eed99f814824778ee7e5e4ca39a1b

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 1c82c8ea314752ba8049729ef03c0022f8324df439d1ef34af9dc2bf585b6f64
MD5 a75ff890d05070a339bf02507f58eadb
BLAKE2b-256 22c50ba15fb0f45f10086b76eba6a125346edfa31075c3610fb60e80f72b25a6

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da953454bf703d6e2dabe69d7691dfdcb15b232c602e1d13f6890a76ca65a273
MD5 71d99f0c96baa14f6df378aa4c9766ab
BLAKE2b-256 63df293771489618e637a35f1b451500193faf0c8155d371172d47c5444ea507

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94c33a2a093d9dd714e63ef921c603f2761851bac048cd119563d56fd576dda2
MD5 6aba954d3faac22438c4fc877c8c913f
BLAKE2b-256 ff64512b7abdc7defd2e61ada9091b7b973bdf727da8b54dabe90c00ca6ca7b9

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc17ea42d3adde607a6983c011bf4647b454f7ee2f2ea3609805775be39c3ff6
MD5 dfd0e656df04552342b1d0261085d2cb
BLAKE2b-256 e0981185789179f8b26766efba8626816e8b4ff2a314637f2ea10cc834cb428e

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313t-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 b4753fd1bb9fe3d9a50def21db4758e88bfee8a3b0fbb167851319b0ee78d013
MD5 54fc2309d648cdc435ad9621bbd6484d
BLAKE2b-256 16aa602ba30ab82dc95ca53550e33f20efa782c7d3a3d22413c9811eb7a05c9b

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313t-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 37d720fc294eb97c4977888f16ee39e1fab8061887ec77c7dd89f697cd3f9a68
MD5 00cf3d2ed9905cfe2bcd74479c45d632
BLAKE2b-256 69fb69cd37f74d6fef8d4f26a6924e6542cec2fc5b2a0706debd0130470db2a2

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6bad8e5aebb8de1fa89bda68ac58e23511c05e1fe66b6c3fdec94b1ee17211dd
MD5 94a4a44a5a75f9abf87ece33cf577434
BLAKE2b-256 b41b1f8e823f261139e0d5796773e664ba49f7042e02d45bc007db56ae34cd18

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c42d47116714a9c6b4b29bd7a31c0529afc267a76f5df0b7f955fb8ceb74f470
MD5 02ab5f48e9160acf0b579d56c2d02a45
BLAKE2b-256 89077370539ea4273444eb0c931c969d942c0abb3e7d718234ff0bd49283e0e0

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01518b0b2a68705e6637112dbbd3fdf993611a84c73ae4bc2848bb62bc8e0954
MD5 95a839824fc64564eb099eb74c76a6ce
BLAKE2b-256 fec514dfa11667fa74bc1c3e59981526f0c5579cd6a0bf3ec4cc5d0ed8e1fed6

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 229091c773720d0c6a696636a1eeee6e5d6ab23efa34668cfe66e795b2f15f15
MD5 d51d19593cbc2fe8f6fe4507fcbe5085
BLAKE2b-256 d3118f8b27cc0d503a96d6fc9783a1a2d15c87bdf3d1b325652c99168be2ab2b

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 7cebe2c97e9c776a588865716731a1f6913436e7359ffd5101f1d62d294aff32
MD5 45ae8fb253377383de56fb9a9fa5fc50
BLAKE2b-256 523d8c3b5bc06c9453129a88b48235a24dc40fbfbae6e7896cb1dfa94b0a7d63

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bdf0ef2cf2e2fbedb2a4305e1e03a1208f1f4276f4e51cdf9853df257a40b29d
MD5 c4d682ab426e5b324ac0db1dd4f09471
BLAKE2b-256 c68c5b8728f95277eab9105b6e862511b5b04bdc087af3b0cecfde72326117ad

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2e6d1a0e2ad96e552e7ccf9d0d9fc0ef725835e3342fb7cc5d5e0e22d3fbf91
MD5 39c86be67233c4758e544ecdb7d817ce
BLAKE2b-256 4318cd731a214f5f56b492cb8b120e414d0550c2cde4d96ccdd896efdfe9d93f

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d203008a0f69660090fd3001523615a7d33133f1ec25a28a5b0c38677d8213b9
MD5 2e6caafdd9259d5298e57027c917dff8
BLAKE2b-256 b10442c22997bd04a51aa6f6b17b86fa370fbcef392236f180b6340c3191b076

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d41de7c024bca4f7eaf933887920ec71da87c1440a5426ef40cfa18ccd0acbc6
MD5 7b8650dc55f33b8e34b273b176b887e5
BLAKE2b-256 74d67c7cd2dd1febd6669d7b62dd1c4bcb0267c1bda5e5e9bd11dbb4ac689189

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 c504d5f0b06142a782c59925f98d3a790675a32d8c81edbe399a911962d04132
MD5 2c13e6d212d4057f4ed2cf5d2ade0169
BLAKE2b-256 dd4d2150d4a81748f099ca275374cb6c18c512be6d806b3514ef8a125d23cb7e

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 792ee5081823a8a9db6a52249bf32be912f225350c653f269c94c98da98fdcce
MD5 7d180bdd630b7da429fb317f3cf7f7e1
BLAKE2b-256 91a42b76268486b4efa2623c77b0ea34861eb2ac3cf138db2b862550c092d036

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dcd5703f5eb7f182714e1aaa1a653398fb4e8fa82dc80c0eb7338317e3555d08
MD5 0b7a422efe96dd5169be4b872bb2c89e
BLAKE2b-256 5c30c1f5d271cc645d9228e38be55936a192caa1a2c0487b86747f65e838f0c4

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5605ddad51be61e46db7ce6f671f11383851ec1890424169fac8657494c6f58f
MD5 b1d7a39e630f658f4c77d9c31fb3c30a
BLAKE2b-256 28b325cb2a34875f052cff003183e1f59803c05f0b1c35666369a8495e25ab97

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 79d85704e6372240b09397cc088ec6e86d52233dd506f4124ae57e32f2e11ae5
MD5 ddfb6d46164341b5e8c3d9f1ccca625c
BLAKE2b-256 b0e1b93eaf52829d4bd67d485b7a9c6f5c456360833834b2743e034e1876b20b

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 cf170ac19c4a66e018913dfde08c4546cfc1f240b23b17ccd5ef52c4e74c1b6b
MD5 b5c7c94ab21e98a8594e272c4ef4ce28
BLAKE2b-256 5b1a8f82bcf04321804ccdf672abba0747ea6d5a639e13694fee00a1b88d21c7

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fca107dff50e75acd92142047bccbbb1e2e7fcc583409a7cab9c136a9463cdf2
MD5 6434d7673dcf0f3475ffd9f665d9a9a2
BLAKE2b-256 e636bb629d6ed54993dde84cfe0a186369ad5cb9ead742079707f800a98dcabf

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df4820b238b40f37b1651c8b44c9117b2feb327ad8d818940db157d569563695
MD5 6c5fdf4e388f22e4932656feb87762b2
BLAKE2b-256 8c502f59359266ce159447bb9594bb2a9cf85cd587df40e2e661ca00f3e539a4

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d57f9b3a548518d63cb5a63f09ffcb12ea8512b697673d6c4d55c8d921a79848
MD5 99eb9013df4f805cc598cf76ebe4e108
BLAKE2b-256 995cb3bae244d085061d98ebea11d0c4d8de4da71d3ea95ba341efecd52e42e8

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c9c79000df1a6ebadc0945064dcac3f0011f8290b4b2f3fb6853717f7c25fbe6
MD5 7d8f8d3f4f9d37e2af7aae227976e473
BLAKE2b-256 a0358eacaed55b4ed6f4fbfbf0010a0da575156d8867cf9b8c86a86739ce5162

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b20e1a60dbd273ee6f9dfe0e92e26239d5a13a124d47b1c11bc5b5248734a06a
MD5 ce0ccd7978e64815674f5b0b52eb11b9
BLAKE2b-256 aa6a7d87c846ed678744b42f2fc829977ace01774269ef2b436a89e8cd74e59b

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a9dfdc17b9828d420e6bc83aefbd0a7f985f7624e588247f8593746839237a5e
MD5 1824f24a0e3dc7ef4ce6e1e2f5c9e39f
BLAKE2b-256 da7475f9c7dc38962956ee12f32a399799787619cb4d37a8cda337a24b5e7d44

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df8e81cc81560c49853bff1b4be726f3eae0ce9c854416f7f4dc5c1ae45db8fc
MD5 8a4612eb19219d821136bfbc579058c2
BLAKE2b-256 e809ff9a7129c10dc056228fce5594cc80a246b9363bf2aa2257084f68bb394c

See more details on using hashes here.

File details

Details for the file private_attribute_cpp-1.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45197e4520e37b21d28eb5155316d732f565a5c6b092ecdb002ae7de8cc7fb56
MD5 feb2e1ff692a57be0e29c5b2c5c13afa
BLAKE2b-256 c748f2f4bc47efb1686d67d8def6fd523d244406342a29d73232e0da1bb7bb30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page