# arraylias
[![License](https://img.shields.io/github/license/Qiskit/arraylias.svg?style=popout-square)](https://opensource.org/licenses/Apache-2.0)
**This repo is still in the early stages of development, there will be breaking API changes**
Arraylias is an open-source Python library providing single-dispatching tools centred around the
construction of an aliased module. Aliased modules are built by initially registering "libraries"
consisting of a collection of types, then registering different versions of a given function in the
aliased module for each underlying type library. When using the aliased module, function calls are
automatically dispatched to version of the function for the correct library based on the type of the
first argument.
Arraylias contains default pre-built aliased versions of both
[NumPy](https://github.com/numpy/numpy) and [Scipy](https://github.com/scipy/scipy), with additional
registration of the [JAX](https://github.com/google/jax) and
[Tensorflow](https://github.com/tensorflow) array libraries. This enables writing
[NumPy](https://github.com/numpy/numpy) and [Scipy](https://github.com/scipy/scipy) like code that
will execute on [NumPy](https://github.com/numpy/numpy),
[JAX](https://github.com/google/jax), and [Tensorflow](https://github.com/tensorflow) array objects
as if it had been written in the respective native libraries. If necessary, these default aliases
can be further extended to fit the needs of the application.
Reference documentation may be found [here](https://qiskit-extensions.github.io/arraylias/), including
[tutorials](https://qiskit-extensions.github.io/arraylias/tutorials/index.html),
[user guide](https://qiskit-extensions.github.io/arraylias/userguide/index.html), and
[API reference](https://qiskit-extensions.github.io/arraylias/apidocs/index.html).
## Installation
Arraylias is installed by using `pip`:
```
pip install arraylias
```
## Contribution Guidelines
If you'd like to contribute to Arraylias, please take a look at our
[contribution guidelines](CONTRIBUTING.md). This project adheres to Qiskit's
[code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
We use [GitHub issues](https://github.com/Qiskit-Extensions/arraylias/issues) for tracking
requests and bugs. For questions that are more suited for a forum we use the Qiskit tag in the
[Stack Exchange](https://quantumcomputing.stackexchange.com/questions/tagged/qiskit).
## Authors and Citation
## License
[Apache License 2.0](LICENSE.txt)
Raw data
{
"_id": null,
"home_page": "https://github.com/Qiskit/arraylias",
"name": "arraylias",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "array dispatcher qiskit numpy jax tensorflow",
"author": "Christopher J. Wood",
"author_email": "cjwood@cjwood.com",
"download_url": "https://files.pythonhosted.org/packages/f5/7e/2b6290e0e191770cdaf225d326c12b677f0e287b07371e3c5b59cf4e2b35/arraylias-0.1.1.tar.gz",
"platform": null,
"description": "# arraylias\n\n[![License](https://img.shields.io/github/license/Qiskit/arraylias.svg?style=popout-square)](https://opensource.org/licenses/Apache-2.0)\n\n**This repo is still in the early stages of development, there will be breaking API changes**\n\nArraylias is an open-source Python library providing single-dispatching tools centred around the\nconstruction of an aliased module. Aliased modules are built by initially registering \"libraries\"\nconsisting of a collection of types, then registering different versions of a given function in the\naliased module for each underlying type library. When using the aliased module, function calls are\nautomatically dispatched to version of the function for the correct library based on the type of the\nfirst argument.\n\nArraylias contains default pre-built aliased versions of both\n[NumPy](https://github.com/numpy/numpy) and [Scipy](https://github.com/scipy/scipy), with additional\nregistration of the [JAX](https://github.com/google/jax) and\n[Tensorflow](https://github.com/tensorflow) array libraries. This enables writing\n[NumPy](https://github.com/numpy/numpy) and [Scipy](https://github.com/scipy/scipy) like code that\nwill execute on [NumPy](https://github.com/numpy/numpy),\n[JAX](https://github.com/google/jax), and [Tensorflow](https://github.com/tensorflow) array objects\nas if it had been written in the respective native libraries. If necessary, these default aliases\ncan be further extended to fit the needs of the application.\n\nReference documentation may be found [here](https://qiskit-extensions.github.io/arraylias/), including\n[tutorials](https://qiskit-extensions.github.io/arraylias/tutorials/index.html),\n[user guide](https://qiskit-extensions.github.io/arraylias/userguide/index.html), and\n[API reference](https://qiskit-extensions.github.io/arraylias/apidocs/index.html).\n\n## Installation\n\nArraylias is installed by using `pip`:\n\n```\npip install arraylias\n```\n\n## Contribution Guidelines\n\nIf you'd like to contribute to Arraylias, please take a look at our \n[contribution guidelines](CONTRIBUTING.md). This project adheres to Qiskit's \n[code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.\n\nWe use [GitHub issues](https://github.com/Qiskit-Extensions/arraylias/issues) for tracking\nrequests and bugs. For questions that are more suited for a forum we use the Qiskit tag in the \n[Stack Exchange](https://quantumcomputing.stackexchange.com/questions/tagged/qiskit).\n\n## Authors and Citation\n\n## License\n\n[Apache License 2.0](LICENSE.txt)\n\n\n\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "A Python package for aliased function dispatching to multiple array libraries",
"version": "0.1.1",
"project_urls": {
"Bug Tracker": "https://github.com/Qiskit/arraylias/issues",
"Documentation": "https://qiskit-extensions.github.io/arraylias/",
"Homepage": "https://github.com/Qiskit/arraylias",
"Source Code": "https://github.com/Qiskit/arraylias"
},
"split_keywords": [
"array",
"dispatcher",
"qiskit",
"numpy",
"jax",
"tensorflow"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5baf8e0078fb351a37726665753fe23523cf07ec6a14520380cee73259cae3a4",
"md5": "b3a27f1e5c4ef341357b0a0865edbe7e",
"sha256": "890ef262cd65e03dbca3bd655dac8236f40613ead7b5b4be7f519015142f8482"
},
"downloads": -1,
"filename": "arraylias-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b3a27f1e5c4ef341357b0a0865edbe7e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 21072,
"upload_time": "2024-02-20T19:00:06",
"upload_time_iso_8601": "2024-02-20T19:00:06.772828Z",
"url": "https://files.pythonhosted.org/packages/5b/af/8e0078fb351a37726665753fe23523cf07ec6a14520380cee73259cae3a4/arraylias-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f57e2b6290e0e191770cdaf225d326c12b677f0e287b07371e3c5b59cf4e2b35",
"md5": "9d82a4de1f4504c61d419b9238cd0943",
"sha256": "80678a00a6a716e63379efdad54b9ea6454885021189d6241facd7f3991d5200"
},
"downloads": -1,
"filename": "arraylias-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "9d82a4de1f4504c61d419b9238cd0943",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 16746,
"upload_time": "2024-02-20T19:00:09",
"upload_time_iso_8601": "2024-02-20T19:00:09.863118Z",
"url": "https://files.pythonhosted.org/packages/f5/7e/2b6290e0e191770cdaf225d326c12b677f0e287b07371e3c5b59cf4e2b35/arraylias-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-20 19:00:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Qiskit",
"github_project": "arraylias",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "arraylias"
}