Skip to main content

Python actor framework for heterogeneous computing.

Project description


Python actor framework for heterogeneous computing.

PyPI Latest Release Coverage Build Status License

What is actor

Writing parallel and distributed programs is often challenging and requires a lot of time to deal with concurrency issues. Actor model provides a high-level, scalable and robust abstraction for building distributed applications. It provides several benefits:

  • Scalability: Actors easily scale across nodes. The asynchronous, non-blocking nature of actors allows them to handle huge volumes of concurrent tasks efficiently.
  • Concurrency: The actor model abstracts over concurrency, allowing developers to avoid raw threads and locks.
  • Modularity: An actor system decomposes naturally into a collection of actors that can be understood independently. Actor logic is encapsulated within the actor itself.

Why Xoscar

Xoscar implements the actor model in Python and provides user-friendly APIs that offer significant benefits for building applications on heterogeneous hardware:

  • Abstraction over low-level communication details: Xoscar handles all communication between actors transparently, whether on CPUs, GPUs, or across nodes. Developers focus on application logic rather than managing hardware resources and optimizing data transfer.
  • Flexible actor models: Xoscar supports both stateful and stateless actors. Stateful actors ensure thread safety for concurrent systems while stateless actors can handle massive volumes of concurrent messages. Developers choose the appropriate actor model for their needs.
  • Batch method: Xoscar provides a batch interface to significantly improve call efficiency when an actor interface is invoked a large number of times.
  • Advanced debugging support: Xoscar can detect potential issues like deadlocks, long-running calls, and performance bottlenecks that would otherwise be nearly impossible to troubleshoot in a heterogeneous environment.
  • Automated recovery: If an actor fails for any reason, Xoscar will automatically restart it if you want. It can monitor actors and restart them upon failure, enabling fault-tolerant systems.

Overview

architecture.png Xoscar allows you to create multiple actor pools on each worker node, typically binding an actor pool to a CPU core or a GPU card. Xoscar provides allocation policies so that whenever an actor is created, it will be instantiated in the appropriate pool based on the specified policy.

When actors communicate, Xoscar will choose the optimal communication mechanism based on which pools the actors belong to. This allows Xoscar to optimize communication in heterogeneous environments with multiple processing units and accelerators.

Where to get it

PyPI

Binary installers for the latest released version are available at the Python Package Index (PyPI).

# PyPI
pip install xoscar

Build from source

The source code is currently hosted on GitHub at: https://github.com/xorbitsai/xoscar .

Building from source requires that you have cmake and gcc installed on your system.

  • cmake >= 3.11
  • gcc >= 8
# If you have never cloned xoscar before
git clone --recursive https://github.com/xorbitsai/xoscar.git
cd xoscar/python
pip install -e .

# If you have already cloned xoscar before
cd xoscar
git submodule init
git submodule update
cd python && pip install -e .

APIs

Here are basic APIs for Xoscar.

Define an actor

import xoscar as xo

# stateful actor, for stateless actor, inherit from xo.StatelessActor
class MyActor(xo.Actor):
    def __init__(self, *args, **kwargs):
        pass

    async def __post_create__(self):
        # called after created
        pass

    async def __pre_destroy__(self):
        # called before destroy
        pass

    def method_a(self, arg_1, arg_2, **kw_1):  # user-defined function
        pass

    async def method_b(self, arg_1, arg_2, **kw_1):  # user-defined async function
        pass

Create an actor

import xoscar as xo

actor_ref = await xo.create_actor(
    MyActor, 1, 2, a=1, b=2,
    address='<ip>:<port>', uid='UniqueActorName')

Get an actor reference

import xoscar as xo

actor_ref = await xo.actor_ref(address, actor_id)

Invoke a method

# send
await actor_ref.method_a.send(1, 2, a=1, b=2)
# equivalent to actor_ref.method_a.send
await actor_ref.method_a(1, 2, a=1, b=2)
# tell, it sends a message asynchronously and does not wait for a response.
await actor_ref.method_a.tell(1, 2, a=1, b=2)

Batch method

Xoscar provides a set of APIs to write batch methods. You can simply add a @extensible decorator to your actor method and create a batch version. All calls wrapped in a batch will be sent together, reducing possible RPC cost.

Define a batch method

import xoscar as xo

class ExampleActor(xo.Actor):
    @xo.extensible
    async def batch_method(self, a, b=None):
        pass

Xoscar also supports creating a batch version of the method:

class ExampleActor(xo.Actor):
    @xo.extensible
    async def batch_method(self, a, b=None):
        raise NotImplementedError  # this will redirect all requests to the batch version

    @batch_method.batch
    async def batch_method(self, args_list, kwargs_list):
        results = []
        for args, kwargs in zip(args_list, kwargs_list):
            a, b = self.batch_method.bind(*args, **kwargs)
            # process the request
            results.append(result)
        return results  # return a list of results

