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.8.tar.gz (46.8 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.8-cp314-cp314t-win_amd64.whl (295.8 kB view details)

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.8-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.8-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.3 kB view details)

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

private_attribute_cpp-2.1.8-cp314-cp314t-macosx_11_0_arm64.whl (77.5 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp314-cp314-win_amd64.whl (294.3 kB view details)

Uploaded CPython 3.14Windows x86-64

private_attribute_cpp-2.1.8-cp314-cp314-win32.whl (271.1 kB view details)

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.8-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.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.3 kB view details)

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

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

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp313-cp313t-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.8-cp313-cp313t-win32.whl (75.5 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.8-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.8-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.3 kB view details)

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

private_attribute_cpp-2.1.8-cp313-cp313t-macosx_11_0_arm64.whl (77.5 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp313-cp313-win_amd64.whl (285.0 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.8-cp313-cp313-win32.whl (264.0 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.8-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.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.2 kB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp312-cp312-win_amd64.whl (285.1 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.8-cp312-cp312-win32.whl (264.1 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.8-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.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.7 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp311-cp311-win_amd64.whl (284.6 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.8-cp311-cp311-win32.whl (263.6 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.8-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.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.2 kB view details)

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

private_attribute_cpp-2.1.8-cp311-cp311-macosx_11_0_arm64.whl (75.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.8-cp310-cp310-win_amd64.whl (284.6 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.8-cp310-cp310-win32.whl (263.6 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.8-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.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.2 kB view details)

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

private_attribute_cpp-2.1.8-cp310-cp310-macosx_11_0_arm64.whl (75.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.8.tar.gz
  • Upload date:
  • Size: 46.8 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.8.tar.gz
Algorithm Hash digest
SHA256 a2a5320bd74b546b7c433fd73053436ebe24dcdfa43c760a5e41734c1ee9ec1b
MD5 5aca9cc5aa860dc9eee90270d829e1c2
BLAKE2b-256 742e3ec600f4ce2bada36951ad25ab868ed83d87c7171b7c336f9fd7b2af60fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 2715ffbf53f28b0f28642782e8bc02acc77a8755c0550a4de9c589fa6692d6a9
MD5 0a7e00b96873ba83385805174ee41add
BLAKE2b-256 0119fefb414c53d54b2fb4a3a33e54fc2aefcca1ab7e1dacf6db0aa73502279e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 afa72a2ceb84acc6ff19b1f8dfa8295824c195709b5bb44de7ee2511371cace9
MD5 6ae9f0f95b6653a19bf2bfbdb8a75c9c
BLAKE2b-256 b1157849df81f5ad40c3303d7a363cb0e1e5067ac62f2b9f31b7fc7ccf07c7ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b54937bdeb01b4a1b30d01f331c71537bd00540ed2954aa0e68a5e84add1db23
MD5 9bff93396018686cbea4fc615fb066bd
BLAKE2b-256 c45846329418cd124d7a57bda200fc10a89d8f486a0b1b83b60f9613f225fe80

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 988f8295a610e6491b6a20d76c4a7e8fce6a2ac01aa57405cba6e59667fbaf90
MD5 1b6130f5838554017202e965cad65997
BLAKE2b-256 0b6e3a36a69e5020dfe6f2c745076a6e08dd99a5b9cfb0a4746a673058c9c187

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 595af79c220e62772398dd18a5708b3093b49c415c13d7e73a20aeb389b7e8ed
MD5 b39fe4474b0db234fa3e278cb033b1d4
BLAKE2b-256 b32136d7877c89cb641d07d2cff9e0152863e94632fc4544cc0deb707db3939c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1e6ddc7b00a8d3f8963d6e716e0be7a7e3b44b9dfe1af045a8538cabbc58e6e2
MD5 9ef0f38a5d425658fccaecc4553dfab6
BLAKE2b-256 a6e89bc233cd52b6b65186043e0254278763f05a6ff2c01b8a4ce1126b28769d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 22217dc06a17e168bc3f686fe57edb8a96b7340994f545d1b0bf2e3befef7ce0
MD5 2ee3bd90c48654538bba5f399dbe26d4
BLAKE2b-256 51dc5fcb1e3b82698eee58fb5066aafada7932143851a44921fae6123f07a45b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2d71039f649fb368c13a9860fa14ee7755588ee081153f094e98b010ebe0a601
MD5 4642bb64024a215e63a5e6fe02a8cab8
BLAKE2b-256 7db4733843971615af4e5241b665faebf8789d2456ec971fe6fc1fe60c0346af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e1228cf0ae8708eba7fb41cf1ffedcae0b8ff0fb3dc9efb24b427833131715d
MD5 7aba088d56d4a01deb36d96339638e9f
BLAKE2b-256 9ccba1e4b149faa0a977e8ff7f22a9d1e1a0732d1f9d4048ddb5db67bc26c8c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4091e5a4a1d663444cbb5f9d7d1784ea710646d55da44ecbbc8145aca0a4a9d
MD5 33f7cadae96af51752c64b13450ab71b
BLAKE2b-256 f335da6c4f23dd9dbfa70e29ef33bbe058c116aa91430b799ed6b63d35b47c18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 8345e257b608d36f50e219f571fc2dcef86cac64563f2d123427a217ed45a2df
MD5 761147ed7a3ce4856582782deff94181
BLAKE2b-256 87c4b7086d0d85ce56817732b43b8d320755f6f8599ae679a97ec2d18cad88c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 4e617abe8b3de9028d72f2ceb4bc028c52a7ae8e9b764552151fc558c03f47a2
MD5 0c988c64d6146dabc9452ad72e8aa6f4
BLAKE2b-256 16c54a22e48f0e171ac190cdd48deca14a4337e44ea052d04b339bbd90f3e39e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 77c267ca23c8b45333048ff0ff5b2289f9827f59c7b62ed5c600a2f96a4d58a0
MD5 ca524809f915d2ffcf2fe2245cbdf6ba
BLAKE2b-256 3052bd1e7f3c8c73c94a6309ed1dd838d197972147741261ec6e7db58fc79405

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4fdf8e91ec4a162fd2280f49db3f1cc6944a4221a28f5b8ddc089430593659a4
MD5 32cf035b5d256d5cd274dae496c2a5f7
BLAKE2b-256 1abd38b864b7c9590ed86c916f9c7e32ed5e8dcbc6c7f2bf37fcb1b44e7fdef4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc8e01080fff6530bf891e6ee3cba8468dc39d9506e3d6c1d282723fe1c912d4
MD5 8c137860b0824f423b564758bed5ebaa
BLAKE2b-256 ab3f34cf6b5c3b7f7dbca3f5c486a31c896ac4e67cb02113764b78dc6506605c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ceb346d742546017a4d8cd31c8d423e97f8b771a829c7b31c62307baf546a79e
MD5 70438612727f392fd8216d83a753bb56
BLAKE2b-256 e42824bd6a50f716ed393d928504d6546801348365b0e85b4c53e124079e90ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 568d2722d1b0b05448046f7d23045dcb8f2681d76ecc493bf5a8dce8f04d3a0b
MD5 3c7dac3862a13660bab8d81e5bf0ab7b
BLAKE2b-256 7189bab7f7298b48cea0026dfef8e1818ec6f01fcbb95dc1c98d4cfeffa2b23d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43c94f9f12a481761e753c29c264c405bb95b946d7a25ba17dd9e571dd1406e6
MD5 291c38d3d7c31671766404a2b95425dd
BLAKE2b-256 d81f9089083469dfeac59c9f2cca700f02f5334dcd8132389d6bcd027b48777e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a23c2719a8a730f0e6c94406df44a04413e6c8e95a9ae6eeab2c332b742dfe71
MD5 2d21d41f2c8f6b77c490e95a8669be3c
BLAKE2b-256 48f4c8d910d0c6272313f0a376b00fed6a8c4773f1f55bb689185027777e6867

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5b957cf99798efdf229083683d0be9d05a82e2260a97350f991ec709d3ce573
MD5 23d01d89d622425f2dda35e720bbbeb8
BLAKE2b-256 16220ea206dbffa793055f089eb901e5aede3c575a21830944251671026700f3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6907a5ae714633975b2ce180867facaf2256658739e4024a8f8eacc5a139c7fe
MD5 75a728c76a97ad6c3392bf7e6e8a3435
BLAKE2b-256 df2d1e9c72b6620a1f49035110b63073e29204d9f31bb85ef9c15640540efeba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 d31e1e8ac3067bb20e707ab53922670337e0a1ba744b3f6ff0507486c31a593d
MD5 dd9be82199f368e9dd4d273c7a1fe1c6
BLAKE2b-256 cfadbb934fa504b5e751c36376bd78669ca0f3bdcc621ee654dcb805edd53fb8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a62a406ef87d45c4121c72c07a38877aed03f94feef705dbd2ad77c388f2006
MD5 4a01174053be79af2ec145762e3e254f
BLAKE2b-256 9157227a007525ad2632db47f5e682fe302a8058f9ca9eedaef4058f579e117b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05dfe4aa3fb2288304015e437e40112d343366af8685c3eba64a30e06405a968
MD5 d166645498e7e589ef0550cb573a92b6
BLAKE2b-256 397dd07433ea8796dda47652d70517f2e8727880efa7277d08e8c195eecab405

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e07c8777dfbc27c76108e0af0f1a77972648de41932331c5418d6e00b7d1c6d7
MD5 85494cceade56efac19934c245061a6c
BLAKE2b-256 bf5a23414762d17f3ed466d48e623d062b67ba8f7f9b47389716b0812db441fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7709eb34ccaf8bac1a226f6d6f420d186edd0ae015e4a1c06b5fdbe225cdd273
MD5 60903d81998dfef35160bddfbebea77c
BLAKE2b-256 2fd6fdbaa8ab573f322f3ea0a623334da86d7ba054a9092c22702cf536b25c7a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 cd82f5c9f4fe54bc10a97dac260e03da73b311654a35a11874b96e0054beef3d
MD5 22be0967aee4d831c359e0d07ea53816
BLAKE2b-256 da09fdc5976960e4d39a3119089cea1cad276d926726aed4f5cc6d49e0be6542

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af5f0e42f7d5ebcdf0d0bea5b9f5745fa862dfc972b3434d92c89e011cef828f
MD5 b1669fd1c88451faa5d1212623bed1e7
BLAKE2b-256 d9ab02e6ba58abbe85db3255dc9c119498a5a29994e7a9569ce33463864a6da8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c2b5618693a752be85cde75b8d42808e679a8e1ed8388e3b89451d5f54de021
MD5 97b957df052ffc4c9246187316b55765
BLAKE2b-256 a102952446549e61a78fa10730be28071e6e0403b1aab16d1d8ce556c749e543

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8275fdb44ba132023780cfce668d95d9805a2627e34c59644e822a1e091b6e0d
MD5 703c1e31a778346518ac680b25d723d5
BLAKE2b-256 b5d75329432965daa68585af1f8d4097b8bf9869e5b13b9ee9472e259b531a3e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a5b068c7bf5108f8eaab67bfa8a755abed43283dbe676c032ac403bd47c1c61d
MD5 f60792d6a23c505186f2f4481d644bee
BLAKE2b-256 13f72e19d0ef67fec8b2aae93c2b073c752a9a9bab67e5fde5947a2a318049a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d53e829706ac10d2e819c755ef6a60cfced1ccf2c1ee6daf8f103eac440e915d
MD5 e54843c02c7fbcc9e85dca0a83e75080
BLAKE2b-256 dfbeb1bcb2b3068f616e35f9579dea5802eab2b5a56135ca4c13988c02b5806a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58a27ecbf0c176fcb6125d43d81bd7ac65885d602d2bfccdb58d08975a401613
MD5 c4483a100509e838f8de11424f6b8835
BLAKE2b-256 28b9ee5e88ad6b2feacc8135766e8949d01d68551be7d553a066eca368695bd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 117d3390589ec08915691e9ffa77d3bd1a12e81465faf0f80f570018354ac7b3
MD5 6b9ae0d636f26c89dafe32de44dee856
BLAKE2b-256 34564d5181535ae669054583fbc6995089349a6310bda20dde242e991e4a67f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ca55a980851136d919ca37b9c95b3d48e94345a50cd0969949587a7cc8e131c
MD5 06e08f6f22feb7c05cc054a34dadb31b
BLAKE2b-256 4ed3a44ddd7806e7eb31fdcfe5bd1ba2cc3e7fefd19918bc622d6e37aa8b95cf

See more details on using hashes here.

Provenance

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

This release

2.1.8 This release

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