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.11.tar.gz (47.0 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.11-cp314-cp314t-win_amd64.whl (298.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

private_attribute_cpp-2.1.11-cp314-cp314t-win32.whl (274.6 kB view details)

Uploaded CPython 3.14tWindows x86

private_attribute_cpp-2.1.11-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.11-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.7 kB view details)

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

private_attribute_cpp-2.1.11-cp314-cp314t-macosx_11_0_arm64.whl (77.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp314-cp314-win_amd64.whl (297.1 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

private_attribute_cpp-2.1.11-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.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (101.0 kB view details)

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

private_attribute_cpp-2.1.11-cp314-cp314-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp313-cp313t-win_amd64.whl (102.6 kB view details)

Uploaded CPython 3.13tWindows x86-64

private_attribute_cpp-2.1.11-cp313-cp313t-win32.whl (77.7 kB view details)

Uploaded CPython 3.13tWindows x86

private_attribute_cpp-2.1.11-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.11-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (99.7 kB view details)

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

private_attribute_cpp-2.1.11-cp313-cp313t-macosx_11_0_arm64.whl (77.9 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp313-cp313-win_amd64.whl (287.7 kB view details)

Uploaded CPython 3.13Windows x86-64

private_attribute_cpp-2.1.11-cp313-cp313-win32.whl (266.2 kB view details)

Uploaded CPython 3.13Windows x86

private_attribute_cpp-2.1.11-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.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (101.0 kB view details)

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

private_attribute_cpp-2.1.11-cp313-cp313-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp312-cp312-win_amd64.whl (287.8 kB view details)

Uploaded CPython 3.12Windows x86-64

private_attribute_cpp-2.1.11-cp312-cp312-win32.whl (266.2 kB view details)

Uploaded CPython 3.12Windows x86

private_attribute_cpp-2.1.11-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.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (101.1 kB view details)

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

private_attribute_cpp-2.1.11-cp312-cp312-macosx_11_0_arm64.whl (76.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp311-cp311-win_amd64.whl (287.3 kB view details)

Uploaded CPython 3.11Windows x86-64

private_attribute_cpp-2.1.11-cp311-cp311-win32.whl (265.9 kB view details)

Uploaded CPython 3.11Windows x86

private_attribute_cpp-2.1.11-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.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.6 kB view details)

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

private_attribute_cpp-2.1.11-cp311-cp311-macosx_11_0_arm64.whl (75.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

private_attribute_cpp-2.1.11-cp310-cp310-win_amd64.whl (287.4 kB view details)

Uploaded CPython 3.10Windows x86-64

private_attribute_cpp-2.1.11-cp310-cp310-win32.whl (265.8 kB view details)

Uploaded CPython 3.10Windows x86

private_attribute_cpp-2.1.11-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.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.6 kB view details)

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

private_attribute_cpp-2.1.11-cp310-cp310-macosx_11_0_arm64.whl (75.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: private_attribute_cpp-2.1.11.tar.gz
  • Upload date:
  • Size: 47.0 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.11.tar.gz
Algorithm Hash digest
SHA256 db4f72f748992475f5f0f844f201568def6bddac65ee50fc48503a1e8f1f9bc4
MD5 2997c3e7678ea89fa0083fd9758ff964
BLAKE2b-256 e13681d637b49a2ca21bc5aa5dbeaff59783f7087b808257b68c4a064d8b5756

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 d2d98ee777b01cbc23440c53af091f8297e7ad481a61fa9b231678ef1ec032e0
MD5 a903bc410aba68f0913371fcccd64945
BLAKE2b-256 a181fadbdcfcbee39b26ddbf5db94ef3b5428d7049bdad1f8f3286d878e6cd74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 06bbb8c6108c66958f9a0b65962216e002a675599e5c045630ce7bcebf15a693
MD5 674afc5c0a057fe2fe0dee503cb402b7
BLAKE2b-256 fd282166097d1e6b6a1cef5954afd87498cf1feb89cc1033835e61212a4b4134

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da8ca65585b937a477b7531022f8bdc40ce39ef4524270fbfa0cde7da881e1d6
MD5 9d6edcfb275dda99dc5286670428b9c4
BLAKE2b-256 10eb857070bb00ad999e17926ba39ce6a9fd623fb12507589416eed2c398eeb8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d614f3c719f5bf011542aa4ffad902f816e5baaa1b6f516806697e116abc0c9
MD5 041b8028fd6ee43f755bdf2b61fe63fa
BLAKE2b-256 05409b26b7ceade6c98f87b6c20f5be6d1b468da26f175e09cf070ec099570eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4cc737651da8ee3d423d6c0cfbaf80e24b10cc3e335ae5f9ee7cffc68c1c61b
MD5 47a9e7ee27065cc63c8b9e19398857cb
BLAKE2b-256 ce96fcee639ef9409c5adb16d27fc8f2e012620a13608f1c12fae5ed2995af3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c5734c5b9004ce5fa3df0cd95c37ca1f2595cff62d56b6e2021994257f113adc
MD5 689ad6549fe02bbc77d9a01cd05b91d9
BLAKE2b-256 22fab4c9d348af85e438be29bca4e2103c0b6c64b64f0eaec340cf1aca59c687

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 02b654127d1f2568dcf49988b5adc252f43d8a947d9a3ebd20a438ebda5b3eaf
MD5 7be6c9ce8b0c32042ecb7ada71270f10
BLAKE2b-256 097feb7ddc851aba037890766d1dc5a00d2e04db5668f817c00a3fd1dbe91067

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7e7b028f1ab3fb57b9b8ab01eb817a7511e64f0be53bf6c374c434714472220
MD5 4b658e69382112cce2b3341f180fdd8d
BLAKE2b-256 1c710e942a6553ed91a6da61c9e24418e5136c802b27ac9891413460612b463a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 662d265d707c769807ef8f0f972a01efc403dfd4a45bff1784ca36ca4afcb2b3
MD5 68a8195785c1a0b0a390879c3c245e10
BLAKE2b-256 1114efd9a19a44eb2a7854aed93259a1f8dbafd02e42aab85cd99fa09eb8170d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83d003cfa9bca03ac091a01b60efa531451fde6817438054bcf55d37952da947
MD5 9c971b3df97503f108857c74170946b1
BLAKE2b-256 8278a11df58ffbe61f514c09ce176da132ae2c6e090f0db962f6f3f377a400f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 88d8e64b8b89a7435085e6764b558748d242b6520d089969ade2f2f97fc3a5b3
MD5 def464384b1f99f6afb98885cf922d9f
BLAKE2b-256 5a2ae4b02e35cbe63fa2c8dbbaa2dc3c4a6cc8307fb034b33888264c6303cd9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 413ced6130960e73ca882b59b0cfc934c59411052ae4ae359da8afadf1035ec1
MD5 ab322a00cc59e70126045af1643733b1
BLAKE2b-256 e95435d64e47055266e1db1df4cbe0c0acb69cbd3723776477e2c4fee8adbeaa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a741fe94e05bd8dbe6ea729f959afbbcb98f28be707187745002647edd9fb841
MD5 f999fe7678fdb7ee0fd6f3ac7000b1c1
BLAKE2b-256 9a986dfafbfe9a82bff6a907a237fe7dc1829fb4c723a064ccbb1a6e27e3ddcf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1835f29db767bd11686890b494ac0ea83220099121374e273d3f3c6f94066125
MD5 bbc5e7c789275a3cea6b3487a808338e
BLAKE2b-256 6aadaa133fc3e8ae0be52fb426c9e3e3b63f193d02205fa526409544a7522458

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6502cefec84def817b8aa89ac9b2a2e84de275844e2c76912c7bd87d2d0cf0d0
MD5 cbc7f1107ecf745f6c9e727656b3979e
BLAKE2b-256 a765256f6ef8d8cd22240c360e318f6cccf2cdb00c11e9423410e9455935be04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 de59fba6ed94bfa7d8335f489386818cbed7bee1744b907089a82470fe173b64
MD5 744a1b062ec9affd474397ea4772264d
BLAKE2b-256 a52bfd25adab5516d4e2d885f0274b6ace155008f0e69749317b7ec53e2d105f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 bc9bb4ca057f5082a4fff8d4c6cd576835cdb8b4889eeed5c28ada132fafefa5
MD5 002cdecf489f4d2d7553082ba205261b
BLAKE2b-256 5a9688084e3b2a4f5eb0e7d6d4dd2680afb30b1065494f6689541740989025b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 658f9d0ff98eb7ccf839f6a63fe8e6b6d6a44dceb7f6f38bc371cdf9db78b111
MD5 61b02e7e0bd9b19c481eb84af0eff339
BLAKE2b-256 4011a6731ad176166dbff51b6084b07bc09f48303efe161604e42421a7358731

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 abea1aac2875c606dac59f8a9ebbe6209e7c7e12996a357fe789558e026e98c8
MD5 62346c5d7b15e60011f48aa430885ef7
BLAKE2b-256 77e8724370d5df9fe758597ba93a7bdf542e1c3dbfe4a4b3abc12ffa06ca4b5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c3424ef84d224a326f3ee10f0d7c9b8775e5436eeca2be6aa04d9afab061ecd
MD5 16034ffafb8b8309fc3ab7f2d77a2bcd
BLAKE2b-256 64c7b20f6a5793708bec7df04c137b43a2d09d85b8e5cbf6f1e322c4040c62f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 58df86b7c07629a8ae9df9e715ceea41da5acb61e06ba7c07376d7aeec627138
MD5 a295ff1499ef0812ede42e9a5d325a4f
BLAKE2b-256 8cd528804907d0f2928e2aab68513d2364f3baa118cee407c261dcaf13417be7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 92d4f55a3ecb9cbeeb21cec1908ccc1941702fd4735d6e6d035d31161d877879
MD5 ff547e8a48a4c8a17a62b0bbe3736c51
BLAKE2b-256 131df1ff86cfbe18d130cc574e6b7581476fdc6c517d516daf21bc0d8c26fbd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9a555f3620d8d767fe1040bdffc5019da0b1ab86645b174917a608e058c391a9
MD5 5ca6e6efa02d205e89e6beca1ef4d306
BLAKE2b-256 b4604f840718b9871a81b49f5e239aa5e01e574a90dbbb5ff8a8e33e3f204373

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b2a5f00204541ef8ce505932c032a2ea7593ab1c125d364adc62218edd6165d
MD5 d6c8b2cf6dfa34f0ab9ff1b952cb9b32
BLAKE2b-256 77d1b755f7831e175371b595fce8681d8e974e2fb32cef1d2e1455282fb80e1a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 238ea435a1a7b7f0afa6046d89195cad314330d8e36fb44fa0a609612d8198e1
MD5 3fffab480aabfd64ab371f46a9104941
BLAKE2b-256 1c3a035b1c23c1f83972f37f25c06e000769cd4bebad1a8505c93e1c6d7373ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c0f319523debffbbeefe46cfeb6afff3a669249219b1da1d045e4c3db0785418
MD5 87f7f75aa6305c0d3dc6d1579e5f7e5c
BLAKE2b-256 2bf51c0e0dc262cc66448887e01eb66287b3960d6e3ba0b0ebd3abed666ea8f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 dddad3ad6a449f23478ee1595ab033446f2aa4eada1e040ce95b6ffb84ace8fc
MD5 a4153b519ba378f372e021f60b29af38
BLAKE2b-256 643a60dfdbdfdea5ff8fb87087082f33fd85af0eb1a1e2247ea3b290705f60dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f5ef05472b17b82524850c78aad4d2a67e22dbb9044dda3ac75e7b8abc1894c2
MD5 deb2d2237b0fe181a4055d7ed06ec004
BLAKE2b-256 4b55de46418d9a811a39bf552794e2e8673b5d27ad8e1080470d31a46edc59e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d90af52e9ecd84ada2de2d45ed3e77a289814826567c50644922ec71be81887a
MD5 bfd10bfbb97c1b996768979c8e3470bf
BLAKE2b-256 a54c552337210a22b4ebb1ce9d45fd9290cb83ee07a178349cd0a2e1589da58c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17311f78696793335030549a92e342d9ad69a87a5c444b88e6df236d0af73a5a
MD5 d5d9a9b2cd5ce47b7263d2b6f482480e
BLAKE2b-256 12d1cf1c4a2c1065045e82276cfaba51afc0abd576cea6e9559735446a5580a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 88b2a1f1e1d5595fa7c1563a50652a59ad9a1653bb6b5d0954c18cf76ca656c0
MD5 2225367d1fad58c8b2567ef92f46951c
BLAKE2b-256 d8701926b93b463da8236ad3d393ecbfa22f7b6686261850ea3cb88bff18b466

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f7e1e5c143e3bb01cdc6325089ae33d6c8ad6d93a627c2498575b082a876835f
MD5 59e749dbe8ec4bdcc5233793ff76cad7
BLAKE2b-256 5470fcc7aea4e4191dabc15b036194756d60ea74c79149d6376d6529654f5fb5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3264b153d405add9715df6aeda97d683305c3a38df01f48a353a88c7cdb3e0a
MD5 69958ae5e05fb2756216ab3df4ed3613
BLAKE2b-256 585e94209613fea66d4bc4541ee5ac3137a1523c52d9532e280394e6d2a3bf3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e7733476a2ba83754723e286aef0eeb01dc346d53e034ac8519be1dbf25dbe8
MD5 0db807681f0adcf2e75bf94726c354cb
BLAKE2b-256 43bb39559228f0cdd22ea22eaa8ec55571bfbf9472f06ae1300fa015980488c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for private_attribute_cpp-2.1.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a430a708b01194d62381b9511646238b92b29d59caad3f6579d1e407d079f54
MD5 d27233cd625d0e05e0f0bd18613c1546
BLAKE2b-256 294b66bf45b8cd882414fecde57cd2b4c5fe8db410df0ded150474e6fef1cc92

See more details on using hashes here.

Provenance

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

This release

2.1.11 This release

36 files

2.1.10

36 files

2.1.9

36 files

2.1.8

36 files

2.1.7

36 files

2.1.6

36 files

2.1.5

36 files

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