In a batch method, users can define how to more efficiently process a batch of requests.

Invoke a batch method

Calling batch methods is easy. You can use <method_name>.delay to make a batched call and use <method_name>.batch to send them:

ref = await xo.actor_ref(uid='ExampleActor', address='127.0.0.1:13425')
results = await ref.batch_method.batch(
    ref.batch_method.delay(10, b=20),
    ref.batch_method.delay(20),
)

License

Apache 2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xoscar-0.4.5.tar.gz (128.2 kB view details)

Uploaded Source

Built Distributions

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

xoscar-0.4.5-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

xoscar-0.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

xoscar-0.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

xoscar-0.4.5-cp312-cp312-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

xoscar-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

xoscar-0.4.5-cp312-cp312-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

xoscar-0.4.5-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

xoscar-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

xoscar-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

xoscar-0.4.5-cp311-cp311-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

xoscar-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

xoscar-0.4.5-cp311-cp311-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

xoscar-0.4.5-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

xoscar-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

xoscar-0.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

xoscar-0.4.5-cp310-cp310-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

xoscar-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

xoscar-0.4.5-cp310-cp310-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

xoscar-0.4.5-cp39-cp39-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9Windows x86-64

xoscar-0.4.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

xoscar-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

xoscar-0.4.5-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

xoscar-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

xoscar-0.4.5-cp39-cp39-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file xoscar-0.4.5.tar.gz.

File metadata

  • Download URL: xoscar-0.4.5.tar.gz
  • Upload date:
  • Size: 128.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for xoscar-0.4.5.tar.gz
