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.9.tar.gz (22.3 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.9-cp314-cp314t-win_amd64.whl (77.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-1.0.9-cp314-cp314t-win32.whl (63.0 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-1.0.9-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.9-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.9-cp314-cp314t-macosx_11_0_arm64.whl (75.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp314-cp314-win_amd64.whl (76.0 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.0.9-cp314-cp314-win32.whl (61.8 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-1.0.9-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.9-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.9-cp314-cp314-macosx_11_0_arm64.whl (74.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp313-cp313t-win_amd64.whl (75.4 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-1.0.9-cp313-cp313t-win32.whl (61.3 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-1.0.9-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.9-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.9-cp313-cp313t-macosx_11_0_arm64.whl (75.9 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp313-cp313-win_amd64.whl (74.0 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.0.9-cp313-cp313-win32.whl (60.2 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-1.0.9-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.9-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.9-cp313-cp313-macosx_11_0_arm64.whl (74.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp312-cp312-win_amd64.whl (74.0 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.0.9-cp312-cp312-win32.whl (60.2 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-1.0.9-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.9-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.9-cp312-cp312-macosx_11_0_arm64.whl (74.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp311-cp311-win_amd64.whl (73.6 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.0.9-cp311-cp311-win32.whl (59.9 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-1.0.9-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.9-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.9-cp311-cp311-macosx_11_0_arm64.whl (74.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-1.0.9-cp310-cp310-win_amd64.whl (73.7 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.0.9-cp310-cp310-win32.whl (59.9 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.0.9-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

private_attribute_cpp-1.0.9-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.9-cp310-cp310-macosx_11_0_arm64.whl (74.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-1.0.9.tar.gz
  • Upload date:
  • Size: 22.3 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.9.tar.gz
Algorithm Hash digest
SHA256 7e5aa922520fc4dadaa4ca04c4541bda6d53c2bd5e6c469886e364d8b28c01cd
MD5 c16b82c7967516018d80e82c7b7addc0
BLAKE2b-256 c3d93a9950960d44db22f1bd03e3a269d6c3c0c2cc506c5e222b175fd95b5a10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 fc4502357b0cef5720b5db87d770f25bf897595d01c8290dd65f7721911865ce
MD5 5bcc5dbfcb76c915125be6d194774ea1
BLAKE2b-256 dbacda059e2053b83c16d2f9f8813b130931061b071e8ba64afbb66fbc1192ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 c34df4a96b205e301e603cd6115bb178f234537ba8cdf1da55402cbd1fb1023e
MD5 8c8e0ad34beb645989a3966f353f8e8e
BLAKE2b-256 5d1de588951e0c411cdd0c94ba36e79a515bc239b038e08dcfb7578ddcf249b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2d7fec82d140c928920af18d2c97d3f163ffcb1d244c09aced2483ecfa4e66cc
MD5 e09c2bc9fe7702bd7823c89fc6e77a1e
BLAKE2b-256 64c93576e75ebf2b28afec98bf88b4aeb6c158da2c16bad3ec27f914d42bfcaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b720931cfb7193f4e2a6023c33c908a294ee25ac22e8082708b2afe5e5cf6bd5
MD5 f5bc036e1115e25a6de1ec71bff27340
BLAKE2b-256 ac697526cd44c79a53b14a2df1e752786f987cfaa7290df8ff5af81e4e759274

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f06fa3bb23923e3b66adbfba528c26e232cfd73cb1d59bab41f9bdd780df408a
MD5 8fe9f4f256fcf8e3d2bc910c528b36c0
BLAKE2b-256 700a02eefceec0a6cb7bdf83821a9a6461b2427b9fc2f7e27046ba453732beca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8f5b57a1a7c65c320deb218c4bb6fe70a046ac7367e58189eb93615f8e4f7a7f
MD5 ee0d603cbf790af0fa89aaf520e28751
BLAKE2b-256 6226ee1b1ef09e766b27772822c612cf6f4212c13b620cab9b18b9980c7bb541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 954d296ae0f632b944c4ee5d45e9f6f293d19ec5699834fcccb728b90533f764
MD5 0b813a96355679f062045e02bfbecada
BLAKE2b-256 e4d07df250c42ee0d4e777c0b88206b5ac1d480a3bae55aa2eb40c5cb7014dcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e7d4ca654d244ec9a673ba4f57c6f9a10376c486e5484637d2da807a51f59549
MD5 9d489d261ca51e2db86bd257198a3491
BLAKE2b-256 b91f0745828e4c550529e65a7286db1838738fb07df79068f6b6ae52382131c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d700908d72a74f8c7df22c43994a423a9ce6ac44c4c661f035987a4eb4723e3
MD5 5882bc4d73ee2450c8979a61e92dece9
BLAKE2b-256 f10550634e596b4fd6e4c797fe6aac438235ef457ff9cb881a239e7b00eb615e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 36a2dbc86f66694a25bd548b47f10ec72ff526bd404a1104bfe2413932742028
MD5 4df8af65bcb24d3bad90c982edd1637b
BLAKE2b-256 53697d0a67959582c484593ed0a293337f797acb8ccf2a562cf7c94cc8248b8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 e66a14066b663c45997970c2031e940e610eb4f40a1bf7194c2f3e9b2be80141
MD5 ccf2b6b82b1b6e27560961b3945bf03f
BLAKE2b-256 83e13999c1b253965bf6227b2f4da3f741aedf4a65a2ee5512c32512c3bc7e5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 e81145ab3d47ed2df0f1c621933a03dc336591778f580546e0a70c8e639ac29c
MD5 052c445b35e14e3730d747b4f71ef4f9
BLAKE2b-256 cd4e5ce7b35bfd3014f84fe233c8807571ffd967a21e131c97f5c27d1c7af564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0996187db47b28441ddeb133d1f63ad97a2358a55fa66b0c9b63980942b66da4
MD5 5ab1d1a87e61d13d84e236206f9f648b
BLAKE2b-256 d610579777476276b120dcb7fd8656069b2e144eee203ff5be8b3411e83826aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc89ddcfd439b71a5370f53693a552b6498292c53f8c029e92c4d9618745c2e1
MD5 a801400947ed6c9c30e9b1a8c33f5881
BLAKE2b-256 56b3631fbe6487322b887d29a284ece0cf70478320110d95172997ab514ff1f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbc7117962d6303e5be5568f9cecefa1de18a046e603c117285b8ef3054e3829
MD5 5f112e0179fec4100966ead5ca887d5b
BLAKE2b-256 3b0abff15dfadd99a9f7e91c739d9a1eb64c8dccb3a04785b98639661f661d4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bc7cc703f5a32bd1cd3a20e35260e5c11ff5a51398999937db60e4d760035699
MD5 29c67e573cec7670d2ea2cdcbfe23891
BLAKE2b-256 095030d81e1d342cab6a5dd5bb243b42bbf43dfe934f7c859a6f136cb634f6d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 140c149334e78fcd3ace033eb3f60166c0ca45b403a11f1b3acec5243067ecf0
MD5 0becfabcb368c920db17353b2d0fe83a
BLAKE2b-256 83e2219c46e48e0d1c5df2c699c57ecdcd069b89e2c136e6bbabc4f28e95c8bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f9d1e733003700114040351dd0e571d8a5d0bac87dbaf1efaa2b906b5cc2ba1
MD5 8ae6f795a3eedfac158339cff5c2cd01
BLAKE2b-256 845508a9c8e3232689f65788da48ff24413c5bf3750a9fdcc2198614cf162466

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96d3ac3d03b8727ba73c7f963cb5d456c2ba0b7d0596f92c149a8713518932b2
MD5 e15458cb6c26ac8f682d4e88bc9fc708
BLAKE2b-256 d11d6b14dea4f47cb3c179444c445884cd3c7d550eba6f5999ee48f48261fc8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9f16f45321f2b17f97d37872e8590d8b13f7ed55823fb0f5e3a1aef6503bdc4
MD5 0149375988d5226f87f68fe7a1bb7307
BLAKE2b-256 210c8ec1ea172eb1fba5bfeb189634ccb45842d48fa7e0fab5b816c68bd01810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 885a9a96bfe5a8e3e4ec7d2dce4812920a2e186740f84b53480ac2ec9f971508
MD5 eaf67ae5d251c79581f112f8c349e7dc
BLAKE2b-256 61943868f7fe097106f558da2d88a778a317170e9fed498a90d0fe572fb60cb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 e9b749a464341048eb12e47676f5129489f881990fde42fdc555fc2aec468f93
MD5 246e373fbaa19513eb0f823939e29c47
BLAKE2b-256 44905460a3ba6e5ddbe9a01330114150e138dcecc310bfcb85ce249b56bbf659

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 50b315dbda00c7d0fac67795fe213c7394d5a253840aa7fb09808d59847dd720
MD5 b5f230db23fb3f5e47dbf8b8602c22c8
BLAKE2b-256 cd0460947d1eee4458edc50dee4c71c2f7acf65e9e547e5bc62896ef587ff546

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9f0c5a18fe0df56ae9aaba984890a5d3f518c51fa50357a11387b9ddb5d22a1
MD5 b259b74d54d7b67f47839b7c293be8fe
BLAKE2b-256 ebdf913e63d384f3539a748f397edc63a144dda22def053fa3616ddc3be5bbf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eca0e29370d00e35ff6c5a3d1770bee18971f559916e42e9cb2a3610954a1f01
MD5 761aeb6e7c1a794c40e51e8d6a791751
BLAKE2b-256 3d99cb6c2b35cfdda142dde0e3e28a7556dc25aa9b19ad6263adea1bcb29275c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fb6d8674d11ae859ceb7a04aa9d0f80900730edf11b4bf449ef93a654b8c62e5
MD5 273682c8405d21936f4f376b841fc0df
BLAKE2b-256 8e21d97593aaf9cfd40173d5b94b50f086d67d236a1c2b07c9a550963ce630fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 807261e53aa62af29f1e5b1855a5538422fbc19d8c61643cf102a0a24143871a
MD5 a058aaa61fe17b239eac19313dd156c6
BLAKE2b-256 4cb913eb150aa69017d1b68a931fbd9cdf768eb2cbcc7ed7668e8cc3dd0752bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95907c33d71ea60f27933ecd7f12adc6cec7544a720f748ddd097829d3834448
MD5 d2fec30ab5c50f874a8ad435bb2776e5
BLAKE2b-256 4cc041ee9abe208c446aa2c3a5e27de5fd9d9592370f9bd93ed4becd7d36b2ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1f40627c16b3a393a7d35083e69becc476148f720367c0250c9c44a3d663e41
MD5 5aff9313e9047c78e91e36dfcfb08242
BLAKE2b-256 ac5297b1b1b10036eb70d18cacfc8ba77efb85cc4d1a25697735db34e039e08a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5c080705718787133e5fa2a54a07ea15143b3137fc406827b60a2486cda735a
MD5 e8809a8020ffab41cefa6d9f7d1a4bc3
BLAKE2b-256 b2e4e9bc16efcf5f2f50d79f82a62a2f9eb851981452b3551599a26e7edd3652

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 386e8324694767897e966323c145cd4cad15364c4d6116009a4245e4e64dd9a0
MD5 ca02b66ed9d468dfd093343db398a9fd
BLAKE2b-256 131bd5cf9b5579d5ac38cf1074e847e85ac6fd844532ece5aca373335b3a19e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 4517c865360acf57002f2f4e7a715ec72044c0511917eea293f464cdca1f5699
MD5 f90beb0b631be60247abcc05cf084f0e
BLAKE2b-256 b6a4784fa4877f7167499a65130e77bb01e478bb382e4f5d3d9ea3aebe6c6802

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 80b36f73ca4f1e2aaadc1f38c1477428241e803c5ec73ad08d8ec136b3d6538a
MD5 3bad4a379f096ea83410ad3654c67f20
BLAKE2b-256 c4a11b5623233cd721c7c9f64af67a6fad6ca407422b6bbbf70e29bdb0318cd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc8b0f2b15e232f4a517857cac66b27a175ea35f3d3f45f4b9eb557bc2485d00
MD5 8aa7430e5afce659d7a2dc5245ee8e92
BLAKE2b-256 5534f5b53a35965a10405f67255ffd9462d6be8413b5bce14a636f40246804a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ada1f538baf28c4e190007f9a0eda3c700fc529a74e0304bdda9a10803285f13
MD5 5d820e972768007a39f62ce1bdceeaa4
BLAKE2b-256 7308a312405395450cbe26ba68581969035516ac97706b3cb7ea19cb40867d77

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