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

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.9-cp314-cp314t-win32.whl (272.3 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.9-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.9-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.4 kB view details)

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

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp314-cp314-win_amd64.whl (294.4 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.9-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.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.4 kB view details)

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

private_attribute_cpp-2.1.9-cp314-cp314-macosx_11_0_arm64.whl (76.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp313-cp313t-win_amd64.whl (99.9 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.9-cp313-cp313t-win32.whl (75.6 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.9-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.9-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.4 kB view details)

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

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp313-cp313-win_amd64.whl (285.1 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.9-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.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.3 kB view details)

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

private_attribute_cpp-2.1.9-cp313-cp313-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp312-cp312-win_amd64.whl (285.2 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.9-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.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.8 kB view details)

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

private_attribute_cpp-2.1.9-cp312-cp312-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp311-cp311-win_amd64.whl (284.8 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.9-cp311-cp311-win32.whl (263.7 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.9-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.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.3 kB view details)

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

private_attribute_cpp-2.1.9-cp311-cp311-macosx_11_0_arm64.whl (75.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.9-cp310-cp310-win_amd64.whl (284.8 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.9-cp310-cp310-win32.whl (263.7 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.9-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.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.3 kB view details)

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

private_attribute_cpp-2.1.9-cp310-cp310-macosx_11_0_arm64.whl (75.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for private_attribute_cpp-2.1.9.tar.gz
Algorithm Hash digest
SHA256 998cdc385151e6dc8a1706b213a3f673eec37650053cb2e96be8c7c662412bd2
MD5 0416850f63bf15c32aa8a10d50fe3099
BLAKE2b-256 825f4af3b909e982eecf0f6dbf444897108729ff18b1e4796559926ce15086ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 be82c95a91039b056ff26b755eff386828ebd2e228202995d433175c88dab8e4
MD5 d226d64cbf17ad98fa3485fcfaf1a9a5
BLAKE2b-256 76f57fc7fdcd1c2ddfdcfcbd5250f82fa37e50857fff95f8933ec7f66167bc9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 725b096969867b11a9a46ae31ab6363b4650a02afad70cc8bdd5d6057c87b09e
MD5 d26ca69b718237d3fac9fa49716a5118
BLAKE2b-256 31a49caf0e072800239640cd01783ba4b2e6425c94af2d5052ea7ec438fc3883

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36faa4da755a51febc9a547da9705b4479dc7f10ce9b8f3ef9b8a5d9919dbb4f
MD5 aa1c53c8fdeffbe8a9a0373a155f205d
BLAKE2b-256 170a913d79e7354332a97009b7a73c6b716343c379f5a5823c2950b6eb7f64a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 574733fdae27f4742b971d7505d360ba257285cad194bc0c84d50bbbde79dd2c
MD5 d3bd3169f30231ade7072a25837e4490
BLAKE2b-256 8c12b43d31aef5b8603e4a0acc1580cd4d1e75c74872ab182b277a65557259ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8e98e129596d0395ac590bb442a43abb4f366010f2b2c4aa6809ab126db02ad
MD5 2e505bb0237bd1e335b1faefd9479a8d
BLAKE2b-256 88f2240d1b45f0fc6c6d25678cd74d759a3ac4e132612828a30d2d6abfa13862

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bfd1d7321fc8e77d0e0b5f5d6687a294b9bd6ce8b296a91c5903f410d5bb3803
MD5 17cf0e2f0ef029ecf9539bad2b154da4
BLAKE2b-256 77a0eb4b675ffd8075c5cea3d0ca82c9d7403af89717d418d060328778725ca0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 9cbf30ca1fb301f3572e19ce4fe5a9c3c872b6d873dea44d1a157038425430e5
MD5 f094625e42cde5d9e1536b90a7f068b1
BLAKE2b-256 39c0592b79c05cc375c7c88207335db42a70953de061c3749bbb5a26dcbaf929

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 16587aef03eb47c46e66d6fa57f856021ad5a6b04e1f75398fbf5fc372ab2f23
MD5 93e592153356ad716ebe7129f1789e99
BLAKE2b-256 fea58871f44a69b13e6d2ece25988af9bf73cd9fefa949447df2ea3e9faef792

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd9f3e80ccb46329f04806f37c73e1b124f286beb0876c327b181f4d351c1a1d
MD5 e31b4cbe34adadf641b61a8888ef532e
BLAKE2b-256 c591deb28de1053c7934360c623ac32d59febfe98f374bdd2ce817713cb7a7d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb5f43b12de2fdaa70ca1c196b268f4261a4c46f5cb4ec1ce73af23cb3954975
MD5 3cd126636da497fa011d510e57231e1d
BLAKE2b-256 7ef7570225ff664f70cfe323be58d491de7e0c642c0781a326ffea73937ad97d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 9f5794943f22c898fc28cd93f01094c05e25ccf2fd32d88d08deae7b45859233
MD5 76d90d805d80239c2268e6209546418a
BLAKE2b-256 c6ee90604c3913f2690cc671dd23e2b56e5be95a17588c43d5c8cd41c573244e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 93e039227a547f227866487120e3a2022245fd0c251569f99c1546929f7fe368
MD5 75906da921fdb7d6599f093fb139d29c
BLAKE2b-256 933671f309c0c93022faadce1b963e9c01808fda124c5a1f2194cc7638d101a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 efe71cdade23811d14310c127a2c1e7793ed9f9369301ddcb63c2691141c04f4
MD5 e5583e11edffef40eae7438069ee536f
BLAKE2b-256 255b186008d4d3090319a88c95d0bf9b54dfbb3b12a3fd592e1fdd0d4cc4c2b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6ee1629936856c1c89a6171f8dae111bc4d8cbdf9e26a4cbb1ab797ac20e5aa
MD5 2041ba5fe0bb20a9c066e9b8e30ece95
BLAKE2b-256 b566d3937612d94c36620d7f069f0bf4d4146dcfb7ef4ab227cdc66fdd0bdba8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4e22ad5f974f9b82abd46945ebc1ae34ffe26241faeb7fb07bb1d17dc79fc33
MD5 ca8cba08885b65105d174dbc1f799d03
BLAKE2b-256 7252890ca00566cc7fc0333df99ff149d1781e1ee8c7c9f610c4474d46a12087

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db5f9cf1f0b6e6a3abb8c748f6328ad25ca541ddb5f0af9cb617955c8d2337bc
MD5 ebf831172f9e5f03b6594c645e0d2789
BLAKE2b-256 4a245a4951394b2ebbafa42dd1a5241509375cf50ca632a3d128e82db6caabeb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 13cedd63b67b44854f860da25b4e9f6119ac94bd6eb901f8e0a44ce843eb7e1e
MD5 7790b852fcb9fc5d430939c6a72892f6
BLAKE2b-256 ecf9102390e9227a4d914c9371ed6f3243c3db3a762304ccafc5fb9554529d1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ba6c0227f2a0c0c9b9021ee6d80e044cf82095ca09f01aff7d3eb978149f85b
MD5 5e25c0a641447e946f5553a220c6cb2e
BLAKE2b-256 c2e3092895ee6736cc024960e41ba95a36b209bf2732e4b4d73ae4bf67d20323

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c6b60a8015420833479424d8ebab72da4a88e536b5f832f8b0ba1c3e2bcaa6c
MD5 e3370101096d0099374a2605b69b47bc
BLAKE2b-256 cfc481174bfc6556bab8c12ec72269ebeeb460eaec2ee0319e12d2f7cbb13f5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 202b1da4891ba3af186bcd2aed2bed3e7795bb9d83c8098162c2151a43806a9c
MD5 ddada05edd6af17152cfda0af0bd5fa3
BLAKE2b-256 25c7914da8810a1501f1df073bd9d2e53cc9c1b8b16f918dbce29a3fbe0b91b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 18217c1c727d48fced6dbb2372fdd7bd1fe17795cbd3d5eade42af984f76eabb
MD5 748d24abee291894821e0e202dbfe9e3
BLAKE2b-256 811719c2749b64640d069b59bfa44a9898762d3ec3f1dd7e831807011d56a144

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 eb30be4062f9a5fbb157dc9ec832252bf8b6d8e95aab5dd81c83c00221734e24
MD5 12ce2d35ffc6ea1c2950e9257794f460
BLAKE2b-256 e78ea27f37f5a7c20595a4122afce9e86ed2fc9d4404cb8f744b2d97a0d9bfa3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b6291c3800e1006785ba8b6086f5a5e4e160ac452682caae6b5f030645a93c31
MD5 06dc14ff877ccbbd79cfa1c66a87ae5a
BLAKE2b-256 60c205aa49a34becabe61764f899faf4fbd9ec6979c9b488bba934bae29d22a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 90500dda809b77e25a4e917c7479081404735eb71c418d440210bb56b43d637b
MD5 1bc12a89f4a7ecb8ea9ac7f3f849b56c
BLAKE2b-256 aaf8e068abc137224b5a3d92313874f7db4358c24fb3db8c442ec2a6fe82a75c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff490f82e6e4ed7da5f04d2e8c55fdf25c28de0e7c8a99b82a7a35c56ce905e6
MD5 ef689f935c7e8c94230e8426122e66b2
BLAKE2b-256 a0e57761eb3638c35616ebb6af3942e41f5eb686022933fd214c826df378c490

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7895bb2d823966da8531f9e9454ac86e6f367e918a13188fbb61fab928b8c48f
MD5 b9dfb092af6c34bd357ccc49b56d65b7
BLAKE2b-256 75811f603fd95635744ef36677600c6db343b09cd1f36e7d9f691efe51277bc3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f319d6243aa729b64070767598c26ad2212a7ce8a3a03226e6bca62d9ca63ced
MD5 0bc434c37a8a71dad3fe039e4e9b9c02
BLAKE2b-256 4cf07fe7926bc2ce484c581606596c1278f376b22afed623eaea3060cb6ee8a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2b1cb1dfd678f3f927de4f8c2a0eb3695b3e774ce7a002ddc3fd237a4a129a97
MD5 f2068ea94fdccb515f4ee2ac707e26b0
BLAKE2b-256 077dfdd8086deb3d2287a21350a67eb1f001ef13a178611393fc1e86e8d8d890

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e9abd58eb5f7f99cfd73d7dccd4f3c71429e5613402d5f87c48223f11984dad
MD5 204b04c583466bdb8b1aaf09376ef2ef
BLAKE2b-256 81507fcd88debddecd9c0c58e83efeaa12c30d6fe08c09154b8cee32c1a0d838

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bec796dd69cce462754885fdb1afd4a0e2b313f1320ea011edc679c27ae99944
MD5 4ad9d0776962a40f5e5b29111906af71
BLAKE2b-256 fbedf26f0c18a480ed9facb1c2bf5473692cd03887357cd0d9da495b079b066f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a2f68454e726af5079ff51e6c0911fa1f6d6de98e51f861581edb0f863a60a28
MD5 0fa3cd056ef02a965786186607d8c57c
BLAKE2b-256 99fec3a8427c182755172c2c1f6e90a4cfdfd38783c4e1d100cdd98a97b7bed8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b8d3e52786977ab7ae8ddf3fd184149d4efbbe0f1a36f9ba8dd69e4dd277d353
MD5 e5323f16e951fb535440aaaf9747f8ed
BLAKE2b-256 0666087c582311cd1ee86fb718f9c3520900b54f0cf974e9d34ea78af7ef17fe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f4175e8e526bd2604ee192a314fcaad18e1c6011217e021eeab2f2b819aefb6
MD5 793e07e5994495f16784121e369dd858
BLAKE2b-256 2498b5cb74654486ecc0d44b608b0f8fc99f211ac19dfffd56c6f5f570909884

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e90682bdd55f3e465399d1b18415d7d749328d67eac5200cfbe995c9e8ba9dc
MD5 ab9967594b581acd284004d7f5587b66
BLAKE2b-256 2f42387842be55ca56cdb83c2b8fc74801838053659d64ac4b9882f5d8acd991

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82b92dd0415e54030a63a1a1a81afcd26656d1f7921743b649dc999581ce4ebf
MD5 145896a162ffc09e342006342c7e1a13
BLAKE2b-256 b4d505c03fe2186658f80f89131acf8543da3190912c741ecf5d0ea3ff5c8dac

See more details on using hashes here.

Provenance

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

This release

2.1.9 This release

36 files

2.1.8

36 files

2.1.7

36 files

2.1.6

36 files

2.1.5

36 files

2.1.4

36 files

2.1.3

36 files

2.1.2

36 files

2.1.1

36 files

2.1.0

36 files

2.0.6

36 files

2.0.5

36 files

2.0.4

36 files

2.0.3

36 files

2.0.2

36 files

2.0.1

36 files

2.0.0

36 files

1.4.11

36 files

1.4.10

36 files

1.4.9

36 files

1.4.8

36 files

1.4.7

36 files

1.4.6

36 files

1.4.5

36 files

1.4.4

36 files

1.4.3

36 files

1.4.2

36 files

1.4.1

36 files

1.4.0

36 files

1.3.10

36 files

1.3.9

36 files

1.3.8

36 files

1.3.7

36 files

1.3.6

36 files

1.3.5

36 files

1.3.4

36 files

1.3.3

36 files

1.3.2

36 files

1.3.1

36 files

1.3.0

36 files

1.2.10

36 files

1.2.9

36 files

1.2.8

36 files

1.2.7

36 files

1.2.6

36 files

1.2.5

36 files

1.2.4

36 files

1.2.3

36 files

1.2.2

36 files

1.2.1

36 files

1.2.0

36 files

1.1.0

36 files

1.0.12

36 files

1.0.11.1

36 files

1.0.11

36 files

1.0.10

36 files

1.0.9

36 files

1.0.8

36 files

1.0.7.1

36 files

1.0.7

36 files

1.0.6

36 files

1.0.5

36 files

1.0.4

36 files

1.0.3

36 files

1.0.2

36 files

1.0.1

26 files

1.0.0

26 files

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