Algorithm Hash digest
SHA256 6621d46157e24745c827624e7c5038e320dfcbc86f5d6d7755dba5f0bc78522d
MD5 2b21270f19390bdb551ed2b385b951df
BLAKE2b-256 d9e3d57f7def4519e0ceac74a87d4bd597e8e5737a869fe92eb29c3f0e875c74

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: xoscar-0.4.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 68ac0dcc45dfb2cacdb27fe29be28602430391b6fd132a0cc74a246484a3a203
MD5 ccacb3c3d7ad329a2911cea718922317
BLAKE2b-256 05987148a68f3183c5b303f17ab9132063a6664a637fd28d0dab622399cd1a6d

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b274bd48a4cde4d5e060d4dd323bb935b5c47fdefb092407e8b4392b73966e5
MD5 c0b445110962722cc3aa1d36a3ae9aa5
BLAKE2b-256 1cd371315e53413d3ea380bac3a678ab2e2fe9f002a876b359dfc005fe1ce40a

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e21aa69aa76e2bdb104a1fc0529ac3d6d7d0ae7e74b20084f90d902c42ac05f6
MD5 0428eeb1da3149f914eb2d51be447915
BLAKE2b-256 041a7c226f14a78060e0d1fb58dea7ea4993768abe4744962fdb583478fcfffc

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5afd38590236b5f7e50566ad80da1966104d10b8f767f9e36fa593365254bf09
MD5 8aca3774ae683552e154b4b5a167a3f9
BLAKE2b-256 5ff068c10d9d163c8f22ebf1639e3a1afea97c1f9d3873b0f18741266b5995e0

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 586b2324feb706044c39975ae0d6987f2f56d8fac4224d76efb984c73894c897
MD5 2966d7d1fcd6e66d9466aa2db36f6441
BLAKE2b-256 efd5ba61d03d4d2a98735dc1d4e8ae905c0ba4adc3de4140dfa1b7d4e36c4f61

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b75886e0dd06d2d49cfc8ebf34877fc7dac891dcdfa2733cc300683581cd6ccb
MD5 ed5efbbae182ac33ce6202cbca80c9c8
BLAKE2b-256 57b3983937ff2d0ffda7ca735b843bf5e0eafbbf9e5dcc7a322e3cc0c121f980

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xoscar-0.4.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e6c1b90de6e3517dca080edae7bb6d2b89a42985cb7967ada1104dab7a40791a
MD5 d5f9f1db7f6f9eee3c8182916aaaa110
BLAKE2b-256 f8a25195f43948a0ac26c6964f210e47231218624a1332c27f05c5205d32103d

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae96ce2d4d289736d438cec03f279a7bd23c522e77ba03647dfec9893ca2fc92
MD5 8909a999664a81ac318f083987606687
BLAKE2b-256 68e4c5dbb563bee8fa11847f86edafb5f49de3751fefe0f2dafee4fc12d46b30

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 34ed778fa2c553fc712f86f5f61ef748e100d066012c235eb019f2922f26e080
MD5 5f748417e05a0d3714bacc56773091cb
BLAKE2b-256 e2414d07132720732ff19a2b35d06800273efa4b58d29e7c94c282e1f59125f5

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 296721355671ca161990f59189357938db28e2d89f0c4083637d3e74c097adaa
MD5 ae7e9a580e4cf166e2841d0f52519118
BLAKE2b-256 e16c6de8dac0584c28367c49d30c7e4c55e9ca3f416753ec19101483a7397e6a

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a2e3d2f0b068440e30c90a8d5cf0b7419456279cef831986688f0efea3142175
MD5 2048aace7394b2a72f333a1fafc0769e
BLAKE2b-256 122d3a7477f5c7c7c02b6717be89c3e99eb2a796550e81f9b0fbae44f3999fd9

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 28a6efaa1fad4724a7662fe7411b2b8d8eb80043b41cbf3e1def602c61a6ba92
MD5 2ebca99623fa0483ca00a0cfdf4f54f7
BLAKE2b-256 29d2c751d81c2776ca240e61dcb66ddc6bd949df633c100b76058197b6b09684

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xoscar-0.4.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f6273382951de74e4c46c6e8e384e96fabcc04dd251262532d6755c450cbfac6
MD5 59fc8b1247e64d7336730ebc2017f1b5
BLAKE2b-256 9a513a5dfb3dee52ea63fcda371e770eec0d18356e061ed44a7d5597504d5efb

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb6cc4fa9b596f973f71565cbf1a53ee30e68e3318dd974ad2ff70b363ca52f9
MD5 ac6e62b98c1fcd5a0344dc3011e5d31b
BLAKE2b-256 05a02879ec07f7cdcd973761dbe9d5ad784f56488c9039785bb24ecbf09ad4ab

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2449944682207fe0fa43f797c05d947f140b83633fc57a725c7ffbd8236bb40
MD5 75cb031812d1df71fc41038031ff1be8
BLAKE2b-256 44f20ab33208a8eeec560b2af39d19fe78f3732bb57d17cbd05140b88f737b41

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e08a844771d4b7aa692ded05553218b92c507f61b983085f4a132d7017f2f102
MD5 c816d37f2927c3817ae3ffd87867ed93
BLAKE2b-256 8e8e32d537dd4bcfaeed03281b06039c2d7ba270dc0f3ed19ea247bd8847aa8f

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ddb1653f088ea1e67a71b6573d5bdea4f36058cbd64ce71a4e547e72619b9fb7
MD5 b2351acc8b0eabf11dc57133f2ec24cf
BLAKE2b-256 d6480324178606b7056895566250c11fe1cccefb51590cb3b0003fc2c6eaecd6

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 315af1c47e8cc4ff3ee9190aea26399ec9a0f21bfe88f14575b934130b30447c
MD5 9f2eb860cdeac59ca6954f230c4569a7
BLAKE2b-256 db90f05a60ba08fa492bf8aae22e09e8daef3a36f564bf10848eef08084692d2

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: xoscar-0.4.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fafdeaa75d435fcf3ca55d8be33a896ce83de3cbd3dd53871d1c5a294184db40
MD5 30b283321c7a4ec60864f60560f13f68
BLAKE2b-256 b37134ba05643d38bb73c09aa35b4731cca8ec69200fc718f059b03b7e7a14ef

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe326f83c16550fd3f739ac995b117ff3d86e45132c0648462121cdb09420477
MD5 e71e6751514d490238b299da0ec0586a
BLAKE2b-256 170bb1bba68fd48cb448eb2cefcc36997568c2f8e2637bb08ccb73006cf3bee3

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d101e1369747f761bf9b5fbcbf5d1fde2dd83508e8b1e462ea584ab2e4b94b8b
MD5 50021d96a634b6a8f93d4aeb0d128c44
BLAKE2b-256 691771677073514723179246f8afc5cb32d621cd8bb7b4eda248e345479c9a49

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbe070f2fd5efaa7ca42ae3fd8a04a20711e58ae7880be8dd1d6d15370a7e523
MD5 03ea3d6ab42cf565911fd5aab7bab59e
BLAKE2b-256 54d6c888301f51d26e02ba461e17ad7f811258ec68d34c8b996fcbe3833d9cd3

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3ddd143856841a64d9232d4a9ccada155714dce64dfb6d7aa645082977edff62
MD5 7ef9aab3f16032818880c4bd7ca3e094
BLAKE2b-256 a1dd45cab55b5ee9811e5d37fcb5578b9e269e7518704f0c94385b5195e271f2

See more details on using hashes here.

File details

Details for the file xoscar-0.4.5-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xoscar-0.4.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c62261f78ffe33a05127066effad8c50eb42aa643c7583c1816c883a2c365a8a
MD5 16a1574c2e5732afd55e85d83ee5cd83
BLAKE2b-256 c4331c8532bfe4fdf04d2ff35f69ee182682c82e1eea2347e2b15b2414bde655

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page