Skip to main content

Private Attribute (c++ implementation)

Introduction

This package provide a way to create the private attribute like "C++" does.

All Base 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 Optional (changed in 2.1.4)
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):
        ...

    @PrivateWrapProxy(method1.attr_name, method1) # Use the argument "method1" to save old func
    def method1(self):
        ...

    @PrivateWrapProxy(decorator3())
    def method2(self):
        ...

    @PrivateWrapProxy(method2.attr_name, method2) # Use the argument "method2" to save old func
    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 and funcs. result returns the original decoratored result and funcs returns the tuple of the original functions.

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):

Advanced API

define your metaclass based on one metaclass

You can define your metaclass based on one metaclass:

from abc import ABCMeta, abstractmethod
import private_attribute

class PrivateAbcMeta(ABCMeta):
    def __new__(cls, name, bases, attrs, **kwargs):
        temp = private_attribute.prepare(name, bases, attrs, **kwargs)
        typ = super().__new__(cls, temp.name, temp.bases, temp.attrs, **temp.kwds)
        private_attribute.postprocess(typ, temp)
        return typ

private_attribute.register_metaclass(PrivateAbcMeta)

By this way you create a metaclass both can behave as ABC and private attribute:

class MyClass(metaclass=PrivateAbcMeta):
    __private_attrs__ = ()
    __slots__ = ()

    @abstractmethod
    def my_function(self): ...

class MyImplement(MyClass):
    __private_attrs__ = ("_a",)
    def __init__(self, value=1):
        self._a = value

    def my_function(self):
        return self._a

Finally:

>>> a = MyImplement(1)
>>> a.my_function()
1
>>> a._a
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a._a
AttributeError: private attribute
>>> MyClass()
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    MyClass()
TypeError: Can't instantiate abstract class MyClass without an implementation for abstract method 'my_function'

Notes

  • All of the private attributes class must contain the __private_attrs__ attribute.(changed in 2.1.4)
  • The __private_attrs__ attribute must be a sequence of strings or just one string.
  • 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.
  • Don't use a decorator which will return the _PrivateWrap in PrivateWrapProxy which will raise TypeError.
  • 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__.
  • Since 2.1.0: the code of a subclass can no longer access the private attributes of its parent classes - a parent's private attribute is only reachable from the parent's own code, or from a class that declares the same name in its own __private_attrs__.
  • Since 2.1.0: if a subclass defines an attribute with the same name as a parent's private attribute, they are stored separately (instance attributes per declaring class, class-level attributes in all_type_subclass_attr[parent][subclass]). Class-level resolution is per-subject through the parent's code: reading the name on a subclass subject returns the subclass's own value, and the parent's own value is untouched. Such a same-name definition does NOT grant the subclass's own code access to the name.
  • CPython may change "tp_getattro", "tp_setattro" and so on when you change the attribute "__getattribute__", "__setattr__" and so on. If you are fear about it, you can use ensure_type to reset those tp slots. For the other metaclasses, you can use ensure_metaclass to reset those tp slots. Also, don't set those methods on these classes in your code.
  • private_attribute.register_metaclass must be called with the metaclass which supports weakref.
  • Don't set __static_attributes__ in private attribute class, or it will be removed.

License

MIT

Requirement

This package require the c++ module "picosha2" to compute the sha256 hash.

Support

