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.10.tar.gz (47.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

private_attribute_cpp-2.1.10-cp314-cp314t-win_amd64.whl (296.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.10-cp314-cp314t-win32.whl (272.5 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.10-cp314-cp314t-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.5 kB view details)

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

private_attribute_cpp-2.1.10-cp314-cp314t-macosx_11_0_arm64.whl (77.6 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp314-cp314-win_amd64.whl (294.5 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-2.1.10-cp314-cp314-win32.whl (271.2 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.10-cp314-cp314-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.8 kB view details)

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

private_attribute_cpp-2.1.10-cp314-cp314-macosx_11_0_arm64.whl (76.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp313-cp313t-win_amd64.whl (100.1 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.10-cp313-cp313t-win32.whl (75.8 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.10-cp313-cp313t-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.5 kB view details)

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

private_attribute_cpp-2.1.10-cp313-cp313t-macosx_11_0_arm64.whl (77.6 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp313-cp313-win_amd64.whl (285.2 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.10-cp313-cp313-win32.whl (264.1 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.10-cp313-cp313-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.7 kB view details)

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

private_attribute_cpp-2.1.10-cp313-cp313-macosx_11_0_arm64.whl (76.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp312-cp312-win_amd64.whl (285.4 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.10-cp312-cp312-win32.whl (264.2 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.10-cp312-cp312-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.9 kB view details)

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

private_attribute_cpp-2.1.10-cp312-cp312-macosx_11_0_arm64.whl (76.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp311-cp311-win_amd64.whl (284.9 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.10-cp311-cp311-win32.whl (263.9 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.10-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.5 kB view details)

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

private_attribute_cpp-2.1.10-cp311-cp311-macosx_11_0_arm64.whl (75.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.10-cp310-cp310-win_amd64.whl (284.9 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.10-cp310-cp310-win32.whl (263.8 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.10-cp310-cp310-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.10-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.5 kB view details)

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

private_attribute_cpp-2.1.10-cp310-cp310-macosx_11_0_arm64.whl (75.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.10.tar.gz
  • Upload date:
  • Size: 47.0 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.10.tar.gz
Algorithm Hash digest
SHA256 f19d4604d1d0ba3467adf32ee08a30cfb69caa24ae61785cc138e459e923c860
MD5 d553668eb300a04586ae4bb18546a6c8
BLAKE2b-256 d36800b77e0a8473cde2c7428c2b24d9938725358697155c4ec1d8901a01d7c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10.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.10-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 5d9e7c3cfa2355cd3d872845400f733973d8ee944380c24f3f9a16ffab8e83c2
MD5 570dd349ea51c0f7b31312fcc786afa7
BLAKE2b-256 c2315039449436fdb42b10bd63fb4c10daead531ff1a48e192e2fd07c02d7420

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314t-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 7a0aa01b43c2b61d0376e55ac899e23fa0f92b8c2e4c31e16bfab660e6338a84
MD5 7049356104ca548ed59923d5eb79d95c
BLAKE2b-256 dcb771f2416a847d8a99609af2c0fbe557ccd3ffbf9b2f1fc45880e6dd1d4d36

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 86b079c25ef710f66303996ff727a271f25b2c5ede22c7a00d150d9abc055e37
MD5 774707ffaa85856b2960113ccac9829d
BLAKE2b-256 fc7c7536e437e0db0c1de6a4baf77beca330df40a573f5f1d42dcaced9806295

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 053a1f9610448e087dd0a5c3722bad8ac2614a96d0a06dadc9184aec9dea831d
MD5 68bdd235bce0e02df4b4042e7ed499b3
BLAKE2b-256 db3e5c23744e67d924ee7826238aadb1dfb832b7c99d61e828fec8522b870177

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffd27b14d44fc250cf5c463eeeaeb57cd428bdc6fe2e562cc1bdea1b2307d5b9
MD5 fae993fcbca580ee92dc87fac7197569
BLAKE2b-256 c834ae0d90192c4d842946ffea437af717971db4566591be9a812f528623ac6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1482779a64c55155de1f367b06409502675f10d89bc20e2f58ee78ba1b6d49bc
MD5 620381cd6e5453bc844762ed08e63723
BLAKE2b-256 0b27483fa9de940cd6b1c3aa19443fc3b131ff9b009371d08b1f49dd7f06a814

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 59ce65f1e80b18f21b59561903ea8cd15e0c1796158772217adc998b00f520dd
MD5 98b6cdca05063052a81f54ff662ba767
BLAKE2b-256 6a7cbd61a7274a18be7ac7e7d9fa770a532416df88ac351748d35623c3fe1bc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 240ae7833a6761433a56941af24cafb44899a905c6e320683be59c3059ef508b
MD5 dd5cbeb04f19f307e2c82d2acded702f
BLAKE2b-256 5920f9158788516129a857238c7052732b875f315719974fe46e86739d86cdc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 242bb661030b3fa0cf13c40d6985c78139d1222612e01a886ab338fd79b395a2
MD5 a49c8bc64f7b406a01769db492695b3f
BLAKE2b-256 f11c4553ad30d2eca8ad121ffb9d0dde7fb88039407e4e07579ee155a10e9323

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 caeb96b003f2bba199be5b3aff69578fb2ab48bf124b8ac99bb060f1f060559e
MD5 e35c97acc508a7db234ee8f9ed2da635
BLAKE2b-256 42b0d9f32fffd541494f427b276b56fe20d78d12e5a69bdcf2b2d65706e507f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313t-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 b3f36de82c90b3924381269bc71f627f48bb4fc367909cd7319a11c7547ba755
MD5 14374090dae92ef78a28360e396bf3e4
BLAKE2b-256 12c959d214e7bb926e025859c59b33707259aeb0fa1f7fa81a5d63baad4fd034

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313t-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 b2fc5e7d100b1665af94e0e3b68bf5275b5246309510db43a2ea1cebf110df6f
MD5 dbe9d70c91aa2f6f36e8381bc1a4b8e1
BLAKE2b-256 2ce851cb045b347259b441150ac55d52fe79d3fb26cdcc3de76635fd99aa32b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6aea74db69a15e29fe53c98ba741ab5742601d1dfede5afbfff640d473392807
MD5 18f9eeeafd6c967fc3bdd8ed387f8ca3
BLAKE2b-256 ac3d5b6e66ff5360af20cf54c894ddd24360ce6a2b06f65d742c6dbc1ec5c4f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 760093964e66414362ac9c7dd3a3fd393a000fbb13622b55d6d203d2c599cc74
MD5 4ce80caae8a8f09edadae0d0eb34bf15
BLAKE2b-256 12c73270812b6926004736477c7323490e674ee26d1076e100d3dbcd5d8bc665

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42481276cdcb8f0df83a8d71ec3bbf7bc400096319ba398563bfd5d563e45dd8
MD5 62fba0663373d1ad9353eb691c376034
BLAKE2b-256 da97a5d453044d6329b910748ee602b444f659a4fd03530d134ada228d91666b

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a33c6a905e006eca29a111114542ffb314a037860005eac09d0217a7d87b28fd
MD5 53d751db1c3ed0edaec36ecc22e76b06
BLAKE2b-256 7e0e4896d8b4d9a81754e1d7b02824a0c7e6a8e7d00c2098d41433e94e9ba5bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 eb2ebcd7fe8e9685db711f6b1291bbfdf2393eef43a9c3145f5b91e3406eb3d5
MD5 b2ee077dfe015382924a70c101bc19f1
BLAKE2b-256 8ae79ec8802c87d765ff7e813673d0ac03312356ee360a27b16754c9d9145e6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 514c06b4160b67b1c9b4b59df9049ef01203e3e87da305345adc55a00629e53d
MD5 fa9a9e2e653e90919384a584d0d008ad
BLAKE2b-256 62f3aa5dad859233fe14beae7f6ea2207cdc9b808dca09babc0af49c28fa6528

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b007b81efd8a502420913742f228f0e7c7055590d32e1b3d2fc5cc9f254a1114
MD5 125525618b24ba69dee490ec4e4eea4c
BLAKE2b-256 5b7c69e7ba7dd9a38917c4f83a0367c54c0d18b11996e3d74e34e60383361f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33cadf8271ca951c245256e3465aa2996ab97200e14dcd2b85c4965cd0bb0393
MD5 63920b5ad5c25c23bbd5f357051bae16
BLAKE2b-256 9ce1271a6b58976c752991344a0695b5e1dd84d6891d9304c60036a9f3e48b78

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 21d5feaa73c458d1db2406b5ac17e7947c57bdeafb89333860ff0dd5060743e1
MD5 d3c100a036bafd958fdf1a2a5efa678d
BLAKE2b-256 4c37d025b2b8746cadc27f09e0088b4775dabc6ad7d781c0c0f3d7b79c514159

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a72443e3131c672e51490bf0dbee5ec6f95c48b2865077be9b2dfc4e63e9e474
MD5 89e4cac9c02bfee5f2dd6757b7b40012
BLAKE2b-256 6efa84d11306b385c9f4aa833d2d91067d8b52cfa4f8a6a4815aea400f2f67f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89aa938cfb291e37d35389cff21c4dad5ece112ed26494648bdd793eea1ad8f0
MD5 715249f6e0fc991c0b978dd8cb523ca4
BLAKE2b-256 d6f2e8ae4398aedb16ffc1a24c728d77f9fd725d9cdb6a1cca18e2916fd0ff36

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22c88a385c2de0e4f8559f6661a76066cc002b8f68203bfeed1ee68e20bc230b
MD5 f92812be06c99ad3659fbc3ff17ab3c9
BLAKE2b-256 8db371bcd5bddb9cf0c078aa3ecc7cbee1c4f0bfe4b3792a238ae319e71ed3ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4962125591bad5d10f403a93afe2a5cea181944cf1dc9642005570c2e13019b
MD5 cfbf02f481ccf6dd3e28973fa08f6d2f
BLAKE2b-256 ea8759cab6ffe3bdb06c693bbbdcf251c54652c48966a503e6c3fc7774db985b

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 abc1cb1a2fc9e1045abf002dc675cdfaab986c2e05c87d58d7d9cc706ff87808
MD5 61c79fe07bedbf28ba950e9cb76bf277
BLAKE2b-256 8e4dbb0e7fac5e78dd90b28af859c7538c36e4b032ff82a34798d51fc116bff6

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 61e759f51bf3779e262d516b42e790c8d3b2191b3c8732b6bdd88d4d3fac42ce
MD5 0c99e21454b6a188510d9b9605b53b31
BLAKE2b-256 3c8a83f60110e7e24ed2cf9a60a6264fafcedf9906b52302c48e75787fb8d9bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cbd4cbd7736dbb25364ccf5b6feb16cd783f51d6a5eceb727284dcffcc95c113
MD5 76f56d9acdba0ba2ee55a7bb81e93de4
BLAKE2b-256 97c5a6fdcaafd6caf2af4ce010ea59e68892b8e6ad383cdb455244f079c02829

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54badd86015cc22ea63f94e5633b2a13b917358bb2210bf272691635b92e1ad0
MD5 b5fefc15b1c9324d34f900887022b296
BLAKE2b-256 80938ffff355c7e854b93a9c9ca3127d33398a67ed2c383d0c99d9a19a6f875a

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68e96d6d56b975c97960792435172911e0288cbbf616c8bccfecbdb6a70485a8
MD5 72a07f2d90937beb2b164bbb2d6bfebb
BLAKE2b-256 9641e79059f35b9cbc37b0c49ad8828dd3d0f4a9a157fcacec7184c64d6dc724

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b3356d91c1c8c773dccc31ee8c8fb9e17df6bad1afa6026dbb4689790c18383c
MD5 47e0a984d9aad27abae237aea1dee253
BLAKE2b-256 dffda437fd1d7f1494cbf1261200afe47713686ec1473b4ed436a0d5f15979fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 a9f1882d2a6431196d1eeb360657608b0f0e734821a1a0ae19ee93e69d071364
MD5 a6e06ecd73adae327292f9befc0146e9
BLAKE2b-256 15ae661602ad89660b69488c1a51e59ce0dce7ba4bde1081315084be02c3df7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ee74c7019e4f6ccd7be4972a4e2803d2c62e4a6b0f988f4cc5559ffc768db6d
MD5 841d6479b16deffd2c02d9e9127c56a0
BLAKE2b-256 1e26cad27940e6b00b97049cdd7b5e0529c686ce1c24208de3333845b768ab49

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01c9d294c40d78a1219426f97a9e38b38af6247f6bcf46ceee42cdb62fb571e5
MD5 17bf85f4783859bfafa46bd53e5c5e7a
BLAKE2b-256 07623e3dc6d3f61ffd18f730c41759ceaa0c3c472e714f7885f95c67f096f917

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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.10-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d9735753d33df7311d52729facb6c1fc29b41fc0de7625fda3c4c5a30f898e0
MD5 f2a67055797739413936bee8f5056ad5
BLAKE2b-256 cc49bb6b80fdfd584e22ac6a18d18cc88262fec76cc7887290dcad2b5eb1ee55

See more details on using hashes here.

Provenance

The following attestation bundles were made for private_attribute_cpp-2.1.10-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

This release

2.1.10 This release

36 files

2.1.9

36 files

2.1.8

36 files

2.1.7

36 files

2.1.6

36 files

2.1.5

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