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.6.tar.gz (22.6 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.6-cp314-cp314t-win_amd64.whl (80.8 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-1.0.6-cp314-cp314t-win32.whl (65.1 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-1.0.6-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.6-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.6-cp314-cp314t-macosx_11_0_arm64.whl (78.0 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp314-cp314-win_amd64.whl (79.3 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.0.6-cp314-cp314-win32.whl (63.8 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-1.0.6-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.6-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.6-cp314-cp314-macosx_11_0_arm64.whl (76.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp313-cp313t-win_amd64.whl (78.6 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-1.0.6-cp313-cp313t-win32.whl (63.2 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-1.0.6-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.6-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.6-cp313-cp313t-macosx_11_0_arm64.whl (78.1 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp313-cp313-win_amd64.whl (77.2 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.0.6-cp313-cp313-win32.whl (62.2 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.6-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.6-cp313-cp313-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp312-cp312-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.0.6-cp312-cp312-win32.whl (62.2 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-1.0.6-cp312-cp312-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp311-cp311-win_amd64.whl (77.0 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.0.6-cp311-cp311-win32.whl (61.9 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-1.0.6-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.6-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.6-cp311-cp311-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-1.0.6-cp310-cp310-win_amd64.whl (77.0 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.0.6-cp310-cp310-win32.whl (61.9 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.0.6-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.6-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.6-cp310-cp310-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-1.0.6.tar.gz
  • Upload date:
  • Size: 22.6 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.6.tar.gz
Algorithm Hash digest
SHA256 e3f9312a027203c5ce7593e096c5e9b9aab106da25738eacaf19cfcc03e5026a
MD5 91868e11d16403d8c4854a572872f58f
BLAKE2b-256 569d2f608c63e0e2b0a9bba3a07e3365000e5d408eb31327f6a205f31f3da9fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 446bb63d2676710853bded45d5046eea6d81310ea5f346abb6227a7f7de45c30
MD5 20b66e3e2b5c819f6ee6891187753a08
BLAKE2b-256 0445b62fa8556078bebc18b288ca4505e5484cd011da4aed3e679d575d0daa71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 9e305b216a5c1d1f44e0f344ec50e45fb6f14c24532b7cf16f3c25c64b0b0b40
MD5 67551c3d0e5ddf751b136171f39f7a73
BLAKE2b-256 6919a68510b3ac6f6899cf4ebe3a2275d9814b99ab3b183dbdd0c5aace2da0c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d869c641c1a1bfebdde63fd66010d1d94ef406efd89a5549db7c10811ecadc36
MD5 293ff92e44a12da4194f1bb4e5343cec
BLAKE2b-256 98b9727899b60c6ee15e21aafeebf462fed4a36c4f98e9c004a91dab5716b3e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bcf9c4795042e33c6dda46209535ef817a8c7c1437525ff1d910b2c4be4e633f
MD5 22101b99915f21d2b1eb6fa11dba0fa5
BLAKE2b-256 4a78119bf33860ee910e376a5704db22fc944b10cb2ba1b5a4607faca5a16cf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ad16d1f9b6565d2c22b47e28f9ce61603883ba6c073d9bba4c9a92fe97017ab
MD5 51da31673fa6706cf357bfda9f866596
BLAKE2b-256 49f892135a3667222c04713d4000f5bbf8e90b857b25eec4da3b021c8e6e263a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dfd40330bd90e4154935c0a4b1ee8e2b3c46eec8c865ea4a05c2700d30f36b2f
MD5 855e786b1d3ec9db950184e9cef7d9be
BLAKE2b-256 f7d3dad1df1c6b032fe3cb764e3174f01cd718bdf955fcd1a45924610e75c920

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 aab91c5d12b3ac4827282ca59d710e2ac787635975c0fb60c1b3f5b56a241e28
MD5 09d8f88c131c76290310d655e33d20b7
BLAKE2b-256 aca211dff0b550259450352e1a0923ba6a34739d73f53c993cdb6e3a731c2219

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 598d45d1b4507d667f76196b8f3f072b272edb10f29a0022deab9e986cc0f236
MD5 c517bf3821989f8b1757b1f4d8829702
BLAKE2b-256 32a4c9fbb005f308db68687f09bd0da4ac25e0fa8e0429285570fe5d4bf93632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f26e0504dd357dec24f0e32f8025d30b9f768292b801c27fa1afe755c203137b
MD5 0a8bfc1aa5edbe104ccc8e02bab0609e
BLAKE2b-256 5b7e5b1f2c5d3127269bb0fc378f894d7ef82839c1a46c8d9f1ccfeee2224521

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5157960a85dbd5842b92b7a728e75844b1ce6c66b4b12a0c7455a65175e6297
MD5 35fe1d5b88c361e2083b0c22e36e04bb
BLAKE2b-256 edcdcdccca2001f96875debf48577bce85780a57cd8ef46bdc87c25b9bb2da26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 3caafb845f101e5fee45cfa47978809026c25c2eaaff7c5930ce20e28cf9d0ba
MD5 8faef0a345faccd47a6024c887907b26
BLAKE2b-256 e34f28f0d34e83044cfc11b355d65074fd2eb81ef6943d28898b180bf91108bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 6fe05f17609e0e08cbd078ef039f66d9e2ba8d617aa2681ca68070072bc2b3cc
MD5 e6eaa084d02a455ae59a512cdd687bd6
BLAKE2b-256 4afa20601494d6d53058ab2178c391bb1188fa7e660abf159bbc01402c1a8623

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a93bb44e8cdadb10bd138637ad2f2352ee1c0637267058d69626b91188496ad8
MD5 9637a1292b90fb5e44c9ddfd8f8c8b26
BLAKE2b-256 66407a4c7abd8e7774e9399fee3a5529ebdee1c68a49e5310937f1f3b150fb77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e30d2e85bac180c6c4884789b79f85c4bf0c120fbbe0424992ea9a3d0f0f0500
MD5 68fc90b4a96b6ac87786c4222e9dd77a
BLAKE2b-256 7bc60a72ad146113c9781a687394a484c496f39a8999b78f3028051744a16a04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da39aece8cb55e801ac1f910e62e12c4faeacf1b62131512fe4ccb4a07e3b576
MD5 05e701c2927845ac18e47970b00a3d95
BLAKE2b-256 48e74127c6a84003a0130636209a466e80c83c69535d58367f09a0ba20e607e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f03dc3a85c729234be74a8b57ffab65abde5bbf5a5201fb730dce0bd6611e3ba
MD5 ce607c2de9b151d070b1158e1ce1094b
BLAKE2b-256 6a5c36e6e60ffac4d275dd3e35619c9e80fd41d1904230248da34bd0a2aa863a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 7cbbc047516b5a754067f7a340c3c3cc528e60208c711714f4eee350242814cd
MD5 06b899912b6da382df8880a9209a6329
BLAKE2b-256 e809013519907e54cd7b289a265910b103a66295eb6d765031378d2d48f0253e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0ebf2b586370e493756b2959548fa9de0c7898f78d10363fbad92ae80be20b89
MD5 cd34d052f586ef2013f067ad33adceea
BLAKE2b-256 ecbf1c1594e627e533366074536fda0fb10a58e978bde6fef1f850b91743e80a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b0fb72332f80b1490c00af506af4cea21de65496787c636024fc02d4b32643a
MD5 5290329613650873ec7b42ddf1e24487
BLAKE2b-256 75b47486ae9d3b48e0abb624694c3744cdb6585159db63101f7aa8872ae20e08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88bbfd606af16c48e93f594e550b1690578167d063e43937939a217b295a3ee3
MD5 760790221c949e69f1f2ade647b546eb
BLAKE2b-256 e7f40399931b7227253ae1bc38f0d53047970d409a059301069956225eb456fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b7b28e0a52ebaaf8d64c2adf71fe21dcc929723617b2ab493b751aada9a33e05
MD5 3a3da3df462f92e75f6f8d31c61504d3
BLAKE2b-256 5a85db0ff59243e00b210383d95cc0ae886dda0ec0d803f3516cc9441af452a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 deb9bcbd5eb9f6535a317e190c0a58eea75f8e94ef92bb9eadf6ea632a560287
MD5 25ecebd0f92387e70e799ccaaaf2c94b
BLAKE2b-256 6c6e23454434a2fa69aa0963860eb80ce492bbb23da22ca1a28bf79c8914e066

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 77900c68d1eccadb9013ad9d7a39ace852f9f916108f03076bea51d5912c26e4
MD5 f63005172b7b36ea731df8076788ab2e
BLAKE2b-256 774862903aa3b75c55cec4ae55c186df6b86d0faf311ca52f775f7fd0f251f5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aaa52fe2cd4b7f48198b1cb91fd6c27a075c04e4138e3c27bc80c8bf253fed28
MD5 9492f509a6520de36350b2d1ebd43382
BLAKE2b-256 6736b3dbd9c7aaba52d364fba3e755ae25f010446d797d52b70c77d2c40ce4a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51eb0370c6b8ed4e1b0496ab32b81fe8ca2425d345010985c50b5bfea20f575c
MD5 0263b00eb3a55c94f94fa43dfdfc3cb2
BLAKE2b-256 b958f15009c78fbe0a517ceb9516c669e407b7c2711f1cd35a3c710daa7d30f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 80f46ebd258072e6c34c2e57f6057b74a11ad78ebbb17783fd7579c23f2a7adb
MD5 2535b3e09a8888b45389ddd6b90d4abc
BLAKE2b-256 332b72bd645f6d563e6f3cb18498f65d388dfe870adc587c02337d522fadc36d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 807f6e38f809026db49939e2af97d5d2d7e88d1de3c1de00362e5dd4f6a7c00c
MD5 e2c069306b1ffe8f6dab582a0f2fa8dd
BLAKE2b-256 ff37ce5db0cbcbfc460f68fd5b00996a37317d1e98000de50d6a034497be7fcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 255199f67df196ca5ef5a01c582397adbd32ac241f080fecf7296d5f84274d7c
MD5 95389abe3f1e35b10dd61bd09be3ce72
BLAKE2b-256 9e339c64147bc18583422b57741dfc2a1536da9e3eddf412fdaac078980d19bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38530232585ea981cf9acaafaf7573e02139a674233192aa0451066e6df1e582
MD5 dde80e43abad89894ca24217d5b04610
BLAKE2b-256 887b9bb0d3c6261a66b6f6b59ae29996bb18a0899947bc969efa522259ca5941

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2586d4e039a77114f0e6a588b88e02bb2b729d48a87e6ccbc298186a6857cae8
MD5 3c16f3b37eb19545df9d4b76ed453736
BLAKE2b-256 ae5b9336c60ea1d9149cb326b62b3fd04e0fc1f69e0a691311eafa32d8a3923e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5f6d37dcd93069d2e8b2c1a96a54950a0aef64fa1772406936bd28a9e46206cc
MD5 d61983f460a65277ab6bab8957280a81
BLAKE2b-256 ffd04dabc54e429dc282ecad8547e83b2716f4266a48fc46dd050e392f26cac4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b174be047dce3d3d7b6f12ebff059be453e1834ee8497ef45599c433369b8a93
MD5 4d14fc4f487e071547f49337c73d8e76
BLAKE2b-256 9973048a2f00d1bc1b949d7a9c7526fb5938e2f19a2b7b91f8adfc09ee168bfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d452e692830846636a8acf43a33ea580cdd1a365b2515a241941ecca2741795b
MD5 aabe25af821a6b6cafc5410afdcbe12b
BLAKE2b-256 4ad986460598988f67124a394ba089903744127d4f4bd22a8eb772c984c16944

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 024673cf75c25c8dc91925d2b04ef7532d7c4e07eb46100830c29f13af3ab497
MD5 14182a171207d59f3277beb70f52b6f5
BLAKE2b-256 1cf052725012559c16c5cbab068cfbd519e6627316fd02252df179bf349c9a5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7db3a78635d10538abf05107236647b7cd56b3f557d4641f541ed1340189a131
MD5 1f570b11531930ed8d1417cdd9c5b793
BLAKE2b-256 eca97bf16416f0f571b8b2b44bf9c7b19975a570c6440d8b86ef62ccaaccbf52

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