Skip to main content

Fast spreadsheet logic library

Project description

Spreader

A fast spreadsheet logic library.

License pypi python

Spreader is a zero dependency library that implements spreadsheet logic - reading and writing data and formulas into cells, automatic recalculation, copying and moving cells, adding and deleting rows and columns and so on. It does not implement any spreadsheet UI. It is currently in alpha stage.

Install

Spreader is a C++ library. Binary wheels are provided for common configurations on macOS and Windows. If you are on another platform or have an uncommon configuration pip will build the module from source. In order for a build from source to succeed you will need

  • Working C++ compiler supporting C++20 standard
    • Linux: GCC 11.3 or above
    • macOS: Xcode 14 or above
    • Windows: Visual Studio 2022 or above
  • On Linux you will also need Python development support (the python-dev or python3-dev package in most Linux distributions). No further external dependencies are required.

To install the module

pip install eg.spreader

Quick start

from eg.spreader import Sheet
...

#Create a new sheet
sheet = Sheet()
#Set a cell to contain plain value. Instead of "A2" 
#you can also say Point(x=0, y=1) or just (0, 1) or [0, 1]. 
#Columns are x and rows y, zero-based
sheet.setValueCell("A2", "Hello ")
sheet.setValueCell("B3", "World!")
#Set a cell to contain formula
sheet.setFormulaCell("A1", "A2 & B3")
#Read calculated formula result
val = s.getValue("A1")
#val is "Hello Wolrd!" here

Limits

Maximum possible size of a sheet is currently 65536 x 2147483648 (e.g. 216 x 231) cells. You can query this value via Sheet.maxSize property. Note that currently, sheets are held entirely in memory (there is no 'offloading' of unused data to some kind of storage). Thus, depending on how much memory you have available the actual limit on how big a sheet you will be able to create might be lower than maximum.

There is no hard limit on things like:

  • Maximum length of cell's string value
  • Maximum number of function arguments (for functions that support variable number of arguments like SUM)
  • Maximum level of nesting in formulas or anything else in the library. Instead, those are limited by available memory. In practice such limit is quite a bit larger than traditional 255 of Excel.

Cell and Area coordinates

Cell coordinates in the API can be given in the usual "A1", "B2" format. Alternatively, and slightly faster, you can use Point(x=..., y=...) objects or (x, y) tuples or [x, y] lists. In the later case x and y are zero based so Point(x=0, y=0) and (0, 0) correspond to "A1".

Similarly area coordinates can be given either as "A1:B2" or as Rect(Point(x=..., y=...), Size(width=..., height=...)) or as (x, y, width, height) or [x, y, width, height], whichever suits your needs more. As with individual cells, using "A1:B2" format is slightly slower.

Cell values

Spreader supports the following cell value types: None (e.g. blank cell), bool, float, str and instances of its own ErrorValue class. All known errors are available as constants from Errors class (e.g. Errors.InvalidReference) and represent the usual spreadsheet #-errors (e.g. #REF!).

Numbers contained in a cell are never NaNs and never infinite. Setting a NaN or infinite value cell will result in an ErrorValue instead.

Strings you set into a cell via sheet.setValueCell() call do not need to be escaped - they are always taken to be literal. For example sheet.setValueCell("A1", "=3") will result in a cell holding literal "=3" value as if you typed '=3 in Excel or other spreadsheets.

Supported formulas

Spreader supports all the operators (e.g. =, +, >, * etc.) supported by Excel.

Dynamic array formulas are fully supported. Therefor there is no need for ARRAYFORMULA and it isn't recognized.

The following functions are currently implemented:

Expand
  • A
    ADDRESS, AVERAGE, AVERAGEA, AVERAGEIF
  • C
    CEIL, CHOOSE, COLUMN, CONCAT, CONCATENATE, COUNT, COUNTA
  • D
    DATE, DATEDIF, DAY, DAYS
  • E
    EDATE, EOMONTH, ERROR.TYPE
  • F
    FIND, FLOOR
  • H
    HLOOKUP, HOUR
  • I
    IF, INDEX, INDIRECT, INT, ISBLANK, ISERR, ISERROR, ISEVEN, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISODD, ISOWEEKNUM, ISTEXT
  • L
    LEFT, LEN, LOWER
  • M
    MATCH, MAX, MAXA, MID, MIN, MINA, MINUTE, MOD, MONTH, MROUND
  • N
    NOT, NOW
  • O
    OR
  • R
    REPLACE, RIGHT, ROUND, ROUNDDOWN, ROUNDUP, ROW
  • S
    SECOND, SIGN, STDEV, STDEV.P, STDEV.S, STDEVA, STDEVP, STDEVPA, SUBSTITUTE, SUM, SUMIF, SWITCH
  • T
    TIME, TODAY, TRANSPOSE, TRIM
  • U
    UPPER
  • V
    VLOOKUP
  • W
    WEEKDAY, WEEKNUM
  • X
    XOR
  • Y
    YEAR

Recalculation

By default sheet recalculation is automatic. You can suspend it using sheet.suspendRecalc() and resume it again using sheet.resumeRecalc(). Suspend calls can nest and each is "undone" by a corresponding resume. While suspended you can manually recalculate a sheet using sheet.recalculate().

Manipulating sheet size

Similar to how visual spreadsheets behave sheet size (as returned by sheet.size()) is dynamic and you don't manipulate it directly. When you set any cell to a non-null value sheet automatically expands to encompass it if it is outside the current size. It doesn't automatically contract, however. To reduce size you can use sheet.deleteColumns() and sheet.deleteRows() calls. Those, as well as sheet.insertColumns() and sheet.insertRows() can be used to delete/insert rows and columns anywhere in the sheet. Just like in visual spreadsheets all the references in formulas will be automatically adjusted to account for insertion or deletion.

Copying and moving cells

Normal copying and moving semantics of spreadsheets are also fully supported. You can use:

  • sheet.copyCell() to copy a single cell to a single cell or area.
  • sheet.copyCells() (note the plural) to copy an area to another location given by its top left corner
  • sheet.moveCell() to move a single cell to a new location (also a single cell)
  • sheet.moveCells() to move a cell area to a new location given by its top left corner

For all these calls the formula references are adjusted in normal spreadsheet fashion.

Roadmap and missing features

Spreader is currently in alpha - implemented features work and work well but many desirable things are missing. The following features are currently on the roadmap:

  • Change notifications to enable clients to react to cells changed during recalculation
  • Ability to associate abstract formatting information with cells rows and columns. Spreader itself doesn't care about formatting - it just needs to keep track of it for clients to act upon.
    • Support conditional formatting formulas. Similar to above associate opaque format with boolean formulas and tell the client which one to use.
  • Support optional undo. It needs to be optional because it will slow things down and not all clients need it.
  • Support more functions in formulas
  • Support localized formula input. Currently formula syntax must use US English syntax: . as decimal separator, , to separate arguments. Excel allows using , and ; for languages that use comma as decimal separator.
  • Serialization/deserialization. Likely in xlsx and json.
  • Maybe: support manipulating very large spreadsheets by offloading parts of them to persistent storage and not keeping everything in memory.
  • Maybe: support doing spreadsheet math using decimals rather than doubles.

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

eg.spreader-0.1.0.tar.gz (175.1 kB view details)

Uploaded Source

Built Distributions

eg.spreader-0.1.0-pp39-pypy39_pp73-win_amd64.whl (253.9 kB view details)

Uploaded PyPy Windows x86-64

eg.spreader-0.1.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (369.6 kB view details)

Uploaded PyPy macOS 10.15+ x86-64

eg.spreader-0.1.0-pp38-pypy38_pp73-win_amd64.whl (254.0 kB view details)

Uploaded PyPy Windows x86-64

eg.spreader-0.1.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl (369.6 kB view details)

Uploaded PyPy macOS 10.15+ x86-64