Now it only support Cpython.

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-2.1.5.tar.gz (43.9 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-2.1.5-cp314-cp314t-win_amd64.whl (297.5 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.5-cp314-cp314t-win32.whl (273.5 kB view details)

Uploaded CPython 3.14tWindows x86

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-2.1.5-cp314-cp314t-macosx_11_0_arm64.whl (96.0 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp314-cp314-win_amd64.whl (295.9 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-2.1.5-cp314-cp314-win32.whl (272.2 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

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

private_attribute_cpp-2.1.5-cp314-cp314-macosx_11_0_arm64.whl (93.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp313-cp313t-win_amd64.whl (101.4 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.5-cp313-cp313t-win32.whl (76.6 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

private_attribute_cpp-2.1.5-cp313-cp313t-macosx_11_0_arm64.whl (95.9 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp313-cp313-win_amd64.whl (286.7 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.5-cp313-cp313-win32.whl (265.1 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

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

private_attribute_cpp-2.1.5-cp313-cp313-macosx_11_0_arm64.whl (93.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp312-cp312-win_amd64.whl (286.8 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.5-cp312-cp312-win32.whl (265.2 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

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

private_attribute_cpp-2.1.5-cp312-cp312-macosx_11_0_arm64.whl (93.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp311-cp311-win_amd64.whl (286.4 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.5-cp311-cp311-win32.whl (264.9 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

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

private_attribute_cpp-2.1.5-cp311-cp311-macosx_11_0_arm64.whl (93.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.5-cp310-cp310-win_amd64.whl (286.4 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.5-cp310-cp310-win32.whl (264.9 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.5-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-2.1.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

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

private_attribute_cpp-2.1.5-cp310-cp310-macosx_11_0_arm64.whl (93.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.5.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for private_attribute_cpp-2.1.5.tar.gz
Algorithm Hash digest
SHA256 22d48cd74139f6e306db382c100738d8b73b37ee35423a4e827b7bc98e43d595
MD5 19928e781480244233ccd101b16d4a77
BLAKE2b-256 e162121e693766d9997c6459225ef69dbb9e212dbdefa7f396decb3c5d0799b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5.tar.gz:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 fc6cf8726d9d74d9728a31c78824d40dca7e603b97734d61d9f64ccb8567a2ae
MD5 e97b2f1f8a5a34c0c9eef354ab810545
BLAKE2b-256 0c96c9944af3e8470f03cdc93b542e94cab2402f4864d0f1ad326262ba357d96

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314t-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 ba0f9c3fe2e2e6497f6d4bbe337b95e7e8faf36d4c5a5f2be9c6ffeeb1f57337
MD5 cbf06199675c4aab320fffe9045eaecc
BLAKE2b-256 2ebeae8b87aa2055741aa28dc48497ec5e48c49d0d02578dd6dbe2fd9c1ead51

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314t-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 601066082390c4e4554b9ffc65b86196478c78b072419219ef48ef5a6ee04b75
MD5 ce164053989d10118553f040c86c1d3f
BLAKE2b-256 930de1db97be785d4ade5b0af51e8aa4a3c8b061e82a026e0f05ebc125241867

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2eeca91635cb55d24ff535d3b57cf6e324d5abb46443a35bc658712458fbd74
MD5 fd874d2f4e64ec922404295537815768
BLAKE2b-256 915d3eb0cd15945510e526264a7f5cc558580c786f0a6198e89a1760dfc44a41

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edf09172d39255e3b623e9e6915d06b07ad2c8f07c37e582b608e41e826ac9dc
MD5 bbe4c4a89264663868b57a3ab39a48e8
BLAKE2b-256 f23cc45a4f061e1423b8d9df2213f5768b4b393be2098303af46fdc16e1f322e

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3aa7dbba6819b10e5905cefb8b5b640d1b535359257341d893b58df83b3d8191
MD5 6b9086b77a2fd1e3cf0e8ec2ce73ba06
BLAKE2b-256 8eaccf5e1e099453c517f18699f5007b1870cb028de835ee31bc9d4ea86c1648

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c8ffaa72f2cfbc5e6ba57f04bfc0fbc215046a89b9652f0c70b03c98f963e2bf
MD5 5bf61d26bd03b6056f1c014095fe9849
BLAKE2b-256 71cf836c4b8f29d5599dd28bf18b7ba3212a13eb70fdcdcc4c46f4474d77e98c

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b9475d19ecf515a6c6ae21b4363dbedced1a9ac6e8c1b62a3e9944089f38db2
MD5 869153b2316d09d09557b37cb97576c3
BLAKE2b-256 5fadc7c5dd097eb462a004ff5a00a9f50d407cfd1cc436ab9d6b5b9011308e80

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5119ef3ce943e4124eb23b28d58933183a6781a31915e43297f66fcc6a3efcf9
MD5 c11cb93a110b2adc96cc4f596b386aa4
BLAKE2b-256 079c32d37c07093d8fc453539743d8c7c59e5c5a5b7fb5334bc313dee0ba3c43

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87fac669dc23463497dc0bd7b96ceb58ad81de0a57e14cdff00dcaffe5a89fd3
MD5 9cc730781e6e4366042f45226d59c40c
BLAKE2b-256 776f44f84e7b3ed7e38cc85e280e1465052ce01e636d060ce467fa573445015b

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 bbd1359c2265de6a8252376ae80b9e15a6815373591da875450518de48ef6ba9
MD5 1bcbdb759e4bcacbf2be805b25d6b95b
BLAKE2b-256 8226af3a04d9bb054fad67b750e20fd90215a20c1a3a41187b9c67e3ca9b3221

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313t-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 a06c60896a7c94983abe8d8a60f117d72cb768ac0aafd73f2647be480710c369
MD5 1e8f5dd8420e5a9e9c2781e850709b7b
BLAKE2b-256 4d432383de28076c012f09d18e32d8d842c6402a44d1169bc09c06766d595534

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313t-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75df1b9ca5079153132d82d981fba4dbaa656f42e2a645d5e70c3f2bae225314
MD5 eab5507bc3b075331eeabe0b23274438
BLAKE2b-256 cf12ef23e279df7f9f9a77e9e2d49a03b5d079a9cc8556a378de2d2fe80be2d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1df791d269b7eb5acfdfce5849d72717f93060d66a68cffa6bd1fbb8164a5fe7
MD5 dd8df8ae253f51b05374083bd20a7314
BLAKE2b-256 dbb7dbc33a963d7dce28cf9315027bacacd3018b9910c010e8f7ff03ec2b573b

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 feee2fae61d70a8a5a3010082929f22c43cd0e5ad0f8af0a2e0908a13c2bc5c5
MD5 d18af0a5d1ea1217f7371469fbd5f8ea
BLAKE2b-256 4e95846b0b6439f53f5bd2963bcb0853ee8f33cc9dca5df83b323bade6ab720b

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2c616c7c7584a38e774b4614836164fc82dee620ac48b1288d51e1bafd42ed69
MD5 03e43fea552fdede11071b60c7cbe897
BLAKE2b-256 4eda44af766580fc2642e94f12e66750463a39a24299ebbd2f6f3ee98bc46da3

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 71ea58a4f3f91b8dc9a066e3710ce62d9d5f0253088f1009c35a420925180467
MD5 49edb4184ff3d178b9aba10083d966ea
BLAKE2b-256 d69aa74170378c338b2622d7029f7cf6d7d37b75c9776aa2e02d1f1e149932ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 afd682f42f2069784866d44d23de9773bb02b7ada6abb454127f9c5be733e59e
MD5 9df2423fb254ce100bfc275421f56fc7
BLAKE2b-256 3130603aaec70f1428c5ef0abc1fbf2932a21dd8d5d5fb321b02be65537f4a65

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44371bfb8c41d9d89650a945609f14810381751faa5b34b03ab080cd38cb33a0
MD5 c09925856460cb3104a6aed6b20b48ad
BLAKE2b-256 a814fa5a183b4a0c462ca78cca73b6147dad9525d1d26444eacc2de2e3b5d6a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7845b97f66225f2f3165e9af4074253cdd34d9b782bd8936377617bc308582f
MD5 96d8f1e621dc0880eea8d717ba7609d9
BLAKE2b-256 f8bdf047d4d87197ffe2479b61bd5383d8d00720fa33c3abd689eba164eb13e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 71319b214c362059c36e955b43d79687bece977759b629fd61c651e3ce11f452
MD5 d12f303e6faa9e6bf4736cd8c18a09b0
BLAKE2b-256 11827cb247eae3dbae2990f714cfd914372cc9c865a183dc42f3a03732b9ca2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp312-cp312-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a19ee86bf440de10fb54064307b2e52b106dec928b7f8ca59fdcc8de668de2ce
MD5 12788191d52cfe86b10e3b404a26cb9c
BLAKE2b-256 64699a093931b712b49791ad861d24327909e5d1cbe1b8e7b2a6399e4c5960f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp312-cp312-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aad4c69992a7ea8cc8546dd91cf1819bf3cb7ddaad417dddb8b142626ecb9c52
MD5 792ff69ddf7142bfae7667b224accef8
BLAKE2b-256 bafb0b5d420da4ff6728fe600a7f692b30821dde1c6211fd1ba00202c456857e

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b783ce8c84d47aa5f767af4cc69ae10f0219fa4384e808f630583693fa9c1a7c
MD5 aeb3711b59254a852728bc4c0da57a3a
BLAKE2b-256 caa0a2b47ebef9131465a7c5df2d28a11801dd34053882f2cb2af8ff61572d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75aed027084f715de46a9539937bcbdbc113fb744faf6e977003a102c96dc491
MD5 c76e35d1d68327de1fe5a8da2a16f964
BLAKE2b-256 8221ae3a6ea2b3f100ee1b23bef713ebd18e5c28b9a662ce0ef078add5f77b58

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0527226dc3e1be922539b7bf197baeb1d0f44a6704e9e6d9eb4d75bf10aa9402
MD5 e526dc2ad89a284c20aee8d836694ccf
BLAKE2b-256 dd4e1740d490dc3d70e9f4166abb1dcb28609f25a2f8730d80e69b0d2ed31858

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp311-cp311-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 9c4b120cd3970f9ad1b91ad30cd73885ebe95c1c1be7354c83a4073b00e20761
MD5 3051d3931551d870ac32cb056b437b8d
BLAKE2b-256 170c022a9d6ef68a23242a0dbc7d5cde1fc3694654de08dc8fff595d4853f3a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp311-cp311-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 44c008aa7abd55033138cb35e3fe23c2992b62e1dae108b1c81d233eedef6d79
MD5 c0b00f22e0d70e3380d3a476fabff0a8
BLAKE2b-256 925075c7c480db00fbaa73a6e4a4bfd8afcadd15453dc5c4985f957ea9bc7515

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc0d54f4d58049413eb46ff47ce7301b638d1ffe6a3e088d4864e0cef1a536ca
MD5 183c24862fe54806705c584ff8bfb70e
BLAKE2b-256 8001515d88d53dba52b6f2f2b3ac3f6969bb39cbeefcdadb509ca7b5c7acda29

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 093567290d77a861a1f617945dca3c2ef7bcfb2ed0bfef8293fa75cc88858c95
MD5 ec3064acb0fd3c8e3602bee449586de0
BLAKE2b-256 e5af633697713e2f1b52e1bcc70e7736f3b8e65a6b99def0d02a6b648b3a1781

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 32e7647554091b6d3a753b87296a2b990e4de5e624a6836d755fd86330e6cd15
MD5 d858959a72b2f4f246f1c3c4ebe203e1
BLAKE2b-256 24ddbaf46488f61e2857e3da18ac68f56f5cba10b7ee99ef0e8f5d84b253a9ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp310-cp310-win_amd64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 875e9e58332ac7d1f3f84e1b188c8ecc0c0a6564941c1f054f24f2b6e85dcf99
MD5 44b44c28f2be3ce329cb047b5e04a4be
BLAKE2b-256 27c2ec21e4cb094531206bd9240a459144c04b8d2371f701a37d7fecc305f851

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp310-cp310-win32.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb91644b4d5519625bfded19a701703cce2f8271d093c5a11a6b42a115853900
MD5 cca8ce595d365b561eef82a8a4965523
BLAKE2b-256 c4ef4997e4bd2918c4f1e58362fb032be6fb37f44196d1b8c6349d7e8c068e63

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 77f1c4948935788ed989cfba70267ee0cb08b199fbc1d77b44f2fae5b2954a91
MD5 d4e2c099f63e20fdcbda968d78c38908
BLAKE2b-256 d0812abfb4e61c6c58a7bf7f2ca4208ae04af51cc68d3156f34ddf331060fdfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 164b4f4e8ad1c8a33322a5de50852b86bde1557e7c658fc42147e9370cf69685
MD5 42768845fb42091977315ba42706d491
BLAKE2b-256 9aec17d33674728e35f872fc184d48b54f6b945b4ad59df8c5d03ed5829bc732

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.5-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on Locked-chess-official/private_attribute_cpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.1.12

36 files

2.1.11

36 files

2.1.10

36 files

2.1.9

36 files

2.1.8

36 files

2.1.7

36 files

2.1.6

36 files

This release

2.1.5 This release

36 files

2.1.4

36 files

2.1.3

36 files

2.1.2

36 files

2.1.1

36 files

2.1.0

36 files

2.0.6

36 files

2.0.5

36 files

2.0.4

36 files

2.0.3

36 files

2.0.2

36 files

2.0.1

36 files

2.0.0

36 files

1.4.11

36 files

1.4.10

36 files

1.4.9

36 files

1.4.8

36 files

1.4.7

36 files

1.4.6

36 files

1.4.5

36 files

1.4.4

36 files

1.4.3

36 files

1.4.2

36 files

1.4.1

36 files

1.4.0

36 files

1.3.10

36 files

1.3.9

36 files

1.3.8

36 files

1.3.7

36 files

1.3.6

36 files

1.3.5

36 files

1.3.4

36 files

1.3.3

36 files

1.3.2

36 files

1.3.1

36 files

1.3.0

36 files

1.2.10

36 files

1.2.9

36 files

1.2.8

36 files

1.2.7

36 files

1.2.6

36 files

1.2.5

36 files

1.2.4

36 files

1.2.3

36 files

1.2.2

36 files

1.2.1

36 files

1.2.0

36 files

1.1.0

36 files

1.0.12

36 files

1.0.11.1

36 files

1.0.11

36 files

1.0.10

36 files

1.0.9

36 files

1.0.8

36 files

1.0.7.1

36 files

1.0.7

36 files

1.0.6

36 files

1.0.5

36 files

1.0.4

36 files

1.0.3

36 files

1.0.2

36 files

1.0.1

26 files

1.0.0

26 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page