[![image](https://img.shields.io/pypi/v/spector.svg)](https://pypi.org/project/spector/)
[![image](https://img.shields.io/pypi/pyversions/spector.svg)](https://python3statement.org)
[![image](https://pepy.tech/badge/spector)](https://pepy.tech/project/spector)
![image](https://img.shields.io/pypi/status/spector.svg)
[![build](https://github.com/coady/spector/actions/workflows/build.yml/badge.svg)](https://github.com/coady/spector/actions/workflows/build.yml)
[![image](https://codecov.io/gh/coady/spector/branch/main/graph/badge.svg)](https://codecov.io/gh/coady/spector/)
[![CodeQL](https://github.com/coady/spector/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/coady/spector/actions/workflows/github-code-scanning/codeql)
[![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/coady/spector)
[![image](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![image](https://mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
Sparse vectors optimized for memory and [NumPy](https://www.numpy.org) integrations.
`numpy` handles densely populated n-dimemsional arrays. `scipy.sparse` handles sparsely populated 2-dimensional arrays, i.e., matrices. What's missing from the ecosystem is sparsely populated 1-dimensional arrays, i.e., vectors.
NumPy | Python | Spector
----- | ------ | -------
1-dim bool `numpy.array` | `set[int]` | `spector.indices`
1-dim float `numpy.array` | `dict[int, float]` | `spector.vector`
`scipy.sparse.dok_matrix` | `dict[int, dict[int, float]]` | `spector.matrix`
Indices and vectors are implemented in [Cython](https://cython.org) as hash sets and maps. All native operations are optimized and release the [GIL](https://docs.python.org/3/glossary.html#term-global-interpreter-lock).
* conversion between sparse `numpy` arrays
* conversion between dense `numpy` arrays
* binary set operations
* binary math operations
* `map`, `filter`, and `reduce` operations with `numpy` universal functions
## Usage
### indices
A sparse boolean array with a set interface.
```python
>>> from spector import indices
>>> ind = indices([0, 2])
>>> ind
indices([2 0])
>>> 1 in ind
False
>>> ind.add(1)
True
>>> ind.todense()
array([ True, True, True])
>>> ind.fromdense(_)
indices([2 1 0])
```
### vector
A sparse float array with a mapping interface.
```python
>>> from spector import vector
>>> vec = vector({0: 1.0, 2: 2.0, 4: 1.0})
>>> vec
vector([4 2 0], [1. 2. 1.])
>>> vec[2] += 1.0
>>> vec[2]
3.0
>>> vec.todense()
array([1., 0., 3., 0., 1.])
>>> vector.fromdense(_)
vector([4 2 0], [1. 3. 1.])
>>> vec.sum()
5.0
>>> vec + vec
vector([0 2 4], [2. 6. 2.])
```
Vectors support math operations with scalars, and with vectors if the set method is unambiguous.
vector operation | set method | ufunc
---------------- | ---------- | -----
`+` | union | add
`*` | intersection | multiply
`-` | | subtract
`/` | | true_divide
`**` | | power
`\|` | union | max
`&` | intersection | min
`^` | symmetric_difference |
`difference` | difference |
### matrix
A mapping of keys to vectors.
```python
>>> from spector import matrix
>>> mat = matrix({0: {1: 2.0}})
>>> mat
matrix(<class 'spector.vector.vector'>, {0: vector([1], [2.])})
>>> mat.row, mat.col, mat.data
(array([0]), array([1]), array([2.]))
```
## Installation
```console
% pip install spector
```
## Tests
100% branch coverage.
```console
% pytest [--cov]
```
Raw data
{
"_id": null,
"home_page": null,
"name": "spector",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "sparse, array, vector, matrix, numpy, scipy",
"author": null,
"author_email": "Aric Coady <aric.coady@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/fc/2a/53c7168ddfaa152bc4f5799fd79777affe6c2de12f7753824f7d92f34b1a/spector-1.5.tar.gz",
"platform": null,
"description": "[![image](https://img.shields.io/pypi/v/spector.svg)](https://pypi.org/project/spector/)\n[![image](https://img.shields.io/pypi/pyversions/spector.svg)](https://python3statement.org)\n[![image](https://pepy.tech/badge/spector)](https://pepy.tech/project/spector)\n![image](https://img.shields.io/pypi/status/spector.svg)\n[![build](https://github.com/coady/spector/actions/workflows/build.yml/badge.svg)](https://github.com/coady/spector/actions/workflows/build.yml)\n[![image](https://codecov.io/gh/coady/spector/branch/main/graph/badge.svg)](https://codecov.io/gh/coady/spector/)\n[![CodeQL](https://github.com/coady/spector/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/coady/spector/actions/workflows/github-code-scanning/codeql)\n[![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/coady/spector)\n[![image](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![image](https://mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)\n\nSparse vectors optimized for memory and [NumPy](https://www.numpy.org) integrations.\n\n`numpy` handles densely populated n-dimemsional arrays. `scipy.sparse` handles sparsely populated 2-dimensional arrays, i.e., matrices. What's missing from the ecosystem is sparsely populated 1-dimensional arrays, i.e., vectors.\n\nNumPy | Python | Spector\n----- | ------ | -------\n1-dim bool `numpy.array` | `set[int]` | `spector.indices`\n1-dim float `numpy.array` | `dict[int, float]` | `spector.vector`\n`scipy.sparse.dok_matrix` | `dict[int, dict[int, float]]` | `spector.matrix`\n\nIndices and vectors are implemented in [Cython](https://cython.org) as hash sets and maps. All native operations are optimized and release the [GIL](https://docs.python.org/3/glossary.html#term-global-interpreter-lock).\n\n* conversion between sparse `numpy` arrays\n* conversion between dense `numpy` arrays\n* binary set operations\n* binary math operations\n* `map`, `filter`, and `reduce` operations with `numpy` universal functions\n\n## Usage\n### indices\nA sparse boolean array with a set interface.\n\n```python\n>>> from spector import indices\n>>> ind = indices([0, 2])\n>>> ind\nindices([2 0])\n>>> 1 in ind\nFalse\n>>> ind.add(1)\nTrue\n>>> ind.todense()\narray([ True, True, True])\n>>> ind.fromdense(_)\nindices([2 1 0])\n```\n\n### vector\nA sparse float array with a mapping interface.\n\n```python\n>>> from spector import vector\n>>> vec = vector({0: 1.0, 2: 2.0, 4: 1.0})\n>>> vec\nvector([4 2 0], [1. 2. 1.])\n>>> vec[2] += 1.0\n>>> vec[2]\n3.0\n>>> vec.todense()\narray([1., 0., 3., 0., 1.])\n>>> vector.fromdense(_)\nvector([4 2 0], [1. 3. 1.])\n>>> vec.sum()\n5.0\n>>> vec + vec\nvector([0 2 4], [2. 6. 2.])\n```\n\nVectors support math operations with scalars, and with vectors if the set method is unambiguous.\n\nvector operation | set method | ufunc\n---------------- | ---------- | -----\n`+` | union | add\n`*` | intersection | multiply\n`-` | | subtract\n`/` | | true_divide\n`**` | | power\n`\\|` | union | max\n`&` | intersection | min\n`^` | symmetric_difference |\n`difference` | difference |\n\n### matrix\nA mapping of keys to vectors.\n\n```python\n>>> from spector import matrix\n>>> mat = matrix({0: {1: 2.0}})\n>>> mat\nmatrix(<class 'spector.vector.vector'>, {0: vector([1], [2.])})\n>>> mat.row, mat.col, mat.data\n(array([0]), array([1]), array([2.]))\n```\n\n## Installation\n```console\n% pip install spector\n```\n\n## Tests\n100% branch coverage.\n\n```console\n% pytest [--cov]\n```\n",
"bugtrack_url": null,
"license": "Copyright 2022 Aric Coady Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ",
"summary": "Sparse vectors.",
"version": "1.5",
"project_urls": {
"Changelog": "https://github.com/coady/spector/blob/main/CHANGELOG.md",
"Documentation": "https://coady.github.io/spector",
"Homepage": "https://github.com/coady/spector",
"Issues": "https://github.com/coady/spector/issues"
},
"split_keywords": [
"sparse",
" array",
" vector",
" matrix",
" numpy",
" scipy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c83f96558f2815eeb5b11b77d1fb8bdfc4419e118a1bc70d26887925dfa92b2d",
"md5": "7d220d888829b0dafbcc7056af126fe5",
"sha256": "7540e13f2c0c4ddb12a5a5d235992b5fcc4b84f940bd2294982fb2bb90cec55a"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "7d220d888829b0dafbcc7056af126fe5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 428376,
"upload_time": "2024-06-16T18:16:13",
"upload_time_iso_8601": "2024-06-16T18:16:13.699228Z",
"url": "https://files.pythonhosted.org/packages/c8/3f/96558f2815eeb5b11b77d1fb8bdfc4419e118a1bc70d26887925dfa92b2d/spector-1.5-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6fa5bb39877deb4b1546cc705f09b5ed3f36eac37636abdd04e503702e9caa31",
"md5": "055d57bbbe5d38d2b759b643bc563181",
"sha256": "1d5ed3fd7d179c0441e19e0f0b1e2f0b7e2663228c59af0f21d96ecd0f880eae"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "055d57bbbe5d38d2b759b643bc563181",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 408953,
"upload_time": "2024-06-16T18:16:15",
"upload_time_iso_8601": "2024-06-16T18:16:15.625758Z",
"url": "https://files.pythonhosted.org/packages/6f/a5/bb39877deb4b1546cc705f09b5ed3f36eac37636abdd04e503702e9caa31/spector-1.5-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "863b6c3623dda08be696e1e278010c189e7a76cbcfe36ac5677ef77f5e1f35f1",
"md5": "81196912324bd8ce1337ce07af8a3b7e",
"sha256": "6ef8abfd07ae37496d73973aeeab54c31fbeb158d9fe5550f7901b66598124b2"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "81196912324bd8ce1337ce07af8a3b7e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1385427,
"upload_time": "2024-06-16T18:16:17",
"upload_time_iso_8601": "2024-06-16T18:16:17.453141Z",
"url": "https://files.pythonhosted.org/packages/86/3b/6c3623dda08be696e1e278010c189e7a76cbcfe36ac5677ef77f5e1f35f1/spector-1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0f49508417fb3fed54693c47fe916de6e3244e8ed65fe6df6c1bf7450992a388",
"md5": "7dc57d9cbe5f64e21cbdbef90d8cf8ae",
"sha256": "f904f4370f8a9c6807fc5bbd8774fdb48f658638572d8efff0bb0452cf272a19"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "7dc57d9cbe5f64e21cbdbef90d8cf8ae",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1361897,
"upload_time": "2024-06-16T18:16:18",
"upload_time_iso_8601": "2024-06-16T18:16:18.694140Z",
"url": "https://files.pythonhosted.org/packages/0f/49/508417fb3fed54693c47fe916de6e3244e8ed65fe6df6c1bf7450992a388/spector-1.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ddfacfdae281232643662830033c92c71787198a9bca2a601d48658af5bb245e",
"md5": "6622605dccf186a49e8d4ed82335f156",
"sha256": "8c43ab8596d6403d900dc7c9beb22d65b63c7889aead257f4cfc4fc992950789"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6622605dccf186a49e8d4ed82335f156",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1410336,
"upload_time": "2024-06-16T18:16:20",
"upload_time_iso_8601": "2024-06-16T18:16:20.504087Z",
"url": "https://files.pythonhosted.org/packages/dd/fa/cfdae281232643662830033c92c71787198a9bca2a601d48658af5bb245e/spector-1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e5a01e8008ad8902c440e5e9692fb8fff6587307807c28ed3210e5e552907f17",
"md5": "3accfe4c3815242cab47b5a2fea0434f",
"sha256": "27c2944a5a4ccd13ef819e42db51cbb618e17bb4e3d30a882487d4b3836cf4af"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "3accfe4c3815242cab47b5a2fea0434f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2304946,
"upload_time": "2024-06-16T18:16:22",
"upload_time_iso_8601": "2024-06-16T18:16:22.413094Z",
"url": "https://files.pythonhosted.org/packages/e5/a0/1e8008ad8902c440e5e9692fb8fff6587307807c28ed3210e5e552907f17/spector-1.5-cp310-cp310-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e83700892fdab5c2b779e449a013795c03b88bc641ab9995a842b4690483894",
"md5": "34fb28183c5504ae32438bc9cf2f6e79",
"sha256": "c742c72d773221fa6134b49944864145f681ae8cb151a89ccc51775ca373d1e8"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "34fb28183c5504ae32438bc9cf2f6e79",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2446369,
"upload_time": "2024-06-16T18:16:24",
"upload_time_iso_8601": "2024-06-16T18:16:24.570582Z",
"url": "https://files.pythonhosted.org/packages/7e/83/700892fdab5c2b779e449a013795c03b88bc641ab9995a842b4690483894/spector-1.5-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9434a2c12ebf5b27e711ac067a162da7c5be77e22d8dac5caef75f959dc505eb",
"md5": "0efe290197519091e674938b5d9586ab",
"sha256": "d0b25c41613c13d37641378a90e83cb19ed21c39d6b7d574fdd82fbfbf2d593c"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "0efe290197519091e674938b5d9586ab",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2382566,
"upload_time": "2024-06-16T18:16:26",
"upload_time_iso_8601": "2024-06-16T18:16:26.368587Z",
"url": "https://files.pythonhosted.org/packages/94/34/a2c12ebf5b27e711ac067a162da7c5be77e22d8dac5caef75f959dc505eb/spector-1.5-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "78ee9b629332eb739559732219e6943610a190892875a4e3aee8dced0e087cde",
"md5": "364a62f77932febbad3469b625990ad8",
"sha256": "c67086eff8bf0493359901f46f90cb48effede4969ac1a342c389d7c9badf82b"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "364a62f77932febbad3469b625990ad8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 371234,
"upload_time": "2024-06-16T18:16:27",
"upload_time_iso_8601": "2024-06-16T18:16:27.796408Z",
"url": "https://files.pythonhosted.org/packages/78/ee/9b629332eb739559732219e6943610a190892875a4e3aee8dced0e087cde/spector-1.5-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1685d2aa408aaf507523c416ab20f1dcdd03bf0ba193557cfc888e3097d1d424",
"md5": "a1b4f9a690baa9e48e8ec1a4fefc5fbf",
"sha256": "53cbecb35e1c731732332b6773491b5aaa140c351b2a1e2f8857c70ccbf41de0"
},
"downloads": -1,
"filename": "spector-1.5-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "a1b4f9a690baa9e48e8ec1a4fefc5fbf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 396359,
"upload_time": "2024-06-16T18:16:28",
"upload_time_iso_8601": "2024-06-16T18:16:28.887779Z",
"url": "https://files.pythonhosted.org/packages/16/85/d2aa408aaf507523c416ab20f1dcdd03bf0ba193557cfc888e3097d1d424/spector-1.5-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0625a6a3431f481348e36d49401224576de0c222b002149ba49472fa2a9cf977",
"md5": "e2307f7f6b6444622f4f40c2c1dc8cdd",
"sha256": "6edacb367d5c2669c54de08009b176e5b8111ce435dfacf3ffb656bea647efb1"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "e2307f7f6b6444622f4f40c2c1dc8cdd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 429466,
"upload_time": "2024-06-16T18:16:29",
"upload_time_iso_8601": "2024-06-16T18:16:29.889556Z",
"url": "https://files.pythonhosted.org/packages/06/25/a6a3431f481348e36d49401224576de0c222b002149ba49472fa2a9cf977/spector-1.5-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1652e2975055e8dc1311a870ba5607cd6319917b69743bbc34f4d2e268392f65",
"md5": "f8517d8e0f440cfa03381dc870146b17",
"sha256": "78f3a0d52dac7331815f022a1349ae37e14b376eb83465d387c1bd76ceefa95f"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f8517d8e0f440cfa03381dc870146b17",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 409346,
"upload_time": "2024-06-16T18:16:31",
"upload_time_iso_8601": "2024-06-16T18:16:31.599806Z",
"url": "https://files.pythonhosted.org/packages/16/52/e2975055e8dc1311a870ba5607cd6319917b69743bbc34f4d2e268392f65/spector-1.5-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "caf1ce2bda294d560c82830018bd9ab47ccf12fd32d406d561b640530468a4fc",
"md5": "b6e3d5564cc1dc27966cc712bc508929",
"sha256": "ec8aa118bb584954ca35a3a4e1479f35cd523002cfd26d91016807fb81b25cf7"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "b6e3d5564cc1dc27966cc712bc508929",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1451232,
"upload_time": "2024-06-16T18:16:33",
"upload_time_iso_8601": "2024-06-16T18:16:33.377086Z",
"url": "https://files.pythonhosted.org/packages/ca/f1/ce2bda294d560c82830018bd9ab47ccf12fd32d406d561b640530468a4fc/spector-1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "15d4e7300b3faf6d6c5bd4bd7aa3e9c87efe71bb30bc614ac02968d0347ac50e",
"md5": "cdf522528e522c9f3abe90401ae34023",
"sha256": "62cc5a8a07b8f89a3d7677d6509fda3990e55a4b51690756a621dc5b63441e19"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "cdf522528e522c9f3abe90401ae34023",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1416493,
"upload_time": "2024-06-16T18:16:35",
"upload_time_iso_8601": "2024-06-16T18:16:35.377194Z",
"url": "https://files.pythonhosted.org/packages/15/d4/e7300b3faf6d6c5bd4bd7aa3e9c87efe71bb30bc614ac02968d0347ac50e/spector-1.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3eb4d4d6557bd951cb61d7f1d5c9f35da1fccc32371cef5873cb26a331bedec2",
"md5": "67945b081fba2b7e4ce359570778019b",
"sha256": "f58a599b6ba0014e249cae34d235b3fceb3833a9665688f1d8838acced4275ca"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "67945b081fba2b7e4ce359570778019b",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1466484,
"upload_time": "2024-06-16T18:16:37",
"upload_time_iso_8601": "2024-06-16T18:16:37.469075Z",
"url": "https://files.pythonhosted.org/packages/3e/b4/d4d6557bd951cb61d7f1d5c9f35da1fccc32371cef5873cb26a331bedec2/spector-1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6606fc0d9ccf7770d033270f1017235edb6025537f3c6decaa3cc05e3a04cae8",
"md5": "20baabf1e7e263111ba8fba734854f80",
"sha256": "682de1799fcd59962501892f6eacad536cb1dd6baae7f59446afcfde87d3f835"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "20baabf1e7e263111ba8fba734854f80",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2379882,
"upload_time": "2024-06-16T18:16:39",
"upload_time_iso_8601": "2024-06-16T18:16:39.392249Z",
"url": "https://files.pythonhosted.org/packages/66/06/fc0d9ccf7770d033270f1017235edb6025537f3c6decaa3cc05e3a04cae8/spector-1.5-cp311-cp311-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "28ac0594c62622b762edf897227fff18ab4bc152272af67d55f21fb3ff025289",
"md5": "cca812936b35f59061f8c7327493a31f",
"sha256": "3775509bb524179ba75893d14086fe41e4fd797b233b9b9f935608225ccdde05"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "cca812936b35f59061f8c7327493a31f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2515407,
"upload_time": "2024-06-16T18:16:40",
"upload_time_iso_8601": "2024-06-16T18:16:40.805093Z",
"url": "https://files.pythonhosted.org/packages/28/ac/0594c62622b762edf897227fff18ab4bc152272af67d55f21fb3ff025289/spector-1.5-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7f6fc6ca1654781554009750f11883ea2f2ede8e77082c64378467965e3b6c83",
"md5": "7b98a664108e8382c6c01e950f918e82",
"sha256": "f704808fb2d34178dccde89e11b5827cab0c2101da3c5eaffbb0dbe2fd4cc9b5"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7b98a664108e8382c6c01e950f918e82",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2463545,
"upload_time": "2024-06-16T18:16:42",
"upload_time_iso_8601": "2024-06-16T18:16:42.739801Z",
"url": "https://files.pythonhosted.org/packages/7f/6f/c6ca1654781554009750f11883ea2f2ede8e77082c64378467965e3b6c83/spector-1.5-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d2d8bc57573e8c08380364681c5345eeb5b9a2502b0ce1c49b4a8e97aa2fdcae",
"md5": "2b622afa7798a66939e4a96aaf41d0c9",
"sha256": "5bbb0c9fa2f8e553d4751a2e0408db7e31f2ffbb0b2c8a36bd2ac86c24e95bcc"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "2b622afa7798a66939e4a96aaf41d0c9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 370863,
"upload_time": "2024-06-16T18:16:43",
"upload_time_iso_8601": "2024-06-16T18:16:43.889608Z",
"url": "https://files.pythonhosted.org/packages/d2/d8/bc57573e8c08380364681c5345eeb5b9a2502b0ce1c49b4a8e97aa2fdcae/spector-1.5-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3fbdba4f92596dff1b2725c4c071810a1b849eee64f1798299dcc6f3ab31e21b",
"md5": "bcbb92ea18e8752a0b0cf9c5f89791df",
"sha256": "fa38e845f5dca242a3fb1255dc0026a8bd4f1eb102a5466e691d035add219a1e"
},
"downloads": -1,
"filename": "spector-1.5-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "bcbb92ea18e8752a0b0cf9c5f89791df",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 396774,
"upload_time": "2024-06-16T18:16:44",
"upload_time_iso_8601": "2024-06-16T18:16:44.966468Z",
"url": "https://files.pythonhosted.org/packages/3f/bd/ba4f92596dff1b2725c4c071810a1b849eee64f1798299dcc6f3ab31e21b/spector-1.5-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1ed0852df17353994cd42a444a0dd39ac9faec4238d534dbcef22531b7a66b7a",
"md5": "65cca7eee7d1222ce7879a3065f4333b",
"sha256": "6de014b7fc3761c38433bd533e0af7d0206bebbe7ccecd5b7b309089b69e42e3"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "65cca7eee7d1222ce7879a3065f4333b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 429627,
"upload_time": "2024-06-16T18:16:46",
"upload_time_iso_8601": "2024-06-16T18:16:46.750426Z",
"url": "https://files.pythonhosted.org/packages/1e/d0/852df17353994cd42a444a0dd39ac9faec4238d534dbcef22531b7a66b7a/spector-1.5-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "10b0f474a8881f45f69af3f4774444dc75be54a57450ee095ad92308d213b900",
"md5": "552b98169b437381f924d83e328c98f4",
"sha256": "60619a131cb7b822053643947e6a824a12313e59ee4bf39055b0767146d36c6b"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "552b98169b437381f924d83e328c98f4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 410229,
"upload_time": "2024-06-16T18:16:48",
"upload_time_iso_8601": "2024-06-16T18:16:48.135306Z",
"url": "https://files.pythonhosted.org/packages/10/b0/f474a8881f45f69af3f4774444dc75be54a57450ee095ad92308d213b900/spector-1.5-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d03b5a44b67e657c7ae03ad4533154413f16c09f4e65a497dd55e3e264e2fb5a",
"md5": "23fe8938e9805e318e8f887becb93cfa",
"sha256": "b89f348270c39c51b6bd6a74e0d3347a28290213186721adc35d28925ca0def3"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "23fe8938e9805e318e8f887becb93cfa",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1425460,
"upload_time": "2024-06-16T18:16:49",
"upload_time_iso_8601": "2024-06-16T18:16:49.837077Z",
"url": "https://files.pythonhosted.org/packages/d0/3b/5a44b67e657c7ae03ad4533154413f16c09f4e65a497dd55e3e264e2fb5a/spector-1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91946dc92b50b0b4a336858c26b7784003a5e58405346941e1fca58152b07293",
"md5": "9a417741fb61c3b48901c0513b2bc424",
"sha256": "e73f06c9734782c2ccc0231b4ae708ce19da16592940b6d96f45416f4a162826"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "9a417741fb61c3b48901c0513b2bc424",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1387776,
"upload_time": "2024-06-16T18:16:51",
"upload_time_iso_8601": "2024-06-16T18:16:51.099969Z",
"url": "https://files.pythonhosted.org/packages/91/94/6dc92b50b0b4a336858c26b7784003a5e58405346941e1fca58152b07293/spector-1.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4bb53163fc057140d9cba2ff33aaf07fab871f898ae6ee8eb073702386eaaac7",
"md5": "4e6b05bda38e745306860f5cd48e0b3c",
"sha256": "4402958d92d0b2f396345966188c990751965fe89e6f3f4e07d702f3a397adb9"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4e6b05bda38e745306860f5cd48e0b3c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1450940,
"upload_time": "2024-06-16T18:16:52",
"upload_time_iso_8601": "2024-06-16T18:16:52.488692Z",
"url": "https://files.pythonhosted.org/packages/4b/b5/3163fc057140d9cba2ff33aaf07fab871f898ae6ee8eb073702386eaaac7/spector-1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "66b79de0e67d639191e891268efe187f0b56890df797111eec1c1aa874eb519c",
"md5": "fef46bc703cb8a21b454bad4a654641f",
"sha256": "0cfdc993381a398379143e12a46aa4ef92cfb7bb72e9490d5d9f94546fefec81"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "fef46bc703cb8a21b454bad4a654641f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2358655,
"upload_time": "2024-06-16T18:16:54",
"upload_time_iso_8601": "2024-06-16T18:16:54.450482Z",
"url": "https://files.pythonhosted.org/packages/66/b7/9de0e67d639191e891268efe187f0b56890df797111eec1c1aa874eb519c/spector-1.5-cp312-cp312-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "520c0a7fef6f103543141eb0befd613049329573c6ece28e9809c0f106d4e6da",
"md5": "86abd2574e752f77114dbeec00850d86",
"sha256": "0c3e8d96f8a7122a2ffe5fa83fe3c28c44424de709f51b93ef8e80f4bb45bf36"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "86abd2574e752f77114dbeec00850d86",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2498284,
"upload_time": "2024-06-16T18:16:56",
"upload_time_iso_8601": "2024-06-16T18:16:56.481404Z",
"url": "https://files.pythonhosted.org/packages/52/0c/0a7fef6f103543141eb0befd613049329573c6ece28e9809c0f106d4e6da/spector-1.5-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61075938d9ec3c42d1c02f69fdcc77b21ff26d3518cd91df8d3fc11a52401ef6",
"md5": "63ea26b118a3ef3d910a7645c1ac2893",
"sha256": "3396335195319587d613c4056dd40beb0727fb16bc5887504e9487c8617f68f3"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "63ea26b118a3ef3d910a7645c1ac2893",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2449899,
"upload_time": "2024-06-16T18:16:57",
"upload_time_iso_8601": "2024-06-16T18:16:57.805165Z",
"url": "https://files.pythonhosted.org/packages/61/07/5938d9ec3c42d1c02f69fdcc77b21ff26d3518cd91df8d3fc11a52401ef6/spector-1.5-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c99d81c51573e1f4c223f74f7cd180d926513ebd82118394fe1335389b2af38",
"md5": "84355c3b31855668cad6fd0acb60953c",
"sha256": "5af5bd5b91f6c774fec62eddec5711fa9af58f6fce1367f5d83400e9cfde9823"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "84355c3b31855668cad6fd0acb60953c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 370262,
"upload_time": "2024-06-16T18:16:59",
"upload_time_iso_8601": "2024-06-16T18:16:59.268968Z",
"url": "https://files.pythonhosted.org/packages/4c/99/d81c51573e1f4c223f74f7cd180d926513ebd82118394fe1335389b2af38/spector-1.5-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "614f549b94ee4f0114b230784de57cd43197c42ebdf5fcc7466b4f53d100df2f",
"md5": "192b788aa87a0f8bc104e912a7197bc7",
"sha256": "21b01587bea6d71540b4ac7851c859463f218a4069ad76ca67c0f0c75b074166"
},
"downloads": -1,
"filename": "spector-1.5-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "192b788aa87a0f8bc104e912a7197bc7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 395121,
"upload_time": "2024-06-16T18:17:00",
"upload_time_iso_8601": "2024-06-16T18:17:00.552370Z",
"url": "https://files.pythonhosted.org/packages/61/4f/549b94ee4f0114b230784de57cd43197c42ebdf5fcc7466b4f53d100df2f/spector-1.5-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8fa7e7fe977b02f31df75671dfc4f264f1a78d62141effbd1d924b829558f6ae",
"md5": "c2d78f2963a9c521701066a4edc17082",
"sha256": "e5cddf034698b0475cb0f41d85d7a08ad409ed7d206003e941cab6ff5ad03938"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c2d78f2963a9c521701066a4edc17082",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 428644,
"upload_time": "2024-06-16T18:17:01",
"upload_time_iso_8601": "2024-06-16T18:17:01.818601Z",
"url": "https://files.pythonhosted.org/packages/8f/a7/e7fe977b02f31df75671dfc4f264f1a78d62141effbd1d924b829558f6ae/spector-1.5-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea4a0a272bbb95b37a0dcf61f6dc5b5bf28267d02520266255ec52607dd67132",
"md5": "7ff2b63f20207d38e13d67a7bbf24dfc",
"sha256": "1f89a8fd4e5b773a9f1ea6059ebe2e2f3dae5f16b5de579cefaf124f4908bf97"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7ff2b63f20207d38e13d67a7bbf24dfc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 409211,
"upload_time": "2024-06-16T18:17:02",
"upload_time_iso_8601": "2024-06-16T18:17:02.974462Z",
"url": "https://files.pythonhosted.org/packages/ea/4a/0a272bbb95b37a0dcf61f6dc5b5bf28267d02520266255ec52607dd67132/spector-1.5-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0f5c213603e50347abe30c9bf91f03ea675d2ba9ce9741ed83f9e313b0b56345",
"md5": "935f4869cec17ed52c88dccdc852b00a",
"sha256": "042b41e5e50bc28cfde641aef35cd57431a26fd85af74b4f81c88d8f1016f392"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "935f4869cec17ed52c88dccdc852b00a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1385568,
"upload_time": "2024-06-16T18:17:04",
"upload_time_iso_8601": "2024-06-16T18:17:04.881081Z",
"url": "https://files.pythonhosted.org/packages/0f/5c/213603e50347abe30c9bf91f03ea675d2ba9ce9741ed83f9e313b0b56345/spector-1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b6dd7b6b50fc59b6975e81d7fb0e5a968794824a6c1e07cbc5ff34df430def9b",
"md5": "3f875465107d1a36a448c61451f9a479",
"sha256": "fcfbc15e6ae8a479c37f1a4581778a160e5cff35a3045f1835488dab06254b82"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "3f875465107d1a36a448c61451f9a479",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1361880,
"upload_time": "2024-06-16T18:17:06",
"upload_time_iso_8601": "2024-06-16T18:17:06.127890Z",
"url": "https://files.pythonhosted.org/packages/b6/dd/7b6b50fc59b6975e81d7fb0e5a968794824a6c1e07cbc5ff34df430def9b/spector-1.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ccea39e0e6cdaa95094a5d9e9620664e8a04d446125ebf10ba380f02828f441d",
"md5": "599fff096cc66577acf1ebdc54f527ca",
"sha256": "5bc0fe97d1bb1930224645a9321bfff6e636aa42f9b3408b67d95f349dc78819"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "599fff096cc66577acf1ebdc54f527ca",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1405735,
"upload_time": "2024-06-16T18:17:07",
"upload_time_iso_8601": "2024-06-16T18:17:07.480993Z",
"url": "https://files.pythonhosted.org/packages/cc/ea/39e0e6cdaa95094a5d9e9620664e8a04d446125ebf10ba380f02828f441d/spector-1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49fa4a7a5c7941be39ab4ad101097b8082bc81658c3d260d0dc6f13a7e44271f",
"md5": "f7e86b7220445d5c9ceb888680be9bf5",
"sha256": "117a20b05e1a6bb6c10715859569454cec19c736addc3295f872997fd5f5839a"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "f7e86b7220445d5c9ceb888680be9bf5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2304714,
"upload_time": "2024-06-16T18:17:09",
"upload_time_iso_8601": "2024-06-16T18:17:09.329674Z",
"url": "https://files.pythonhosted.org/packages/49/fa/4a7a5c7941be39ab4ad101097b8082bc81658c3d260d0dc6f13a7e44271f/spector-1.5-cp39-cp39-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "078563827515c0de388f419f0ac5be5b59f11a75c9af84198acc71c0c1b5246a",
"md5": "23a338487f33dc16b2f364f9a3d7ee1c",
"sha256": "fb76c45316e685e5434d36e703951a53e7893505a05a325ae4027c495fbc4921"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "23a338487f33dc16b2f364f9a3d7ee1c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2444743,
"upload_time": "2024-06-16T18:17:10",
"upload_time_iso_8601": "2024-06-16T18:17:10.671496Z",
"url": "https://files.pythonhosted.org/packages/07/85/63827515c0de388f419f0ac5be5b59f11a75c9af84198acc71c0c1b5246a/spector-1.5-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "816d6b850d992ba891243fce99d6d09ed8a565ee551852a75dc992e2d5f8c917",
"md5": "5e66a979a2f678ccf61ce6082198e774",
"sha256": "2078670c382d12b9ae4d1e3501542a026132b4a9fefbae712f32e16a2657c79f"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "5e66a979a2f678ccf61ce6082198e774",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2382332,
"upload_time": "2024-06-16T18:17:11",
"upload_time_iso_8601": "2024-06-16T18:17:11.930521Z",
"url": "https://files.pythonhosted.org/packages/81/6d/6b850d992ba891243fce99d6d09ed8a565ee551852a75dc992e2d5f8c917/spector-1.5-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "24069c9a39449e721463844304f2bcc602f746004684dee1be37332f1676b047",
"md5": "888f50b47f48a17e71690e704e4893e5",
"sha256": "834372b5c1cd15d1f41017c9ce0111443b05c522d97b8d60439bbad344bfebf2"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "888f50b47f48a17e71690e704e4893e5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 371352,
"upload_time": "2024-06-16T18:17:13",
"upload_time_iso_8601": "2024-06-16T18:17:13.191967Z",
"url": "https://files.pythonhosted.org/packages/24/06/9c9a39449e721463844304f2bcc602f746004684dee1be37332f1676b047/spector-1.5-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0c5652612c4adbbdb4035b30178bbdf675a83bf49520a81b042bd130369b7e9c",
"md5": "d6aad121777cdf54a12f21d36fe51a26",
"sha256": "4c59ac5789817420ce86cfb4fafb77994c6e89cc6200771912c3cdc6a263c36a"
},
"downloads": -1,
"filename": "spector-1.5-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "d6aad121777cdf54a12f21d36fe51a26",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 396398,
"upload_time": "2024-06-16T18:17:14",
"upload_time_iso_8601": "2024-06-16T18:17:14.386805Z",
"url": "https://files.pythonhosted.org/packages/0c/56/52612c4adbbdb4035b30178bbdf675a83bf49520a81b042bd130369b7e9c/spector-1.5-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc2a53c7168ddfaa152bc4f5799fd79777affe6c2de12f7753824f7d92f34b1a",
"md5": "91a65c4312075857b92e16b9756daa0f",
"sha256": "b0f2d3f5a1ccd0bb98980ea495945ac35e3a612269777a9d750136d2686472f1"
},
"downloads": -1,
"filename": "spector-1.5.tar.gz",
"has_sig": false,
"md5_digest": "91a65c4312075857b92e16b9756daa0f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 242247,
"upload_time": "2024-06-16T18:17:15",
"upload_time_iso_8601": "2024-06-16T18:17:15.596940Z",
"url": "https://files.pythonhosted.org/packages/fc/2a/53c7168ddfaa152bc4f5799fd79777affe6c2de12f7753824f7d92f34b1a/spector-1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-16 18:17:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "coady",
"github_project": "spector",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "spector"
}