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.6.tar.gz (45.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.6-cp314-cp314t-win_amd64.whl (296.4 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.6-cp314-cp314t-win32.whl (273.0 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.6-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.6-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.6-cp314-cp314t-macosx_11_0_arm64.whl (95.4 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp314-cp314-win_amd64.whl (294.9 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-2.1.6-cp314-cp314-win32.whl (271.8 kB view details)

Uploaded CPython 3.14Windows x86

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

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.6-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.6-cp314-cp314-macosx_11_0_arm64.whl (93.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp313-cp313t-win_amd64.whl (100.4 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.6-cp313-cp313t-win32.whl (76.2 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.6-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.6-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.6-cp313-cp313t-macosx_11_0_arm64.whl (95.4 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp313-cp313-win_amd64.whl (285.6 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.6-cp313-cp313-win32.whl (264.7 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.6-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.6-cp313-cp313-macosx_11_0_arm64.whl (92.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp312-cp312-win_amd64.whl (285.7 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.6-cp312-cp312-win32.whl (264.7 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.6-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.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (93.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp311-cp311-win_amd64.whl (285.3 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.6-cp311-cp311-win32.whl (264.4 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.6-cp311-cp311-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

private_attribute_cpp-2.1.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

private_attribute_cpp-2.1.6-cp311-cp311-macosx_11_0_arm64.whl (92.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.6-cp310-cp310-win_amd64.whl (285.3 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.6-cp310-cp310-win32.whl (264.3 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.6-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.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

private_attribute_cpp-2.1.6-cp310-cp310-macosx_11_0_arm64.whl (92.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.6.tar.gz
  • Upload date:
  • Size: 45.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.6.tar.gz
Algorithm Hash digest
SHA256 1fd36010b067e87eb7a583225ff018f2d059eb01510745d039cf42b9c861b922
MD5 e36e660c7fc8a924dc0e9875041ae798
BLAKE2b-256 443d06b119ab43246dd777ebc66197dc5f4f9306dbd85aa72ff9db72eed94efe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 93fae6a17215ea379c9cf3dc23f5748bfa1fbf59450f818f1d68b2326b449656
MD5 1a6ddc8e4fdca66f2facf59b79e0d514
BLAKE2b-256 2bd7f2a64298e68c85b71e359b751b259580f0da61ac81588dbb13bc1d225ee7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 6d02872d2608e463a841c88d2fa0c12319c68ba54c8e48cc7cbf6068d1f5d389
MD5 85744f703a1160131c1da06e6799ad16
BLAKE2b-256 45917fea60a37036abbcbe9a9e890ae069c79eaec6f8de925a9ab1c0a017d810

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4c57245e05dfbef5170032d6038fadc109fec7538b545056b83a676cdbdcde59
MD5 1c23ab24e4b3c8be7be1e85532030df6
BLAKE2b-256 071fdff2f359656eb66d51a09eb9abe1cb14a8945fdc80485dec0fb210616601

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ad5bfe4a47078fc38be85317af780ab4f91f607cfce52fdf100a839aaedb5cf
MD5 9be7fa30b4ba9e337f22f593a75be3a0
BLAKE2b-256 22ef4ad6a317f118cc1a9ef2fd0ce33f91a9e688223fb0803d1ee09688e06711

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1c6e41ed57fa9a71cc9fc5657343aec710fc2acefe27b1a794abdbe6ca2c557
MD5 3eaef4291a29318b856ff1fcbc4490df
BLAKE2b-256 5b3e77d7f2291eb2670235872e7c83d4b1c9fa2cf0f721d4c952158870f427d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 31f547def5eb0af1611a984cf0247227f248921857744ab371077da4afb5c608
MD5 df606cb71a4fe5d0a889a851262159a6
BLAKE2b-256 fd0f2942c41180707ceee9d4deeb868b8c5b03a5cdea1974fa4f07560a220f04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 ac41dd39fdfb743a5a62a1770840231b46ca8e3e09c001885216609a2fe937a0
MD5 af0921cb10a77025ab21c25517db9dda
BLAKE2b-256 4c9bc32ed64a826799244ed1d6df7549551baed31551e27df5945ba51d52bc85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 15c8b7214dbbe172635fec5569a7d6af208e0f050192a8f2137a686f106d0f94
MD5 1b8c1b81570068c11b80ec157afee566
BLAKE2b-256 acdacc56de83478ebec9343332224f178bb5cdde64d6b5d10bd90ccd42c6f7e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4242aab3bd941790f52219a2db4fc0338bb13acbc1f44c9ae7d9aaae8f1faf4e
MD5 167d058435302bb14823539ee43d068e
BLAKE2b-256 e44a2f5b64ed9bd871a9173e4ea0fddb206e38f24b193612e004419dcb998c6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81b34707c3e607623e298f47234070a238f506acfe301c2491d2dc6ca54ec5ac
MD5 4cec1a5c2f771ab0b1ea094e5a505777
BLAKE2b-256 a4e9bbb35f4379454a5daeabc3dc8a411301b797ad9fa697a049744888673f69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 33031755cadff18e333547c27fe92ad10fcafc66baeaa706d2cb3aa84e90aa78
MD5 1d37199655957d52ba84ebe585cc0d2e
BLAKE2b-256 60d7bccbf009a4c18985756d357364ae25a899bd3cc8a42052da7cdd13a5bf27

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 97c76c8db8a65a3a52c5f5bffbf832d82e18f4e549813018212d3b6b2c96c5eb
MD5 e8121f614a1ed16b03176aba629dc996
BLAKE2b-256 34889d16adaec6c5a5fcbd70f4ff5d3e762cc4a6b64518d6f48e47c958f88c07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 54dda13a646a68c79a2aceaaf600d2353783b5a8af800491a984519b236aa444
MD5 4254af9336088b93c0d21bac2b09b214
BLAKE2b-256 3b7f23de8c6aa988c19b57adf6ebca2bde6326e942195b9f9bca6b7d76c1a3c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e045fef453c23bc96289ec3a0bbc3639053a846df03e03a834501b47f613db70
MD5 c6b5d0f181c73d9181aa569179f26851
BLAKE2b-256 20722b0f688aa24c31e330ecf2d0627092a45ece0e44281d6a07dbb5cc3b4186

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f41ecd3712a28a0323fa64cff780ec91491ec7ff0d4609dd97a9d247a3e3fb2
MD5 cfddd103cc244d43416195633166bdbf
BLAKE2b-256 4bcd056c3db4fe2168f9f3b3d1ae66e3b0d0d3a7c99f2d2ead8fe3a0d970e9a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7f1fbfc999457b4cc1c2dc53056df06ca3cd62bf26ba622a961b31cb2602313d
MD5 149a51bed87bff9a4a357a0418b494bd
BLAKE2b-256 2ceaf20ae74a2b30f2852c0c89ed73c0e71cd9bade1e5836021fd80d13f7bb0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 715383fbab38f65fa0a3454082940fd410be51213c37fab208c45b82d9c161bb
MD5 d1eddc0d695b8885abaf17b5c08d5cb5
BLAKE2b-256 4057bb7d235ed8001c8cd8602164e2da846aa4d40ef8389ecdab05ac0fda92a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0a08106d2ebc52d64f6f17bb94f316d4d55392d768fdaab0bd00dec035ac20c6
MD5 dab22adf6989a66468cb7e8e9e3b2016
BLAKE2b-256 de543c834e37d2ce29026c632adf4986c1bb36beeb65ac17a7eecc925cd445df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b7e65cfa9daa50a51690a0472f6d43c13bfe85a8df63281eccca2be3b065551
MD5 a570e05af8c528c598a27daa1ffc5313
BLAKE2b-256 6a357d024dc559c78089497f60a37f8e989cf705fb13a51d5c1e23ca457401ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66db74e288228e865247079272debf4ecf296e814cca65789be8b14e12d3150b
MD5 21bb7522ffa3bd071aef6b33427e1960
BLAKE2b-256 5d85b2fe230d3a6f1e733fbd723b58c554b970a85f00f67ee3b30168fca42b82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8157b2abcd3b2779250efbe7e91ad4baad075c64f43d58080479d0cd3c28aa6e
MD5 9e51d6cf2ee8c98f3eba0a05e5cffaab
BLAKE2b-256 e4373a043ba2609b6f475ddda88ab1133bfb0fef52e4aed42a79faa9a5b3fec4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 07a6165d466e1b8e9489aa14c40196cdadab6d31e0ffadbbe595adc8ad6b757a
MD5 b63dfc96d9e70332a72cb2ab0a539581
BLAKE2b-256 102932179353289c260f396e4898b3eb05c29cf4ddfcd292c1aafff8876cda75

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a50a77a6fe0cdf14c82c673270b3147d164557f07624dcb3b19caf83b9888c14
MD5 eb1ed23dc9ff2a79a9c8a93a90a20d10
BLAKE2b-256 72a6f2f982647bddac5f7557323c1d412548846bd4f377e5865b1261a687ec78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74b963d859e4492526dfc158a11deec878786da5383d249534a03bd8733f7900
MD5 2f29a8572d1ec36dbe36fe89c73facb2
BLAKE2b-256 c05b591e9f4c3f1374356941bc20754e520b62769a5ed8ff6d7ed84b12fb8b83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d269dd35415f6590c5c5fb974723a491bb73004df993034e4ef686a01f35e40
MD5 855ed20e673ddee9398fca055f0e9ef1
BLAKE2b-256 9d1cad21dd6009abc98b4edfc69c1e1e73cabf8628aa4d92cbb02fa0635e8f5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fada7504abebb8d18fdd9fd2a604805cb12e51d9c9af66ebe8fc0df848142d6c
MD5 a73391b8482e4badd9a264dee9977f03
BLAKE2b-256 43c38a5abd3e8edc4dbc8255c4caa560601dedfc76691925e4a99142a2f81d25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 2d5ce17bc4af42b561c088b5a2a8bd80c96b292a5703887879eb351fd9724699
MD5 9f9194a3e1f0bdd70fc92c78e4ea0da8
BLAKE2b-256 2636af87162d3e8ee8f971d6ac5fe09b4b2feb4d22d66df94e92f484a787b4b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 890a782f66a4976e19a19d73d102668385794147dba886e24adaf33476db26a8
MD5 1f284f64204610e7e9c01f5cb87a2ef8
BLAKE2b-256 277ba298a96cfbab7c329dc42ca676a6037f700fdd08522d8631fc21e9baa0e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce3da4acd0a6115c0829073020b0a53407360a2eb71100e55125f1f8280e3bc0
MD5 5a26c22c929ce1bdbe1433c48d0172cd
BLAKE2b-256 1eecd6906016184fa4708bbc3cd6d40205350e1bdb03c0da440553a388ff6207

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c8559e3eb34d02baca343259220652e489dc17e42d355a6100ca1b9263dc995
MD5 fed5c18711ab43448f9b6a17f1775a3e
BLAKE2b-256 a05780d4bbc6791209fe48b70c1d65212345f8791826a0b427297f2924fb4685

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 95f75c869c3437dc60b17117849738c1c17f18d7d204c3b869e4768e622f94d3
MD5 90163db83dec76e71ad069d0b2c0a887
BLAKE2b-256 b3620136c4d3056b52548a07cd092fb2e726f6c322770fe70dccd93a521b7f59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 566728aad4ed00efb9567f462693e5088f46b6d557d34f6dd3e8bb269099fc5f
MD5 c01ce9e41188227ebe07f002944ca011
BLAKE2b-256 c1b8823d28f10e1cf4328c2427487b0609659a96d483aa08171911c9b3bc15bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d5b1821763f4765e1a75feb97de72001a9f50fa67499111afd2c2da1d53b2dc
MD5 129d163fb94c7aac8c9bc7cb87dac849
BLAKE2b-256 6c4fa6aa6e7598d7e9faa1937b1fc98bf61dd187b15414baf46af8ccbd44cfc4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b20a42f061e4e2dc2ec25df9ba214797a054c59b928425038e53939f0c9f7321
MD5 aabfdc49c975ef921bceb1a038dc252c
BLAKE2b-256 028a6d285e70019a0b663eb2e440d9fc7164412b690ef51d8a46fe4e584435b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b79a7bd08a2b95ffb09664ed17c95e064dc9d43a0c721fced2aaf8afda0d3826
MD5 8c09a468c4b1e01654ef460b451543f6
BLAKE2b-256 d077bc672678fb543d5e509ce57a24fa700958f88ccf082d7593b7bd850051a5

See more details on using hashes here.

Provenance

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

This release

2.1.6 This release

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