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

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.7-cp314-cp314-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-1.0.7-cp314-cp314-win32.whl (61.6 kB view details)

Uploaded CPython 3.14Windows x86

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

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-1.0.7-cp313-cp313t-win_amd64.whl (75.3 kB view details)

Uploaded CPython 3.13tWindows x86-64

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

Uploaded CPython 3.13tWindows x86

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-1.0.7-cp313-cp313-win_amd64.whl (73.9 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-1.0.7-cp313-cp313-win32.whl (60.1 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-1.0.7-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.7-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.7-cp313-cp313-macosx_11_0_arm64.whl (74.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-1.0.7-cp312-cp312-win_amd64.whl (73.9 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-1.0.7-cp312-cp312-win32.whl (60.1 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-1.0.7-cp311-cp311-win_amd64.whl (73.5 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-1.0.7-cp311-cp311-win32.whl (59.8 kB view details)

Uploaded CPython 3.11Windows x86

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-1.0.7-cp310-cp310-win32.whl (59.8 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-1.0.7-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.7-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.7-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.7.tar.gz.

File metadata

  • Download URL: private_attribute_cpp-1.0.7.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.7.tar.gz
Algorithm Hash digest
SHA256 d00bbb0c93cf9fbd5ac782201a4d92e4d7a41595a42243b33efe308258b0036c
MD5 cde44e8b3274067d4c448f8e03d01a38
BLAKE2b-256 4d5445dc67972f4048ba6f174992a6610bc30d9fc51128889de83ddcb0f5252b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 dcc0f679286ff970e5fafec968f153d45f20dbf6e16ae31252182814311e76c6
MD5 58dc72f92956330cb24e26c8344cf265
BLAKE2b-256 2ba0678992d008273fab3d0f5bfdb6b99e50c19422dbbd95cb9fbdd454d5892b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 bd6300f4cb9dfa54b971dad756812dbfe7c6280f106ba249973a3d299acc3f87
MD5 529f41f87114d8b90337f6965f0a6bcb
BLAKE2b-256 85c5e5c726479610ab2907c98924f6072d3689222186f3b5e843710168b87604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3bd4d1a70668843c74d9f2847c1834b2a7df644f7bf0d4b52591d3fcf3447fcd
MD5 09e59a8a1089ad2823bfd1e3a5229fd4
BLAKE2b-256 5193218bb500b73d815a9b167b25d0c0b73563cdafbf88653663ea159d47bc36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e18c9d86d55a528699424d3a40971339e53d9060f2b271cf6639afd3a2bca61a
MD5 8f50edbc907440bd32b5a719481efc7c
BLAKE2b-256 46a52d97402f46f9c67c600b6aa429a816aeb16770d325bef8f8118728724b8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fee2efcb738ab1269e0f1c69174c81a772a4f2f10be3006e8714cb5a81d83863
MD5 87c7cda97dab78371afda13865ffb379
BLAKE2b-256 dd27b7b187b3ba3588ffa663969f70ff3f4bf710a9451571636b1096da17a887

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5d4bf4dbaebddf3e500ed8a6f0a698dfc27e353a562943bcce97bf5bcfb8f811
MD5 cbf4dfe7ba8cfd27d944a4b0dff13d3a
BLAKE2b-256 143c3c7cc5c95d36d865555483e810dba578b3c07c2af53143ed6645b785575a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 f57ecd671975ca0511d7d1c38f74ec8a534f19b21adaf2ef2e142d28b65f845e
MD5 67894a27ae95fe0e6115c6b318747eb2
BLAKE2b-256 8838d172b08878f09ab1719ef2a7b47ef4c9732ea8e271c01d70c8c26d42f6e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aadc64fac50d82af2f4af1193529d79e8e491bbe29015352e7908a05c0004755
MD5 94b3f635492d0d463a1f6133fc6b106b
BLAKE2b-256 ba1365c4ed6e573d4ab6b731f7a1f6f0920522039d2b9318b0c8799755c3a4ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ffcaa46d89ad9c275d710459aefd3c5a734cea26471c642c45a171e247f307e
MD5 af5e81d1d4fde7fdcf5ed08556a79c7f
BLAKE2b-256 489dca58777304f3c630600e6cf099e9e3a4a559fdc31f4584e3a30d7068a15d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fed8cb003cf3cdc15911b040c1c3202d62298f46deb7eef453c86f4c3d598a7
MD5 4d112c308cc5eda630cb19b9d146ee37
BLAKE2b-256 18a3ab8e6ea23eb22872343ea3408a681f1a97988286cc349f61efb55691e3fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 e0b5238081c7442883f0e70e0c68ed3edb3988caf7964236f0daebc7cc5ce15c
MD5 9b862e6c48bba840623bc56f82af23e9
BLAKE2b-256 22041bfb571294a722fb8eade3a23f4aee2d885c706923aaec8e4dd62d402c6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 c8f7948a75d923dba901e4413c47a581b7837cd380927ab6c5972458588c1b9f
MD5 d13557b0ea7ef2a5d6decfed5691f25a
BLAKE2b-256 f8ae8f6d00403cfc801ae0d34d2c5c805372ac5e530685d19d5d5d70cb03a503

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b36bd7a6f02920e3020ba001bf98c0e63a5813c4f594568cbc535700b458e9c
MD5 70d1b3fd34baa1ab22a567298c09fb46
BLAKE2b-256 c796b621a48738237a820bd323cd4f12cf4566374ee43b176ec0cddb34e595a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec6fe0cf3eadf3f83fc693b9768d8f55451c44a6b1769d29ff99e3a19ef37ab2
MD5 a0694fd477fd0aa769a5649f2a5a1438
BLAKE2b-256 c0cf4687cf6f2e6cde239df1039c28ee2d38df42b9a220ea698c359b154b4312

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75a06ae2fcb6ce59f7588f7cd37c32f609d708050371c1f7965f74a9991e3b57
MD5 1f87f1e4c52ad218af1b1c5eaa6d9030
BLAKE2b-256 dbc12e21d599db8732727a0a46d5750ba80128e18fb9f6c39e5a9cc0e6fd1f6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 47598af391e34e906e6be3525bb7b6ea7234761526f3b923684c092fa9db5bf4
MD5 8c25555e9f8e16adce8ec81c6f65d2e0
BLAKE2b-256 68d9c16187a99a63597d1e596bb2a2c69c1139f65d6238333ddf6826c3308d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 e38308e10ccea0034cef8d9ac241c68d59ebae91c6584ba1ea09b4d4d2f73a27
MD5 6eaf0ada3cfe52eca4e198fd16e804ac
BLAKE2b-256 b3a05e9d2a7c49ada0ff8fe63af988f343aca994d7398ee9c449be5460b9b6fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b70fac62450629eecddf0bc16ea074aa159caa099e27545e1338600d1327e86
MD5 2355bc02ecec64cb7ce3f55110a6af1f
BLAKE2b-256 6c18f12972aeea48dcaa8b509b18fcfa97da06388981fafa7dbfa1200ef31fe6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d2c4cabe8ca7361bb4c959864bb39f04b917d41451efadfcb7bce4e033b9238
MD5 4e013d1a7585c7223cef595e41b662f2
BLAKE2b-256 2546579e796aee0f34358de84a4e21f584d05328bb38a9d4f68ccd6aeeec6706

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 533e3d61b494c53710ff19825dabb1a0c85856ffce7498b7cd9cba1b09403037
MD5 fcf2ccf74e9676c888682f472ad9c663
BLAKE2b-256 457cceeb7e78af21731616896de29eb7a377e5e793b7f03f735441f84f367c3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a416fb78fd526ee6c6f09a3104ff64f3b70a65bdf68ebaa68865b69da8baaef7
MD5 314715a750f0402270825509ae04973f
BLAKE2b-256 1a4cf7c523c31833d89eba83f4eb09b8c174431c1bab5d5df879b106cc2a498c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a83984b7372dfbe676add175774bd6236466a4fb155f54485eda606a20f6ad57
MD5 2cabed72705d6e98eb99b4b41ab0fa94
BLAKE2b-256 6ef34f4bf2e6c09186797c163b837caa70f8ffe3ab70ce06a9623c060be2db86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 127d863790271691694d092e8d3b9eeb5c52d88d0b1af6e21e9268ef9b7b36ca
MD5 3c17e5055f3def43a1d3f6610cff4db0
BLAKE2b-256 8c14368778b3c10bd7fbb4c39420c399d12dff0ba7607647f796bd27d681d724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a33c2381ad4dea9644f49b47cb169fc8718daa11fbfe0502e3d463ad38a7e43
MD5 d5f9c20e8823dc9612267e45c53d9771
BLAKE2b-256 ba7b585e50fc5fbe85750f8eb3cae035736e01b52bb7f9c3a28c9bf179e633c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8de59ef77880f81e08890520b81e2f8b1c073f6e687c2a6a865fc28a7a65b028
MD5 e3cbd7f12896304a465ecdd81ebec0a1
BLAKE2b-256 c48ae26f06326dbf04c4e2a888cec995d458ad8cc63d9d72eadae603142fefcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e7e8f3b87d1203e8f61fac63e2d17c3a8f4aa8af80115d512e73703db3c8a456
MD5 14170319bd574e716ad91f45bbf5658c
BLAKE2b-256 2ce7f688876baa35581cc5fee396038164dd88e8ea445d988a2997d3b615fc8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 8596abfbba458c9e01cd449ca13f53255f014a6fef418fa992c750a02813454c
MD5 1c8afea8390f763780958332bd59fe2c
BLAKE2b-256 a7cdf2aa2dd2ad6600197b93782c4463a02c431ce47a7ac84d133e8269f209f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 819f6183cb65e03e2777bc5ee8729d94044d377c779ab1052accbec66ba41a38
MD5 09d68034b212d2ddf8e98b869df7f96e
BLAKE2b-256 32acd51db41c94f58f25f20df5f4aaf5be677301e9dc181099b2c1fc71bbcc6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c53f8dc4573ed56a6f2e0a307e9015dea94d93fdf7759c9762b878300d7b19ce
MD5 1db615d9d153d99e0bee6b8bd19f80e3
BLAKE2b-256 c79637a65e26ae37706cd44469f9d9e550a78cb40f7a9e185ba3d7c2d741a60f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8d87b623e52099b860cc4ad0bc400c97b1585897e12fcdc0d61d8df1977ea1f
MD5 016773a6f5c8358edab3515f107b20b7
BLAKE2b-256 9bb25fb6d179aa47111d5c7b5688786756d4037099adf195cd0f6ec6b2259510

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a794de88fd3c34082c8507b172b7637adf61aef1f0bff14a6bfc55ca84fd2473
MD5 2bcb5e8a4dfe6402169115542406a239
BLAKE2b-256 3d97cc67e70f2c7180346d31ac5ceff0cddeef42e9502522523ab78752ab5d23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 36b1b49dbb7170030eee1798662fe5f7d28ee5e7620d11c38c7fc0fbb0195d9d
MD5 61a73f4242cc8bc409f4bb872f3d618b
BLAKE2b-256 63f167b9acaed843e2d3093a520794ae242a079be99e7a1f8aa5a8b86c52d8e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e16a4dbc6e1cf6f4f2f89cafa46356c123309035cb845533429a6afa3b6f58f6
MD5 627ca2006c7978c0da49d64c1b9fba52
BLAKE2b-256 4c184a14e07ffa636eb732ab5e3292721eeaabc62c06b52023c562c7312cbbef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97972cc386a525e743493c8d0144e1884000a18272c37356a78b0b13e0f32ae0
MD5 8dd769ec21765b500d0cde1c6e418e60
BLAKE2b-256 5aaa9bfbf47e2df28143242fe3cfe1a6b4a3f40c66fd058b7e9aff9497f35fc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-1.0.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d3bd7aaa155354bd4754fb085ccf84b2ff1fc2b5ba112a8b3d876af7cd81bee
MD5 55d9982356abe4cb3d6f0fa8690bb37c
BLAKE2b-256 cc98f556544106e57ecb15bcb8b124ed2667f750f253b3b15e44978ea1ed4633

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