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.1.0.tar.gz (23.0 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.1.0-cp314-cp314t-win_amd64.whl (81.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-1.1.0-cp314-cp314t-win32.whl (66.0 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-1.1.0-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.1.0-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.1.0-cp314-cp314t-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp314-cp314-win_amd64.whl (79.7 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.1.0-cp314-cp314-win32.whl (64.3 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.1.0-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.1.0-cp314-cp314-macosx_11_0_arm64.whl (75.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp313-cp313t-win_amd64.whl (79.3 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-1.1.0-cp313-cp313t-win32.whl (64.0 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-1.1.0-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.1.0-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.1.0-cp313-cp313t-macosx_11_0_arm64.whl (76.6 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp313-cp313-win_amd64.whl (77.5 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.1.0-cp313-cp313-win32.whl (62.6 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-1.1.0-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.1.0-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.1.0-cp313-cp313-macosx_11_0_arm64.whl (75.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp312-cp312-win_amd64.whl (77.5 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.1.0-cp312-cp312-win32.whl (62.6 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-1.1.0-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.1.0-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.1.0-cp312-cp312-macosx_11_0_arm64.whl (75.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp311-cp311-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.1.0-cp311-cp311-win32.whl (62.6 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-1.1.0-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.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

private_attribute_cpp-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (75.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-1.1.0-cp310-cp310-win_amd64.whl (77.3 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.1.0-cp310-cp310-win32.whl (62.6 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.1.0-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.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

private_attribute_cpp-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (75.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-1.1.0.tar.gz
  • Upload date:
  • Size: 23.0 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.1.0.tar.gz
Algorithm Hash digest
SHA256 5d110b7f01d357ca3dd9044ededa826b248243f162b600e538f90b13e041fb20
MD5 be233ba4a4656025eaa9cade36d23b9c
BLAKE2b-256 8c58a37b01682eec7a415958a18e71955eeea0d4b960d49260925741543035f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c05bcbfc30365259219900709b3a845f888d2a5161fa2737a0efc57beeba27d4
MD5 f21a27f5ac783f8616139d8ea421a27c
BLAKE2b-256 d2c883b4a23a4fd915997089cc98d79ea2830d7d65e3a3f9fdbd89252c904ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 0259e988432a8fcbc3d78417feee5e876b9876fcd5db6dc87d9c85c7bb975bb7
MD5 6199e4d5ef1027866716c8171c76bdd6
BLAKE2b-256 14eb76235d9e9f5ee75f7a4d526707226cc9a64cd87f08c1798b0e7f1e048ed1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58d0a6474d99622c4a8cfc36d654865ad27c70f7e6eaefc2d3e491be3851297f
MD5 0c94c1fa3f980360472f0158731134bb
BLAKE2b-256 9dc7a978bc7f3b95ca2eedb1b03d9887110c31b63e986a383f3168304f4c90e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6cdac45b42f9461a583a0a7c42bf3d04c03624d226f02d726a491858df7adf7c
MD5 82d21ce9bae0e85840a60382731814f4
BLAKE2b-256 78232cbba4793c585d3ebdb5e87eefc342624dc48471cb11e2281f8e79499565

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d6f08f94121bf1cf32c2c4d4ae80a9fd99e929a6d806427ea9a2df4c4ec19f1
MD5 95a6f322ce960d7e4173a1d00101ac89
BLAKE2b-256 669175524829a10870f9c2e9985c8444ae3841095da129a2728cffb2feb2ad23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c38c641239c2816dd68ef7862f408171df58b61bd68a24bd9128d9bba48b6a8d
MD5 4015868338664f5a039aa4a9165450a9
BLAKE2b-256 060b42e9624a4c3765d37efce83e6fe236c94e36274f1192e702c9604b0602db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 1bf14ae1cad5b52a13df3492560265ec3c30ae37bab6cab1648e856724198e15
MD5 2fb2baa53fb859c8ddff55d18e62d6a0
BLAKE2b-256 1b3b42d9b45796c9bb7ae401fa35228c3018ec521261dfb4670a4fcf365b46d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0be81490afb70f3a6d0fcdc6157ac8d6f5f2733819345a8cb7bea9cf64ffae95
MD5 9fcb90e9738163192ece9d92221575ee
BLAKE2b-256 f4f994e6ba358147078478b67c421b04c28c678dd13967142fab5da36b3eee6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7da353aa3626dc2f7ca8b44dd9f288a63bd11bf154160339a43020b6d066c904
MD5 6f5c57dd5722212b6ab18f21ab994805
BLAKE2b-256 2457f960273467b94e08689c167243a8f70859cd1438adf44772d6b8a642eca1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e36f7cb5f1bc52ea61d687b4d55347d1b9284443bd497c5d7547b9d0db871a6f
MD5 60bd3e49148f5e1523a9e03c38caa465
BLAKE2b-256 d66d51fbcac06807300869e4fd382fa1a0685946495716163a412002f669eb75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 5b45cd158f7b832cf2ed45e170cff36b2b254ce6cd407381c28f039467b52d49
MD5 7753abac4d91907a80eb320ee3cd57ae
BLAKE2b-256 4f32afa9c4908c7c27b4b0f3e4c79865dd2fe22c8d55d9ce76e1b951f85b68e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 cede73cd9ee47c20ee78e7bb8b0f5ad8ec200d782bc19acbd7ced70b7243aa06
MD5 3e0d0e9335eff121bbe931a0ab24ccf9
BLAKE2b-256 5483723d7949861fb412e2b6db4e31ae69891ce5f0eedbea483e449abf90ab87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b07715ff3c9d8186364f32ed29688c30593e48699df0267e214b41b00e9a43a8
MD5 3eec0cce23f5d5dd3999671907df53a7
BLAKE2b-256 cc4ca6dffcd3aa5ef239e2294e2f3adc8b250f7764a6974d6922863027715042

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2d0a6a026598cc4e9e61b036b112d85f4c3bc73c7a20b962630488aedbfaee4
MD5 08e6a8831075958dacd415dcacba756b
BLAKE2b-256 a4a6c4b06391d33c15a1733ab006e376be5d892460c067b1db56ab23dda70945

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bf29ae5ed281cea835556a2c5e3e2cca4d45f1df5b39387700e760f8f065ef1
MD5 aa1a8f743ab580ee345b927dcc0004c9
BLAKE2b-256 1aeefcada98ddfcf9cc3714b239afb2451de89fbbfde71124e63932f808c8f3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 455bdb5992ee2e01e1302730727c9b14aa36ead8da3268a76b304ea61eb3a75f
MD5 0fd3e5a4b99a8fd08fb3a4dab2dd0ec5
BLAKE2b-256 c050c5dbdfe8f2e4607c7cf309f38b602f12aabeb81f2b483a5c50e50df735a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 0869bc592c316ce1c460df38678133277758a1c667721fd4fa3718bb2bcf0ce9
MD5 bccd71097b1bf5e667f3245d348d52b7
BLAKE2b-256 4468432f1b19287d3dc16699417cf52a54f3f89e435977a8e6156acad14193b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be4a0a0373c118f5507e23712fbd3d24da385ef60b0b5008e23696a0e55b8fe6
MD5 237f3d21e7b747eded7c867d3c7a4f65
BLAKE2b-256 afce53e8edb8e94b59614056550747946823ed366aa6d9d7283de2abda56fcc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30f3d0354db482d3e86724f3c6f4bc7870e64440990ad60304706718a2d06ef4
MD5 271d857b7466b1ddfe1f81ad653a8d9c
BLAKE2b-256 f748efe4d5f7a7150311120a7e5e8901be39df2bcc28a6d13468e0796a1e99f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ad443b20fab4e450fa5bb5c243cd312ca1994d5ab182f62fdf78b932deb6b0c
MD5 df7020430806805db37a23d0007f59b0
BLAKE2b-256 553c91b0b9fe7cad3bb2f0d8296754911d8ba08508ed68d69197c7fb0a81c6dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1db1d661cedf2eaf6f07f5b4152daedeb4663cb280b6dcb45af6a7705dca4b5d
MD5 8678533545a67e38a7e960d94c980364
BLAKE2b-256 3be1b1741b2ceed88eab7ce1fc1d7b4ce3f036074b200dd133a6becc792374e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 571e45ebb36ea5d6043f300dfcb32f1c5e2dce0309900156c24650ada997927b
MD5 e808be5944f0066f09dda226092809e5
BLAKE2b-256 2ba6533d2e42ca12dfb9c98b47e8bd57b3be38f0a7a606d627a4583ca0d2fb1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 856be2584711da5cb268e6be68f7bed564747436768bab87f00cabeb6df65d36
MD5 ae91a37d27791de78c1a44dcf42faf97
BLAKE2b-256 281a19290840241b2d04515b62aa9e9cda9b0452a9d4db152568935b1944177d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6596d3d0a0ecaadfd68d5fcfcb7d74bfeec284fee02b2377fe9d2433b39c9290
MD5 e2b74d5a872c96edea7f773ae763ef43
BLAKE2b-256 658a54d90a4df03c1a5ab811a88e53a2715c42384f7c765027c13b9678a77f7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8af7247c77861630c70456630ef4e4928f274a7b6c4010c6388e2e3f168d08e
MD5 1cfe3425eb13aeb4fb00411ba396b178
BLAKE2b-256 b98f4e58cc93d0344b30cc00b1426b74a7f4b997fb50af0ea1e8930a53567ebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1ffbef7ca4636e87f3f086af617a3b39ce58d9cbe4c2686d9d6c922593029ec3
MD5 44b0800bc94ab594bdb893ccbffd751b
BLAKE2b-256 12bfe3996cb1d438a9edc2e9fb4e5f4f7549aebbf7c8eb45d1bc81896b8377ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 6056b169fbf567fa84bdd062ebf087c40e0185580e6560c27bf36dd20a1ea253
MD5 99d6e0fb76ba17d4c013f8f519556fa3
BLAKE2b-256 c92ee3ae6de148626b96e909c95f51342973a669c3de62a043fec8fc35c2ea44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4509be88053594ccd82d0983ddc33d692786206ed3f9c88ed05575369cbd0949
MD5 c86458dc1baf851cac09bf1633e7dbce
BLAKE2b-256 fd1acb5599622566224dd01f12d9df9af80875082c8e8b707413d983a9613073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7aa6568b0c746145396e5d0c37150d3c7fe4a3bdc163e0d495b2afff99a64abc
MD5 c0c9685216b827d527e6d899dabf3cb7
BLAKE2b-256 4423b68f0cadd497c1d7d33aa29be732987306b3ac1cbf951620696a054e689e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddfb038d5def729450dd3d871882c267f88fc5ffa63e4a683201702c499def7b
MD5 ab9d3b33cc2375893a50c15715aad6a2
BLAKE2b-256 62d391bdcd5190edd4a1cf596f2cd1edac4f0a2017ce1d037377c8819e9ebcbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 56a80a4abd75a4a4316a8c521e01e3963e8e57c84de757f508f6297914e37400
MD5 4f87d58c612fa7262bd48b30ee1fba0a
BLAKE2b-256 66f1b41a3b4d9839b19c12ae46c9b8848596627ad2f1032bdc28335534bd8105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 eed6413ee780f42846c573bbbc61e140013c86fcef78d483553326a47af3119d
MD5 d6944a1c174571be5b34f0ff4ae91c6e
BLAKE2b-256 53e49d81302f3797b89c00e6954f6cbe1352b6b58ceb34ebe3366cb7f74c0463

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b322feb305823617ae5be96f797ab399e7c4e1f6e5065a175d5843af737b7f0
MD5 804a53af265ce240e38e0231a775733c
BLAKE2b-256 ece2cd3d41292900d12c22850d7f51fe481c253eb82e07d7e3fee201662da427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d27dab4268265a922410146cd2a66b1e3820f0caef95eddc4004cea19af6feb
MD5 b7600a56d90ea90534587977c8b9329c
BLAKE2b-256 055fc50d0f0c4a473b5c51f2aa646ba39af5e7e9a61cf19d9aa8a131fd6b6ea5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4727512541467d2f6a9ac445b1a93accef2308755d2b3e5d10eda2e255e96ac
MD5 c616729370c6ae000c3c43c18704bac1
BLAKE2b-256 8a7e30ea4256d55fb1b07058d91bd9d0ba36d48462c3c6405098be2ab6bfb511

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