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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.12 macOS 10.9+ x86-64

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

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

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

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

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

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

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

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

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

File details

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

File metadata

  • Download URL: xoscar-0.4.0.tar.gz
  • Upload date:
  • Size: 127.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for xoscar-0.4.0.tar.gz
Algorithm Hash digest
SHA256 7957f13f944014e63d0f3983dc465d7c23ea78d66119648bed60cbb0802ec4c0
MD5 7b2aac76897b21c01bfbb23039fb2419
BLAKE2b-256 c222c9fb94497c1015a266ca39cd4682f861c70193878bfc44b7c74574aac947

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xoscar-0.4.0-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/5.1.1 CPython/3.9.20

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7cf77a6022ee9777a2dbb42f9dd1f99cb573590f0888df0d5bd1c05821b01808
MD5 dbe0bd6ea42b452faa9bce82da9889f0
BLAKE2b-256 35c608613a5956dcc7c28072126271e4259c1529873e3d04e68cf0fa469eda5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d756d3997e9046392e1fd3df39bcfdd1e8ec4d6f57fafb11947b7367c475a76
MD5 7357a3a965686e8c6b59031bb846dd66
BLAKE2b-256 e0840e8768ae9e561a506aa66580c5186bf3119687f40512ef6e591561a3d546

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fcd60325ff167d3ef6845fd33babf5bf3913462b562d341adac0f8fc3dcc681c
MD5 fbec39e93f49cafa587acfaec86fd785
BLAKE2b-256 f4e9e639d2bb733142d449b4979046b0ced62728e64f9ee425fd4458d4ef474f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6748c1caf10e51a3ad5e390b54d145115570679326212bfbd5f711d7e1bed554
MD5 c763fbf1b83831d90df04f9632929c4d
BLAKE2b-256 d568b34afd9ab2bcd5365a3225d3b6817909a3a37fa0136caedbf27c5b432a85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 af7fbf801916da19474405ce01f6dba28942578d6d0b7b6f74db220a11e8f6b8
MD5 7a92250feb01a4598d55cf3ec1ff8cae
BLAKE2b-256 5740b2567bb2e1b0d77289c0b9cd0c6432d4d90e86efe8a7bb7693d46abb4744

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2227ea5bcbc7c1c5df42898d520e31cbfa07c0ce4bf6467b62aaf867fdf0363b
MD5 e97399ffcec3c281db8272935d86de2a
BLAKE2b-256 b6427c28fb8d7d3e2c7ceb3d55ef911172cdf484a696c92bc770a6a238e8b116

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xoscar-0.4.0-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/5.1.1 CPython/3.9.20

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a6f80d23ff43c6414773ad68565cde75b4902955cb5b13b18aa84416a41d6d72
MD5 2b4421632522d3fe65762a97813e72c2
BLAKE2b-256 0cd429b1ae08a77e39e1fd6a1690cbacfc558ba4490b16a2438e552a29ab81dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02be71c731b52f1179937761560b167744e1e861db10016a547089385853d150
MD5 c6fb6114084a067ff4448f800d6b3087
BLAKE2b-256 36353943d15512ad2ea5d9ca49343a7f43357c28740a460f7763424a2e72de78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64557c135fc7b357fca6b340b34db8519aa993987c4e2ba09d84f6d803c36015
MD5 8189cd69741a2ba359467791cb76eb85
BLAKE2b-256 5cb665116a66716f269c17ab0ca258e0deafa29349a5c2b85d68c25c7aa922fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62d2125d458e41e67bd6b988b712cd7267023051daab9ed64505901c5d8c48ca
MD5 04633d6fdde6ac380c4900d1b709ac96
BLAKE2b-256 78ce2ceb533bf862305650386693dfc72e06710eb492993e9296b8c137a27376

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f701411c2de0d93359a3570b2bc7785d294e6f230d0789021cfac6b1efe81b66
MD5 98e4f5cf377cbbfdf564c0fc5fc8a42c
BLAKE2b-256 809359f5f958956914672fc2b6d784e953a415f71062df396b2db95914166bc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 14f3f7e8fa71ccd724ad725dbb1a1f1e243c09f9473cf75f3e664d773e6202c3
MD5 8311a9f2a402e6a66dc3ca69ab8209ec
BLAKE2b-256 d898a8e07e79d76edde1b601961a8be64634a7c2e58bf904dd69705964ae0a5f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xoscar-0.4.0-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/5.1.1 CPython/3.9.20

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 af7d8b781122c7c6b03c296a17b58fedf9c021d8f9c35d2b71043615ae46f0d1
MD5 cf91c653922bafd571ac9f167870ae45
BLAKE2b-256 78bb7540affc1a561520036740112a0bc54138934780677595b0da72c18f27b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8f42a78d357531b5a016ea6ebadf3b42ed8030dcd77b4c16e8e1804f41061f2
MD5 377b20eb405c69b81391df9102e1a6c7
BLAKE2b-256 3979f1a16a796325d5c6b009f6b4c074665bbdbbbd0004759a61eff695ce74fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dbbbf43bb63cf0cabdc05117cc40d00eafbde303ec48383d37ada69ab1718261
MD5 6a8c1df973eb804a570609653946ebc1
BLAKE2b-256 4f6343e96aa79ea85cd7162343167c0743add030de41b36399671dc15ab10bab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da7f7c0acb71da105bfa356937f9c221395b9233aed78fdf0bd6fa5a86f60dad
MD5 dbc4935b5146a7bf6a445112ba74d84d
BLAKE2b-256 d207682a4eb02b84e6cf5653c1fe509fda7006c798e9b71e8f9957ae9ca9fa28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e58326450370e0f672912f93f8c31a5747da739f2bcce2c3c34775a0026594b
MD5 4e4b1e62f7f1403afe112f7591b5d2ed
BLAKE2b-256 9de5525aa52e04a497cc4f870139f04fa187fd52dfeed9917903b2d0dfc7f828

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a4cf9b344cbcc812a1730f8bddff6874ba8d8a03052d0f678c6a3a01fa726fc2
MD5 384d8ba05ce3ceec95cf580ae069b80c
BLAKE2b-256 7200956e01854de02b0dfcc550dfc492b444fa464ba5d70b32c11c1134b58a7f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xoscar-0.4.0-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/5.1.1 CPython/3.9.20

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bca86cb2783a58b5bdf72f0417e64a9838d0aaa9a996b9b4ffa1c9881a0915e1
MD5 77d9752db4bf1337f244cd1028415154
BLAKE2b-256 aac05ebdd0d722017cced9311ae9d0fb899f4fd8b7f622a964d8e1754f7f2217

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8e044d606f3597a0e172b2cc15615592e88964cee9aa7b9fec63bb7c86f089a
MD5 72f703101bd742e342cb6667458c1d50
BLAKE2b-256 00e45d14c5cd2e7afbd708480e10cef8cd68d61798dd64aa72099955324341d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c989f1159156850afee8651aa12f5fcffd7f57454ce6739b1d7fd660ae3816d0
MD5 5c23a9eb9026523863686a3b0433dfa1
BLAKE2b-256 31eb2f605309eeae3c986fc6dc6f8bdcbb151104a67b6fce63f9f4fca2367561

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b8abec33d4d63da233ed3ec07b36629116e1bae1e990588b0fa274bb0a48c60
MD5 ac871f646c0216ea6f21b9645b416553
BLAKE2b-256 fa4576118819e9da754256e80e5efd326499b7d9e838d992a75cfc97469eac48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3740ee54c5bde7e7d32c0965818233785926ea15e5a67bff6565a2a3cb69084f
MD5 b5d27ed7277aafbb33a590572b136df1
BLAKE2b-256 f6b1697cedf07bc606588af19ab50f53d301850a3a3b369ebee91b1eb67fc949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xoscar-0.4.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a4bd5ce88a17b3a218831a87c451711caeb7e6205879ca85bdb21d3cac0291c9
MD5 ea9a5508b1f7f9ad36ed0983dced1f7d
BLAKE2b-256 257a67af9dfa4831a0db94521592c2075a68fd2afb2850a72c571aa6dcc48d6e

See more details on using hashes here.

Supported by

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