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

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.7-cp314-cp314-win_amd64.whl (295.0 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.7-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.7-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.7-cp314-cp314-macosx_11_0_arm64.whl (93.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13tWindows x86-64

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

Uploaded CPython 3.13tWindows x86

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

Uploaded CPython 3.13tmacOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.7-cp312-cp312-win32.whl (264.8 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.7-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.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (92.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.7-cp310-cp310-win32.whl (264.4 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.7-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.7-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.7-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.7.tar.gz.

File metadata

  • Download URL: private_attribute_cpp-2.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 527d8724cfa00a9d8a68f15ce1d01d7d663d589a0694ebee5682d3f29a480f92
MD5 5eb336d55b51ac67157d1fe5690c4da6
BLAKE2b-256 ed0a44d825498ed375e6ff0aea2c0046a89107126eb1585ac0bb89a4f951630d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 09d277c758f275d3441e8cbabaa8026f5abffb8f17076a452e0839222e6066b9
MD5 fbeaaa58de90cd8f2a858f0ed5ab6214
BLAKE2b-256 7056e7d45c5853235a04b7197a7a999658b0e81423ad9825ca66d6568ef717c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 826dbecacda5a42d76cafce90b7debee78a0b45f8a7991cb06c7f84627da875b
MD5 d2fdab8aaaf7ce79bbf340febf624fc2
BLAKE2b-256 aab7c74d1bd8f46bbaa95997884e84ab36b00426934a16ccb450c6348d4bf01d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8cf2fc19b745ac8ca9a6a256e23f8735e4fc3e87738c88c30f3cc4913a3a0003
MD5 d84dfb77549c54867c6b4b15ff8983c1
BLAKE2b-256 6385aeef8e12a7923b2312bfe7ab33920afab3a74a0c4bf953c0eb18231d84d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a25f3785f22f5120ffe99168b11d1f173f90ff641d2df5c6d38190eec036970b
MD5 137f60b524619c7c8dbf681e2d0b8b3b
BLAKE2b-256 2d33f5735572e83ae53ac0b186ea5132041c9a46d6807ed37c09e05ba4f4bf0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e655ddb9c956bea5dfcc37bedbb09f43df8e5625d8d8622a7e5846e568498742
MD5 e5ff92c2b77509e82e8d54e382630ee0
BLAKE2b-256 81c787bdfb8c8b787aecc98a86e9624cff6af1ad00ac216bd34ee82959137915

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2aa27700ecb45d2a79bc47ea1f1d96987cebd511272d6837a8eedcaa93978d9e
MD5 e3fa50e9462c963b95de8a8a27d4bbc0
BLAKE2b-256 27affe7214193ffb75496401740065e0f527777ff6fb6943a9db7da4d00a37b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 dd52a05f6240d136af80679eef027d7d64fc200bebd5df0e5f78d58719878f8e
MD5 0ef76fec8f584e97fcad4b9cbd3a093f
BLAKE2b-256 06b3e459eedd7b39e9a86b9279b6c91a4034dcd964509d061ce67e883398ebbf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2a6123d01406ad6ef03dbd17d717bb56bd54b74cac17cb04ee101f1d95e23b1
MD5 967867a7bce81390208035b9bf8b8dac
BLAKE2b-256 f7715b49ec440415f251381521de605e80a831cf2e7f6594bc1bbd491bc21f30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0dd28321fe32cf32ddbadabd9994848e7fa5483c8ecc05296e865e5a84edbb4
MD5 15216a4f22f40cceb47429e2ae5bd6d3
BLAKE2b-256 dfa9f60646d89a40d86a40c033ca90f3d7ec56b43e9a0a18c77b307d6e253986

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50bef1ffe4e857f30e9eb9d57193c806ee4b57e08b5778e1c99d81d9ad21ab71
MD5 4686b07e09f09e01c6ba18ab6c258c54
BLAKE2b-256 c18e47a929faa43d09159a27aedbbdec5649408029ac1ebb69081eb56c2b788d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 9e87a2f9e691a74346bb327ee7ce4ca663eb2d1dab0c435311021c03929e1ab1
MD5 796157011d714a168b7d5c2f6f19740a
BLAKE2b-256 74173fd3fd8a39eb7c6e2383ebf2bb09c7d2d3dcb522af15fa31652ca72a9a56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 da06fa8e39cde3ad6de1a98bfd5ef6ef579e49d6ea92a4416acc24529c7caaef
MD5 2a2392db1ac3293219827b95ac874ac2
BLAKE2b-256 68bcc0b7004ebadcffc4477060763b3d049b1617a6141b216068aa49dfbd9e45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 77673e1d2877e2bc89e369f9f70fab6928146bdc0683928f8e99c33359acaf12
MD5 a197346de2caf6e2c6c709f87a59e0cb
BLAKE2b-256 29dc1708fb9631ce464027cbab45fc464ae842916919602c8e9aca4120922c15

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c9b80534fbb83f95ee5aeb0b4d6340ed3db28224e77443a1f19e7299d146d342
MD5 9975c7c7861f2c6ddc194129d8be78d1
BLAKE2b-256 5d84c3883f4087e0b7c6e266eba27c482191f8ca99b96157c5d88013ca4ba119

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6634134eb3f412d6eac4262248a868407596c92bdf681827e3c1c46378ef2d5
MD5 050a01ad6f968cb4e7b20b8956819094
BLAKE2b-256 6832c7951609df6a94ea83c5a540007a12d897d9247fa9facb0d77cb2a60a7ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6e853735066d128b100d44ae5c2b56494b2ab911ad34d15bc0f637820c2c70a7
MD5 2f2c93e85733f728effe2cb73c6ac564
BLAKE2b-256 51c049eff653ca3ab9e4cb1f0409b16b24697df680b50d7f7a2b8bbfef7532f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 a67853e6c2ddf1be9b45dab9ca403739372e98683f4656944f6a93c190b44853
MD5 6c3ee3af507b6743874bfac6fc8026a9
BLAKE2b-256 041215dfe3ad9f129f9baaa9f153e12f53b6aac6ea17b5f3b3141c9455a3dcfe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1268b6fd52d7a79ac388ab302c835d9237d6c1d84c17cfe4fbe98a8b42b7338e
MD5 35889e9d038b2e9f676ab24f618cc548
BLAKE2b-256 3368f25140543d735fb5a2bf40237c837ec06d8bf231f413656e84c4251351af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9242fb9c04d0f61f5f9f4b97cd297df9432bf6e134460baa1492957d3d0869b3
MD5 77e8c471e12fcf69d26c11fc1c5141d9
BLAKE2b-256 3772f6f626d83a2996e8b92855c507c20f8b11b7de73804e7a1dd913c3e507ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 066b2dfcbd8787c29d92c8a6fabe7a04399d810a4d174313b3d391b291f63440
MD5 bbba174a9901ca94b0c3cbd608919686
BLAKE2b-256 b0b73e3fc8f497c4eca5ed449155b23d02074007576acf0e7debe819bc699cd2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 569db77858cc9edd4ce44ccc7243d4c6bcdbc724d420298fca8eedde9c66ecfd
MD5 79fc97fe31831dd6b7f182853fa95aca
BLAKE2b-256 c85f82751c40927838d14821aca715db3a9a18b1b4b76e8e8d134ec70526ff30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 68a6cb895b13424cc0da2718e006102734b0f1a5aa4cbcf968e9313e21251b2b
MD5 c95442419c71300acc5b34e2666b3515
BLAKE2b-256 ab0d11a913819d7aa2d49fe60c329b187f60df28a6a82e566798e6309c22035e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9bc3786a7cdb0b0572906110b69ba7218f237648291cd8abc60f472bb69296f3
MD5 ad3b7a846a793c546665a32381eecd69
BLAKE2b-256 6620bf56ceb2621855462fd870b80dece46def50bcfa8f1f1fac12f2e91b3e31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b83367db72246e5f3e4449e8b6c2882034c458c3f5b36cd47cd1cc8f152c5f5f
MD5 2f2e9a922ecc04db8e7762a4d8f7015b
BLAKE2b-256 b242f1028ff9c5a5f242247574aee52fa28e84cf1beadd957d6f3c63486e21c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcb415d8e02e6a2bd5af4f63cbd33fcc33f75cf811f08488be4eaf22e9e8e0c8
MD5 31f4bf9ec2c45b5fd8c2fc11277e6179
BLAKE2b-256 0873393e4cb2cbef79cebe301502bf69073f1324b98007767edd744ec185c6ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d7f47e59371344289d5569abea63dd31a10f84c58e774bef2127991307bf6bcf
MD5 5a57710d05cdb2952794bca9a87b953f
BLAKE2b-256 81d0578334d1a94b8a8a9020a173936b43efebf1749f5bff80ed8d0a22bef534

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c915dd04acc4c4cb0663c2482ba9b7922e6fb1fd90e5cb460bfceba81f923d01
MD5 c9515397a8983fb7e93929d55b466a0f
BLAKE2b-256 6e14d0911b3276c36155e7050fae95aa2ddaa106eb9ada9a1f1cda5307fde776

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 02bc1c2a407963df65ebf1b41a1eb37922f52cc9aac04225c1f950d4fa529d72
MD5 78a260927fa70b10c700a785961fff5a
BLAKE2b-256 8ac07b54d0e8ac89bf63b86cebbc1fa52679f5d031991710db6cd95ca8b7e1a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6204292f9ec1f1961043ac69ff36e365c6d9539a9b7b3500164ead112056eeb2
MD5 7c1d73f595a6868fa0e43e4b2d6f99c5
BLAKE2b-256 924bb81b0f4affbb69a1cf40ebdb2ec7739fc9b45c210b9195c3ab3114cfd417

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06e7d843f4e6d7ea9754663a200601f869e818d780a9088c7b8c7679a2e074c1
MD5 ff0da5bfbadb0d6775c463b94f5f03b4
BLAKE2b-256 5897abd7da4fd88667765028ab373b67ca373783c9f392d7ca66cd809638c066

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 55e63d27b60e7feb9d71afb5471ffa6748a520380f7c0e11e6218f1a75ba180b
MD5 5371af81bcfd922f3f084deb6a025acb
BLAKE2b-256 07c497d0f5534e1f83248e6112b20c0e53f24b8b4e353bf4b4650ff8ad58dc14

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 84d0ff71def5e04a420a644cfc1661fd75c5e834eb838355614e91f231ac57cf
MD5 72f3ef086972b548f6a3fad88d747d65
BLAKE2b-256 de68ea5374c20c4dc1348c380cac4d650b6e99db6a94b061c0ca8bae6f5c5b3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 788fe09595fadc464f05dde2b9a9b8c4a336ce9fd05f7cbe1a8d2fa6ec76bc06
MD5 a39a5a4f2573749b208bdc15650e6898
BLAKE2b-256 df114f4d8f63ed62320d7f4997615b22c3f4cf22e88a3b04f3b666596535a6d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a96c30f8cb25a841caef008e4ca41c39c9f3adb0d6abfcfaec1df21c218da58
MD5 7fd83f609533ad763da374d3ea979a64
BLAKE2b-256 cc6dc6a54520e9d8a3516403a8344cb1283d846dbdf4c10458a511f83a9e5ce9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f2e92f9d885783b8a84b09ad0e2817f737a2b4bf2f324b1600a23d9dae5c9bb
MD5 5d8bd771abfb897b3e0c154f31037fab
BLAKE2b-256 e20f8d62d8be3bbd7da9c6aa8cf29019424116c062f681884d6efd7e07ba4ca3

See more details on using hashes here.

Provenance

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

This release

2.1.7 This release

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