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.10.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.10-cp314-cp314t-win_amd64.whl (79.1 kB view details)

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-1.0.10-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.10-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.10-cp314-cp314t-macosx_11_0_arm64.whl (76.5 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp314-cp314-win_amd64.whl (77.6 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.0.10-cp314-cp314-win32.whl (63.3 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-1.0.10-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.0.10-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.10-cp314-cp314-macosx_11_0_arm64.whl (75.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp313-cp313t-win_amd64.whl (76.8 kB view details)

Uploaded CPython 3.13tWindows x86-64

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

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-1.0.10-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.10-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.10-cp313-cp313t-macosx_11_0_arm64.whl (76.5 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp313-cp313-win_amd64.whl (75.5 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.0.10-cp313-cp313-win32.whl (61.7 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-1.0.10-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.10-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.10-cp313-cp313-macosx_11_0_arm64.whl (75.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp312-cp312-win_amd64.whl (75.5 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.0.10-cp312-cp312-win32.whl (61.7 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-1.0.10-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.10-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.10-cp312-cp312-macosx_11_0_arm64.whl (75.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp311-cp311-win_amd64.whl (75.2 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.0.10-cp311-cp311-win32.whl (61.4 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-1.0.10-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.10-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.0.10-cp311-cp311-macosx_11_0_arm64.whl (75.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-1.0.10-cp310-cp310-win_amd64.whl (75.2 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.0.10-cp310-cp310-win32.whl (61.4 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.0.10-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.10-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.0.10-cp310-cp310-macosx_11_0_arm64.whl (75.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-1.0.10.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.10.tar.gz
Algorithm Hash digest
SHA256 81011dcca27fedee4c587bfeabb4b5c01cbcb98e6ff212706dc64c89dfda464d
MD5 2f18713e03c3db46e6cbda8faf4eac25
BLAKE2b-256 50a7a94d9c0fc167e273edd80445485c6b807175cb4e7b6d2a294aa76c39a2f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 563d94653c176e174b00f7d4eda73b3c5c856a870c3a1563b15132f9e4eff205
MD5 be2f07903c4b4aa5a8baef059feee195
BLAKE2b-256 b565d22722a0ccaa841a408045a7e962d66c46378dc3cd0f9cfc58c221aca4bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 8e662c81ce410cdb421b890067ea3176c13082bccf952d3728ac7b509bb2a600
MD5 5c0afbb976c8418b98b6dc88d07aa757
BLAKE2b-256 28387f9c4e51f1c601c3d3daf4dcdc67ff9ae5105e9b1e4bb8c5bc74bec464a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9488592a4d6cfd1289d9a804faf3641cb10a43b2d79d5027d7ec7da78fd3bd8a
MD5 2b59a4a7d448a8ce25af98b1629cdacc
BLAKE2b-256 dc970830a64a17ec03eb74d84839fe629047d37a4998fed356743624a5913865

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1634558a095e4d6a8854f64bdc475843f5fa369fc34f5fd493b64cd309978bf
MD5 b04244f238da6acdc4f5d47c28ea8562
BLAKE2b-256 30ca1780af59594a9afc8d7cdf024eed18ca39a4130afe46116df47609d11bd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e1f71da66432c84e242622269a9b72919288fe541ef041512c4723d3d211a1f
MD5 51d05975bb4c973f542cf918452e16d0
BLAKE2b-256 dc1e02b20c82e0835ea1ac984699fcdaaf37741653e1295410c262d0a38d5a97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 18f8ab60e7b2983f1dac71f972a0ad1daf2dd22d8a47da100bc6531c38558410
MD5 5f535552409a29758aa1ce10f78198b6
BLAKE2b-256 902c9604515258ed47cc0bdcd3fcd6b8f71a44660feaf36ebdd0929542a42ff8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 ad5dd9acb521ca7788ef05d54603f97b2aeecd992cf6255feaa2d3b9a66b0675
MD5 0e618c7dcb940b2a0b65a0b0d46e52b7
BLAKE2b-256 f395f513dfc3d38c58b73d97021f6d5280707e6c9c71a059def3eb72107f5abb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3292f3c7d933d3b530084e86bdadc5b88bdc7fbba120c015e7db385929ccce2b
MD5 162441f08c63f56dae05853441343683
BLAKE2b-256 3f55e82b65d1b0cff76332ff1afad00585937b65f09c294adb70a55bd5a815b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aff53eb35f37fb377a46b9180be5448ac9871eabda59e6224dffe5824630ed32
MD5 a77bb9c2b5098d68b773baf2357602ed
BLAKE2b-256 2cf81eef24cc40963c1501ca44a7675e8580a7ab70cb0f62e6406345d93bc51f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a26a71b7ec94a23c0c9f383da19894ac75b665baa1cb70bc5ab72b5e56c0aa17
MD5 4b07360b2c4389d710463a2b99558a9b
BLAKE2b-256 1ab72d008001094dc3c285d4c4a88078524b9ed436ba34c41daa7cba59cf0dc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 2f54376cb0ccf1b16a044fa93b6a7b756cf9f009b8a1d268006a8d2fc99d7c25
MD5 8d33be00b73518e0e089b152d81c9ecc
BLAKE2b-256 541c9a78e46c197b8596afa61d3ec6161af0c070603e4b46b9e5a1aea6e9b94b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 8e84bc02ce8e4280a7f334a3678c7232eb74859fead7d5b4c7f65b1e8996aa03
MD5 43d4617b405e71a0b5eb9e10d49dc601
BLAKE2b-256 5131caf3ef80c75f69c6f2321bead7ed8547109013347bd58c92dafbed90d0e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 99553e44731bb08e21af468d18bf58418f0fa7527b5f703b4bd7f8ca4c58ed30
MD5 9b86df0bf4a01c8bdcc3597834236be6
BLAKE2b-256 08aa70002ce80f5318e29233f56c8de492761b1a0323621478fbf2cba472e779

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 86e52e0c2697cc16b63044c5f604db74e7a1778aec6a3bdcb7bef2a11d68503e
MD5 52cfa036a332856b068cd6430d16f6cc
BLAKE2b-256 4f45256ec352bfaeb851e6155a45a388acdc04d2611be10a5db41425b99aa4e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3815cc34a34446fad4be8be71bada0e266eae4d60e9efb13a94191f3969ec518
MD5 eeffb5d08d9099e79e9cc676749885b8
BLAKE2b-256 480abba02baaaf3055a1e4922a74ca10c346a5dcf3a9178bd1818c3df0df758a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c7077920694ea140b51d6e37d09dd715c24b2ca52f27cbba3da03ef03307c3db
MD5 efca3a4361ca4c972bd7025c7183b16c
BLAKE2b-256 1815e7dfb55b77f945fbc31ad0e34ecf2309c3f1db869456cf1ab928dd043a6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ec9c9a4a63c153fd36e548d5e334d0e584f030caf73addce3d3f260de088dada
MD5 17eeef7e8c412153acb354626e78a472
BLAKE2b-256 75b6ab5449b9f1c37577a1d105e279aaa08f33289d4a9a398fcaf5a3ed4c108b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7d657347adaffae476c657170f3581fc057fbd89698f9ced332cec2bfc9dca9
MD5 e640e8c5c40027792a9dab7f17cec824
BLAKE2b-256 01fc5a759e2124ca0bf2eef359aa7c4da092bba58d922c9253276a5922765697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95f8a49613a2997161f786b97f968b3488b090cdb5910aec10b7abd26c73867c
MD5 4ca46ac58166a362bba08ae3ff48e65e
BLAKE2b-256 b7706b76a2537a45cfe9b80a0082133317d88add740c8a874737431c1f883011

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 975f2eb9854b2e5fff33cb4ce311a46707900114516331f5218fcbc919022666
MD5 5569957cc2a0e2cc0e1e8edbe7a0a7be
BLAKE2b-256 c4a9c7ace5e27caa3177ccc6fa386485e959bbde22b108532e470a802936baf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8aced617c78291e9ec09319cba83b461bb7bda30e26eee4a04980b2a01b21a6b
MD5 727a323fadd10cb7304e31331019c27a
BLAKE2b-256 a928beb7d905a82eeecfbf78ff091cab3106671d11e9a6ca0bc4d1404e3c11eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 05026102ba69eafc2fe0c3cb6a61e81dbd39c17ded7350647a1c46dcf20f8418
MD5 b5bf856a10ba0b4599eedaff0e591b84
BLAKE2b-256 1a0678adc94baa914119f1a79996f1ab6f3d8015a99809e7d346d179637cc1fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6e6ab9bf7ec71ca8e0a4bd908db1f0e89478e0f735de70402273da09aec14e8d
MD5 8dea895235112fb1fd8b1f182ed972f2
BLAKE2b-256 785831d79184a38187bb2554e68c779c0916f698b8b719428e41ccb04dff36a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 86c9fa8565e4c1809aaf103b0b3109252b96515713ffad0cde75a36eab7dc2cb
MD5 f20663455503c577090d647af5bba3fb
BLAKE2b-256 6220ede45d1d809e63fafd67d6b0bbd8009be72ad7b43b4916715b6ead62c50c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6225f90b79ac055c2dceb5fbf924a302f5e9849957a3fbf73e7c0eaedef7ff29
MD5 a40d74e80f29a8a3f9a6828a9b4b1df0
BLAKE2b-256 82eb4cd5c417df7d23c0489a04a8cba0c0c4971fa5f40967cdb98b48317b448d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f09ad1e37ef0bb7b8cff987bb47c1130de52aeeaa114bd834b7c9d8c2e3f3c8d
MD5 cd78b02a612f8b37b6babaafa38f72b2
BLAKE2b-256 790d9ee4960271d991ef5595e5a977a272e3063d49ddab676cb478235120d490

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 52028e58bd0ae1da0dca814ad34d63fd3c2d5b754ecb665af432d188fb8e3bdb
MD5 9d22b02eec2e6dd35b1758158170fedb
BLAKE2b-256 0ab85c70b92b58e0dc39fbffa1808adbf9ec998d01704280f1e68a8c6cc74f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0edb7886206a210a27cac484ee11eef98b620321559fcd0f1478137795ed39b4
MD5 b2bc4ed96e23494a2bf19b1697ad44a5
BLAKE2b-256 8f0342f4647f49ba6258a8fb8d15161ad8ea661c4a66c3060c302f444774f257

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97e8090de0e18670cd4a5842a43bb5100e1279be0fe82eb83bc6f4a2afc186ce
MD5 4db79f49fcee73764560f3215cc7a6a0
BLAKE2b-256 d68d5f073ed4c713a5d1fdfa1b354ef51bb502c78f4f7a51a20c6ab68c53a094

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f832812d11869e24b6fe6303da57656fdf4f7906358a4c9d2e350dad95a8285
MD5 fe87cedebcad688bd189e7c0820e7169
BLAKE2b-256 d85df7725bc90fe938e959570ad1dbafb7b97a3eb7e3a01d73eeb2f067fc0ef0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5279f1a2707919f79a663c66f975206241925ad14a6d26464ee5e6a9584d44bd
MD5 5a7443815a9815d933240683982c47d0
BLAKE2b-256 ad8b72121702bc6256c1c07b47c7f597a2a6be906da948a848d18d51989747a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 bb32455c8547567c4935df2f06b773089daa1455f35e9a2c5c1048620895f40b
MD5 1502ebe9d046bca4d597aec510777b7e
BLAKE2b-256 f6165f441b718ebada81fb54cc283faaf7dda9c96bd52690a25069b82630e55b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95a3f4a510933cdbaed70ab70cce879f5462ff33556cc7c7c153d1a0a15d8683
MD5 8c30d8b57393e5b944a96c23fdca4b25
BLAKE2b-256 d3a380f83dca3318943efe32410253e1e1213028a8d7103661bcfdf4bab5051a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e6cd17c300c90a42cc3aa63f96f2ee1292d0fe29054306b7a0382fd63ba19e8
MD5 7dfa49cff668c1a0e8bc446d2c381f7b
BLAKE2b-256 87c4430c710a8c9e088de2698e053c0bc8345ce5c4ca4704670a24153d8501bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6faf921c40473d79a062cdd5968ccfef236769443f3241aaa2c7861647d1943
MD5 74cf2ad331c80baff49c052f43fec3c6
BLAKE2b-256 c68591bce8599b3f6c43000748fbe99575d25c9ba6ed16e48d4fdbccbfcd0d47

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