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

Uploaded Source

Built Distributions

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

private_attribute_cpp-2.1.4-cp314-cp314t-win_amd64.whl (297.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.4-cp314-cp314t-win32.whl (273.3 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp314-cp314t-macosx_11_0_arm64.whl (95.7 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.4-cp314-cp314-win_amd64.whl (295.6 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-2.1.4-cp314-cp314-win32.whl (272.0 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp314-cp314-macosx_11_0_arm64.whl (93.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.4-cp313-cp313t-win32.whl (76.4 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp313-cp313t-macosx_11_0_arm64.whl (95.7 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.4-cp313-cp313-win_amd64.whl (286.3 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.4-cp313-cp313-win32.whl (264.9 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp313-cp313-macosx_11_0_arm64.whl (93.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.4-cp312-cp312-win_amd64.whl (286.5 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.4-cp312-cp312-win32.whl (264.9 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (93.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.4-cp311-cp311-win_amd64.whl (286.2 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.4-cp311-cp311-win32.whl (264.6 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.4-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.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (93.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.4-cp310-cp310-win_amd64.whl (286.0 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.4-cp310-cp310-win32.whl (264.5 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.4-cp310-cp310-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (93.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.4.tar.gz
  • Upload date:
  • Size: 41.4 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.4.tar.gz
Algorithm Hash digest
SHA256 98ab7f429929977acb27705b81eb57308c27b45ab5625209cf93d6699bff0d63
MD5 0c7ab4f602d83734580995adfe666fa4
BLAKE2b-256 bcda82be881add30fc5614c4b727aa985a79a01e5feb02aa9807855b49cab13e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 519258da312b931b37b98ac1a9cf4bfbd98e8e1448109a5620cb88fd6671186d
MD5 204787ee0819598ba08c4ec11220bbbe
BLAKE2b-256 1c7080b951846d30d54983caa63d13f9ee1c55e969d31535d5b2ca3fae688b87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 d5669d94223352b02b09b8728b1d5b2fafee52fcc4d8895fe32100f1bb8a5a59
MD5 59feba35745ed262da2a02d891b77ff2
BLAKE2b-256 af42d516f804f241e3bf7aa268f1c93e8f1e3a233b84a814b420d15df9286a39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 98966a5c10d53e30e18f48a485f3c4b9d43f523330554e667570a79f3ffae1cc
MD5 fddd3abfa1f20fdc285436d3355f8f06
BLAKE2b-256 811429e0dc3b8c29c2ca559a9375fae8a74a0970ff53c1c8b7a36a0e7336dd25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a901db708a45e37d43efa21e06ab445c26ae5947ee23f3dd92bfcfc3e135362a
MD5 c362a9615e6231ccbbcff3fc5bc9d4b1
BLAKE2b-256 03fc64fdbe3c39b3dbe0c4041c1631f2c71bd9e45c10759a8b79688c3b4bc138

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26725a3f077efc3f55c89b035d197d83dc04380a02c00c7784f64d5365acc9a4
MD5 370d91ac01f06b618384c00db3654f48
BLAKE2b-256 841b864ce308376251564e74790314edec1c256e74472205111bec1ecbf22613

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c563e928cdb85c511caa1254a84fd1b6aa6ff8c9f4e91377ca12a093e6f4bc69
MD5 7a309eb78fc4e220e4e0b75c94007e57
BLAKE2b-256 5a068e77b4ad3c2064e2f0777213e7dd93e2ea09c683e62272b3a5d4ed3ced86

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 879ddee4d213dfeb26fec711f40deefc7e5e42704055bf7436458d7836fdd94f
MD5 e637c78d1bce1a7fb54d048bb3f50c2d
BLAKE2b-256 d73a45e82000693fee705bde529c95c344f69c5721227c49c901c7c902596537

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b5d4822c9e54c4f91a2b278e59b344d5076c20ef4d1486095d48e51a1b3e340
MD5 710335d91b9cbfd6996584e323025dbb
BLAKE2b-256 18e902a43c494d534a344171a4dcf4db7cdb945e6da928baaceb65c7bb33223e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b93a02a1307ed9e2bf306f79beeef765be63ce9a12519a4b21d558b9066eedd7
MD5 f5469001ce61b201bfbd5f4757f9deea
BLAKE2b-256 0dac9e1e62f4dfcb129c0bbde37ba1c3850554d6666604bb65acff57db7fe4ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3946ef568ac5d16cf5f078e4c69b8dee8dc46620a4b0794f1bf11b63fdb767c9
MD5 f9917208ab7ec64f18d07c42c62434a2
BLAKE2b-256 f323024fa532f2e74686653f05d44a27d0be39fd77b32c9776bd39c6f6ba5714

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 d43584aa371324d67df087993d2cdaeb9bf86c49a9be687929655ba9c1b7e754
MD5 d0eb521869f68a6154a1d254309e661c
BLAKE2b-256 36082ae4f4f60b3b0920a2911db55a4d5a4482191dfe40df56aed42a37b8ae50

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 38d54336bea898a76d994939a5784bec560acad39ca732c465a2d67f706c4dc6
MD5 5772a758d6f1c349d064f6b20979578e
BLAKE2b-256 b875eddc30940bad40d72bdd5403789fe473485df2b46d9747776023523bfade

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9882f92e42dd68d7e705746fb99c7dc586dc223e7b534608a73b4be31de9fca9
MD5 1aaf71103a884d5f7a478cd096b2d5bd
BLAKE2b-256 48903ce7d68f61168b4a9b4700195e4a331baf3d04056fc5ca91080f93211772

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41a29891877ae6b98bde7dcf2a3df0f6482f59a0db8503d0700f04d2b9219717
MD5 9d3284a72f129743fa8060f2755945ff
BLAKE2b-256 ad2f283b717ac2f7f5f218a2f0d5e4e8adf24260224834eeba3f7dbcc8df4883

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60fe1d4e0e62284f981514122ac113314f43ae79f0084d4ec10b7b22c6c95a48
MD5 916666aad49b05a8cd034e7e1490fdda
BLAKE2b-256 70cc2b93ae46f3618d3135445d8f64f64ab814a07ca18d216d8826219d3aa755

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d280f4de463288302a0f2ffa2d04c28cc12cf2876c0b269a25d9180fe96de2c0
MD5 2258ab83b9b9d23722f98b91d30856c0
BLAKE2b-256 038da7371a31e9a21781408cbdd16be096d980382bd45b3c96bf541ecd34945f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 552513e5de334eec04da41061816818a24541ddd1476f4d54b7f519dcf087022
MD5 6b9762e34b5aa48d6504beb91333bb5a
BLAKE2b-256 07e7caef805797d77ea2d0b57e870bff812765b92e7e1cbf448b61a596584050

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a441fe4ca070556b268e7d21648f6f27c1e822c29a1e1598b6548060304ab72
MD5 7baf0837af8dd068a5cbab38e1b7abe2
BLAKE2b-256 1426030ea915210d72c06a0503960ce7f4acf288f0098e1f3cbc963bd9bc6473

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfda931cd165cca5eb1f40a6055770cb296058bfc905ce7971426e09c9b7071a
MD5 8c4a7b63bef73aa560a3bd2288a672c1
BLAKE2b-256 ada2cc11fb7681b221bc622471fa1e62e06b9d49ca97274e68a7ee4da0647bb7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8414416a1e4c364dacdd9caaa906a1a5917df491866d6f4a7e868e66fba0eff
MD5 173d0b2d13bf2a18bd5c4552d6fa86ac
BLAKE2b-256 10fc48d297c57c844ab5eafb8acada86e8e21ae20aa6f38a00247592683c28e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c5a5a0d75f65d1a88cc8ecd7658b039f499d19b2b2100c427dc692a9dfefef04
MD5 3f2c713e90c4e7fbc27136e6f9616944
BLAKE2b-256 4a5ba9d320ec2fbaa6589b82a77b463a16f9796c10469beb60cacc43dd22dc1b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 9d46b3b1fedbbd25f471d87f063657610c04633e815e62ba90273d2ef20a4422
MD5 31aa4e89bd9342e34750474f9ca30d3e
BLAKE2b-256 de9991dbfc70063c8c204c7b9637ab6de82658139ac1aad6e32e6790d6561d37

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 647067e7a2d29ee704a2ee0f843dc3741f76f79fa5fdbb99df4d527f9e68ea1d
MD5 f48eb992e5f3f1dcdb6881fa9373c6ef
BLAKE2b-256 d210d3816e348b0e5a29a2438b477311c0b47ba0ff9dcbfc0b3c2d7ce69481b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92ce29d75e82d42ba93e380cf034ce602ec4e526a322293e3f4ea6c2e8b2807b
MD5 47cb7ebfe2a0a038425f7bf71b9929b8
BLAKE2b-256 ee7d2be2f943483ceeef77badc6a4ce98796c414825867cf59ad6ef63c7a5b36

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88d73670f0b09bc4ebb74d190905191e0b715011f0f44a1a9dfa60273f67a5fa
MD5 01f074906144f97b49c44a03f2a0ecd7
BLAKE2b-256 2ad1ab82275e2f684df7ff5b31bb86ff3cbc21f9bdedea9de501f730c875217a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b323d046e141643d459476e7c69f9a4e2119719cac68a8630e6660346c038f65
MD5 f80856ab4a31c98a826055e122f0007b
BLAKE2b-256 c12254cf748fc15dd4c303c59d0d5963e79bdc552177df96dbe0f627d1c94847

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 885d8433ad1a85e8027057a0dadeaf815fb676a60b60d3010bcab0dd40ee4bed
MD5 cb6bf56372bb4a281fde2ce08b330eaf
BLAKE2b-256 964a2e18f143e999caefa69af5984a9257c1ec29b7ff2658ef643221741f116f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8fabef738cdef2c29b0b8150779740c335ae417b4841ceeab7de22666a32e8e0
MD5 84de705528be0af5a71ba39fa44c3c6e
BLAKE2b-256 1bb4046399309d6d59ea1b8c47971db9d3df83ec42d9db2b36ccd7cf18da4b9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62bd3c503a8ca96076cd679e1edb80be068de5671b7c2f718c88ac82e2dbd9bf
MD5 bbe645bc6df7819f4b3425eaccca2f35
BLAKE2b-256 5a68298afd996fd77f9be044edd8f1ef828eb0ddb8349aca5e3c97751cb14899

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a200792960b8b2adad372e78f05d513af959839fd32ec01f921b7d091aec333
MD5 3c0f84664855e5e3c47bb67edc0b18f9
BLAKE2b-256 f0c23d0efbdaa2512bb653e2343e390c76b185293adaee300f9d4b6f46b5cbd6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 63ffa779b4b55316f3858d674d31606b3de5cbf8d3986c218486dc3ab7806f5e
MD5 6debbf846fe015665b16959c1b8894f1
BLAKE2b-256 fb18fdb7ddfe9f11bc9920c428d745e9ed5ec284f33517f943dbdf5af0faa0cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 4c3acd4a2173ed5559b83ec833b78cdaa8bff72b06fcf51c42cda400fa3fe5ef
MD5 5e7709b71fffe998c8bf0f445be2cfdd
BLAKE2b-256 b7f1f75f55240957e073b26bbd8adb16f5ae572f134df72b169422f2c3609431

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 115feed12bb93bf3f6c44e4af2c2b05de832263e07216cfe792917ff791bce3e
MD5 7f306b544499d06d29f41710098cbc3d
BLAKE2b-256 33951aae0c6285a14a7a6df477d02b250b60c30e7d7f196dc69706a32327a165

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2eaee54e35a1ede2ab1be3531357f242f1104dd5aae7316f239bf5fc5702ce32
MD5 0150a22f051b24dea56ddb648bcd4a5b
BLAKE2b-256 57658c1ba9a6069860662d80b7adbee5791262eb4ee29bd97301d1cb7781faad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a64b199b2e6b8c4a0dca1170454997c2f90e90331def2c48c6269cbd2b1c869
MD5 e94ad3906cf476167d19ae17fd9305ed
BLAKE2b-256 d9a8305b8dab7e49b766d3e50eadb5910889f36a1b8222380384a7399e674477

See more details on using hashes here.

Provenance

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

2.1.5

36 files

This release

2.1.4 This release

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