eg.spreader-0.1.0-cp311-cp311-win_arm64.whl (230.2 kB view details)

Uploaded CPython 3.11 Windows ARM64

eg.spreader-0.1.0-cp311-cp311-win_amd64.whl (254.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

eg.spreader-0.1.0-cp311-cp311-win32.whl (231.3 kB view details)

Uploaded CPython 3.11 Windows x86

eg.spreader-0.1.0-cp311-cp311-macosx_10_15_x86_64.whl (370.0 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

eg.spreader-0.1.0-cp311-cp311-macosx_10_15_universal2.whl (721.8 kB view details)

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

eg.spreader-0.1.0-cp310-cp310-win_arm64.whl (230.3 kB view details)

Uploaded CPython 3.10 Windows ARM64

eg.spreader-0.1.0-cp310-cp310-win_amd64.whl (253.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

eg.spreader-0.1.0-cp310-cp310-win32.whl (231.3 kB view details)

Uploaded CPython 3.10 Windows x86

eg.spreader-0.1.0-cp310-cp310-macosx_10_15_x86_64.whl (369.7 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

eg.spreader-0.1.0-cp310-cp310-macosx_10_15_universal2.whl (721.2 kB view details)

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

eg.spreader-0.1.0-cp39-cp39-win_arm64.whl (230.4 kB view details)

Uploaded CPython 3.9 Windows ARM64

eg.spreader-0.1.0-cp39-cp39-win_amd64.whl (254.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

eg.spreader-0.1.0-cp39-cp39-win32.whl (231.4 kB view details)

Uploaded CPython 3.9 Windows x86

eg.spreader-0.1.0-cp39-cp39-macosx_10_15_x86_64.whl (369.7 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

eg.spreader-0.1.0-cp39-cp39-macosx_10_15_universal2.whl (721.2 kB view details)

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

eg.spreader-0.1.0-cp38-cp38-win_amd64.whl (253.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

eg.spreader-0.1.0-cp38-cp38-win32.whl (231.7 kB view details)

Uploaded CPython 3.8 Windows x86

eg.spreader-0.1.0-cp38-cp38-macosx_10_15_x86_64.whl (369.6 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

eg.spreader-0.1.0-cp38-cp38-macosx_10_15_universal2.whl (721.0 kB view details)

Uploaded CPython 3.8 macOS 10.15+ universal2 (ARM64, x86-64)

eg.spreader-0.1.0-cp37-cp37m-win_amd64.whl (251.1 kB view details)

Uploaded CPython 3.7m Windows x86-64

eg.spreader-0.1.0-cp37-cp37m-win32.whl (224.9 kB view details)

Uploaded CPython 3.7m Windows x86

eg.spreader-0.1.0-cp37-cp37m-macosx_10_15_x86_64.whl (368.7 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file eg.spreader-0.1.0.tar.gz.

File metadata

  • Download URL: eg.spreader-0.1.0.tar.gz
  • Upload date:
  • Size: 175.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0.tar.gz
Algorithm Hash digest
SHA256 33fd74f445fb8261bc594235eda6e9aadb0df698da71cf25f930e07de5ec5719
MD5 347d4d29adefc6dacc93ca1fa5ce919c
BLAKE2b-256 96ee54b850c3692dd7860ebb04191f564c740a6cc54fed687d45682f7df77931

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9188aa5d3335469b93bbd5d7d24fd62a79d559ba1fd0efbe8cf0d1d90f44892c
MD5 ccec7d55c4c96859251f0d5438d9ee48
BLAKE2b-256 a1afe612aedaa4486ac38de427acd75f7f2e8adb1cb99eb90aaa4a011f32aceb

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 47926765c5a324612b3bdd5bf6ad88dd5f2d9e37a22ab0e0fd52e5cfb2e744e8
MD5 f0a597fdd3555f82b5296b90b95a1c29
BLAKE2b-256 403a2d8050306b13128a346eb8e81cca22cbe08f91aa2b73c0f586bdbe252f75

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cb3587e7137a3bd6adb1a45657fc00068dd115ff6ccf445573422098f4e5869b
MD5 00eb79d5ef45f572f37bc392705c1280
BLAKE2b-256 d6818368dd710d2e8ca36cbb6148691f4480e5270b4041744c6b79d7271e60a3

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7b9f6b7630ff81fc867886be0b77c3a3080a57664527266d9c27cc537db90c98
MD5 cd39353eb91140ec2a6ddc2d306dfceb
BLAKE2b-256 4da53bb6e506281413577b58499874241e5798e781bb0f3a48a30427abf85849

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 0cd3e9b0c397a1a07f402c4e518ff49046fc921b872906fb237db864d7118915
MD5 9fe3e30c836c04b8d690f398a1d0b4ef
BLAKE2b-256 29ab06952490ee69983cc24185d3675db7d2c9cce0491b89918eb56eb17b7d42

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 929e3b7648a584bc0a58e41746860c11dff51caf4ea1acfad553a7a39bd3d36a
MD5 6a95adfeaa5ab6afe35329af0625219e
BLAKE2b-256 455644583ff9448abdbf14a576a796836477b34c727b1d739628826e8a88142a

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: eg.spreader-0.1.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 231.3 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 8f5ba3e1c73d1b4cbe324331a56ff16cdfe755541118cf85b1bcdca24ae26076
MD5 c4e24031e43bbaf52f816905d7671f4d
BLAKE2b-256 9f340418a16542ff1aa9ae1eefdfa0f53d067b3b0282567d7f1ea462df4a7ef9

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 00b759974629f848fbe6997ffd7e9fb78d6ff742bdcd4b2cd7e2ec97f40ab039
MD5 f46f64c51104cf5aa7c05e2849a493d8
BLAKE2b-256 f570810d59d03b4660c1bee6c4b6b4534a7ecaf819f205419879dc45dbc84dec

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp311-cp311-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9312e65309d3f08e162b07d9ccafd67e2dfaf8cb040524b2241823cc5031f336
MD5 be88587e84587aaca3c2e6c476f518b7
BLAKE2b-256 1a7b27ef971242d1e5ae3a71abefaa2b8ceaed279ecae1a4e41a392c6317b9d5

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 111ad2dfb28ec3b939ffa40647e8a34c85ff06a200c43fe846e4e605f0b6a545
MD5 8fe01359c3dda34c45641a3cf82af969
BLAKE2b-256 9359f32aa0f63696e3657b4ff844f60058d4016ef358cc6328e0263060f22900

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6d1902ab1d0ae39dbc07f2f4d4d841be3b18a1122614ba1ed64aae12c5626733
MD5 b2f8d0aa0cb59e8aa10838ff83d9157b
BLAKE2b-256 488c9f4f4639f68a3ffa0414b0c8da0821fb12ea22af45b3119ee3342f7dbacc

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: eg.spreader-0.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 231.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b354c4734c3225bb9baf33763f737b84c95984609f5d4aedd1c355792eda26c6
MD5 268db7a7ab8daa0602b0d3fa90ed9047
BLAKE2b-256 e234a74639695161a3445622b19ed4c48d9770ca52197b928a94f81d4d9de119

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 91ae29a1b45866ec7f3a2c5d927d1b98cce6b446b9245ce70a5eae50673839da
MD5 69acf082761efa17b4bc4716c77a9a6e
BLAKE2b-256 77991a4bd2ae365f0eb9b6218d6c9d4ff9248f0c999bc6494c1b8b6b157575e6

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp310-cp310-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 e540ef16c9a784da6061e946627c41b8a9e23369204f7f407644f8b6d76c7b9d
MD5 6265db6012b5b0949066d26018f65450
BLAKE2b-256 027bfd4c324c23491362ca87a053668bdf2880326411a3ccf3bac03d5399cba1

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 4d94b661ff049c7c989c33d2b7a6188fe78a0524a97d4b136b41677d9cd7f719
MD5 f69c69c7705fca0f7fcaf1d8fee5b9db
BLAKE2b-256 f09ed75312a139e17dc4290be2c1b0484fcdcd0e9955789780ece8f87c9a6151

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 17f3ba79c652d5de234c8241898b4efb339697b6bfae830f11fd95bb34fbfc72
MD5 d3393f9f24c3c179c885e3a23f15c82a
BLAKE2b-256 678d8d65b3c2b45905e17c1d1ae5d20492721bece47640f916b9c73c9d19b2de

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: eg.spreader-0.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 231.4 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 8c8ff747d070669853959d1141794293cfd94d69bdad8355477b42f47419861d
MD5 11cab55192c959cc3b7306f57a0e091b
BLAKE2b-256 aadf0e48cf80696279dbbf42f000de199fbcceb982fe0a5e6d80b94b84a17c3f

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 17303b19424ae86a9fb4ba021579b3cac640dd446ec12ae91e04a17da6413453
MD5 383c2cc62014b8ba3d20825ddaa7d54a
BLAKE2b-256 e8020d7cefeb29691c695dc50f343acde9e82c6d0192ac511e5487ba51b03ee5

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp39-cp39-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 f02a84f5f08bcd212bd93443cc2d910d4d535ab837f02c980ff6e96d3effdd67
MD5 e7b67f6a5d45b7294b94107186200015
BLAKE2b-256 952dd7d067049b387fe5f83c08364b3019559c6ce3428121b6e613c99273c80a

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e7fcad308f5de96d3080dfb1245a1e6cf077b8d5f7a2a95f1cce6044da88c5a7
MD5 702f1ac30708ac53a79302e5b7c51339
BLAKE2b-256 c45efb13d8c878c8523a99eb753c8ebff293d5d97b53183201c77cc0ecb5b963

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: eg.spreader-0.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 231.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 fa7dbd471589007235ff5545350399a92e04141c83cd33914e6b4209b9fabfc1
MD5 2655b1fb416671da8dcb81fe62570d84
BLAKE2b-256 1862e2ac7d07d0ea7960e05aa52b89d875dccf7ef49a23462009f6ca70cdb443

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 be120ebcbf52497360b24c7b7d421d9ee0d8825b3c36cb21316ea6a10c0cd0f6
MD5 06a38283bd4d82e03edb5794f80515b9
BLAKE2b-256 c0bc40afc6434d9753afcbf3340d3b1a96facbfb70621ef7daad6ba7141cda57

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp38-cp38-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp38-cp38-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 b5cc3c3ff5a0b30441b6be830c220bc74ca1979d7624fec3fec10f4f5c9d286d
MD5 5ed64aac247a33290eb1616460de605b
BLAKE2b-256 3554b45f8a691a9f1cdc1bdc87b7c635d03d76659f99d85865db058aa88f1abd

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c4800658a413d6c1d895118bfc5f4cc2ae4a7666e083c51aa1c2fea70dba2201
MD5 1cdac265861a33021e95d518f6e5eaef
BLAKE2b-256 cab5046f96ba8428a022805085c5f3f89900a2479111c9555da387c868e2b3ea

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: eg.spreader-0.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 224.9 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for eg.spreader-0.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 972b4410d2b432ed20fa5855737c456f143c6870a7b890aff92b0365a5785b45
MD5 323804688f0fbd080f98caa7c871fb53
BLAKE2b-256 daa6716e264fd34f2416abf1f1aa6c283901a5956acd809014100937a5c88695

See more details on using hashes here.

File details

Details for the file eg.spreader-0.1.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for eg.spreader-0.1.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 23b24cbabedd42cf327cc0d2481cefba67236a372002a5eb63325e8c309e6d4b
MD5 5e2fb2e588c1b006a273eca96722f7c4
BLAKE2b-256 fac8e5f819d92392bd9e0bad54805992e2048a301b8a337d77c5ccaf0a210b9b

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