Changes for pypi release (#44)

* Adjustments for pypi release

* Remove if else

* Fix typo

* Revert "Remove if else"

This reverts commit 9beb895e56b4e9fa9d9a0b597671486afc84c072.

* Restore queue.py

* Revert "Restore queue.py"

This reverts commit d868475b0059d5d8c1c62132d9d031524e85729b.

* Restore event_queue_binary

* Restore other stuff

* Update README.md

* Fix version

* Address feedback
This commit is contained in:
Michael Huang 2020-10-01 10:37:32 -05:00 committed by GitHub
parent ca281af3f1
commit 135c770dcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 289 additions and 176 deletions

View File

@ -35,10 +35,10 @@ jobs:
- name: Run linters - name: Run linters
run: | run: |
pipenv run black --check --diff --line-length=120 setup.py src tests pipenv run black --check --diff --line-length=120 setup.py pyserum tests
pipenv run pylint --rcfile=.pylintrc setup.py src tests pipenv run pylint --rcfile=.pylintrc setup.py pyserum tests
pipenv run flake8 setup.py src tests pipenv run flake8 setup.py pyserum tests
pipenv run mypy src pipenv run mypy pyserum
- name: Run unit tests - name: Run unit tests
run: | run: |

View File

@ -2,18 +2,28 @@ clean:
rm -rf dist build _build __pycache__ *.egg-info rm -rf dist build _build __pycache__ *.egg-info
format: format:
pipenv run isort setup.py src tests pipenv run isort setup.py pyserum tests
pipenv run black --line-length=120 setup.py src tests pipenv run black --line-length=120 setup.py pyserum tests
lint: lint:
pipenv run flake8 setup.py src tests pipenv run flake8 setup.py pyserum tests
pipenv run mypy src pipenv run mypy pyserum
pipenv run pylint --rcfile=.pylintrc setup.py src tests pipenv run pylint --rcfile=.pylintrc setup.py pyserum tests
.PHONY: notebook .PHONY: notebook
notebook: notebook:
cd notebooks && PYTHONPATH=../ jupyter notebook cd notebooks && PYTHONPATH=../ jupyter notebook
publish:
make clean
python setup.py sdist bdist_wheel
pipenv run twine upload -u serum-community dist/*
test-publish:
make clean
python setup.py sdist bdist_wheel
pipenv run twine upload -r testpypi -u serum-community dist/*
unit-tests: unit-tests:
pipenv run pytest -v -m "not integration" pipenv run pytest -v -m "not integration"

View File

@ -21,6 +21,8 @@ flake8 = "*"
isort = "*" isort = "*"
rope = "*" rope = "*"
pytest-cov = "*" pytest-cov = "*"
twine = "*"
setuptools = "*"
[packages] [packages]
solana = "*" solana = "*"

316
Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "bd38fc4b3f1d2f88a5043a76b2a8083910d4aecb3e13d72887d5b01daa06c85f" "sha256": "b16e0702ee2af4c8a299cc56792c430548deeec4711d9c1e3007a0fc3c87e892"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
@ -33,36 +33,44 @@
}, },
"cffi": { "cffi": {
"hashes": [ "hashes": [
"sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e", "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d",
"sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c", "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b",
"sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e", "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4",
"sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1", "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f",
"sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4", "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3",
"sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2", "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579",
"sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c", "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537",
"sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0", "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e",
"sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798", "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05",
"sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1", "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171",
"sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4", "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca",
"sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731", "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522",
"sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4", "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c",
"sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c", "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc",
"sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487", "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d",
"sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e", "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808",
"sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f", "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828",
"sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123", "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869",
"sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c", "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d",
"sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b", "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9",
"sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650", "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0",
"sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad", "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc",
"sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75", "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15",
"sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82", "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c",
"sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7", "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a",
"sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15", "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3",
"sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa", "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1",
"sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281" "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768",
"sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d",
"sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b",
"sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e",
"sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d",
"sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730",
"sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394",
"sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1",
"sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"
], ],
"version": "==1.14.2" "version": "==1.14.3"
}, },
"chardet": { "chardet": {
"hashes": [ "hashes": [
@ -131,7 +139,7 @@
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
], ],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==1.15.0" "version": "==1.15.0"
}, },
"solana": { "solana": {
@ -251,36 +259,44 @@
}, },
"cffi": { "cffi": {
"hashes": [ "hashes": [
"sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e", "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d",
"sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c", "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b",
"sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e", "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4",
"sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1", "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f",
"sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4", "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3",
"sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2", "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579",
"sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c", "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537",
"sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0", "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e",
"sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798", "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05",
"sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1", "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171",
"sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4", "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca",
"sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731", "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522",
"sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4", "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c",
"sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c", "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc",
"sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487", "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d",
"sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e", "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808",
"sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f", "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828",
"sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123", "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869",
"sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c", "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d",
"sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b", "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9",
"sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650", "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0",
"sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad", "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc",
"sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75", "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15",
"sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82", "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c",
"sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7", "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a",
"sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15", "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3",
"sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa", "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1",
"sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281" "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768",
"sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d",
"sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b",
"sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e",
"sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d",
"sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730",
"sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394",
"sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1",
"sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"
], ],
"version": "==1.14.2" "version": "==1.14.3"
}, },
"chardet": { "chardet": {
"hashes": [ "hashes": [
@ -297,6 +313,14 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==7.1.2" "version": "==7.1.2"
}, },
"colorama": {
"hashes": [
"sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff",
"sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.4.3"
},
"coverage": { "coverage": {
"hashes": [ "hashes": [
"sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516", "sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516",
@ -352,6 +376,14 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.6.0" "version": "==0.6.0"
}, },
"docutils": {
"hashes": [
"sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af",
"sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.16"
},
"entrypoints": { "entrypoints": {
"hashes": [ "hashes": [
"sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
@ -378,11 +410,11 @@
}, },
"importlib-metadata": { "importlib-metadata": {
"hashes": [ "hashes": [
"sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83", "sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da",
"sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070" "sha256:cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3"
], ],
"markers": "python_version < '3.8'", "markers": "python_version < '3.8' and python_version < '3.8'",
"version": "==1.7.0" "version": "==2.0.0"
}, },
"iniconfig": { "iniconfig": {
"hashes": [ "hashes": [
@ -416,11 +448,11 @@
}, },
"isort": { "isort": {
"hashes": [ "hashes": [
"sha256:171c5f365791073426b5ed3a156c2081a47f88c329161fd28228ff2da4c97ddb", "sha256:36f0c6659b9000597e92618d05b72d4181104cf59472b1c6a039e3783f930c95",
"sha256:ba91218eee31f1e300ecc079ef0c524cea3fc41bfbb979cbdf5fd3a889e3cfed" "sha256:ba040c24d20aa302f78f4747df549573ae1eaf8e1084269199154da9c483f07f"
], ],
"index": "pypi", "index": "pypi",
"version": "==5.5.2" "version": "==5.5.4"
}, },
"jedi": { "jedi": {
"hashes": [ "hashes": [
@ -478,10 +510,10 @@
}, },
"jupyterlab-pygments": { "jupyterlab-pygments": {
"hashes": [ "hashes": [
"sha256:19a0ccde7daddec638363cd3d60b63a4f6544c9181d65253317b2fb492a797b9", "sha256:abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008",
"sha256:c9535e5999f29bff90bd0fa423717dcaf247b71fad505d66b17d3217e9021fc5" "sha256:cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146"
], ],
"version": "==0.1.1" "version": "==0.1.2"
}, },
"jupyterlab-server": { "jupyterlab-server": {
"hashes": [ "hashes": [
@ -491,6 +523,14 @@
"markers": "python_version >= '3.5'", "markers": "python_version >= '3.5'",
"version": "==1.2.0" "version": "==1.2.0"
}, },
"keyring": {
"hashes": [
"sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d",
"sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466"
],
"markers": "python_version >= '3.6'",
"version": "==21.4.0"
},
"lazy-object-proxy": { "lazy-object-proxy": {
"hashes": [ "hashes": [
"sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d", "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d",
@ -571,14 +611,6 @@
], ],
"version": "==0.8.4" "version": "==0.8.4"
}, },
"more-itertools": {
"hashes": [
"sha256:6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20",
"sha256:9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c"
],
"markers": "python_version >= '3.5'",
"version": "==8.5.0"
},
"mypy": { "mypy": {
"hashes": [ "hashes": [
"sha256:2c6cde8aa3426c1682d35190b59b71f661237d74b053822ea3d748e2c9578a7c", "sha256:2c6cde8aa3426c1682d35190b59b71f661237d74b053822ea3d748e2c9578a7c",
@ -616,11 +648,11 @@
}, },
"nbconvert": { "nbconvert": {
"hashes": [ "hashes": [
"sha256:06c64fd45d4b6424e88eb3bf7e5eb205a0fc8a4c0a69666f0b9a2262c76f59e1", "sha256:68335477288aab8a9b9ec03002dce59b4eb1ca967116741ec218a4e78c129efd",
"sha256:d8490f40368a1324521f8e740a0e341dc40bcd6e6926da64fa64b3a8801f16a3" "sha256:d8549f62e739a4d51f275c2932b1783ee5039dde07a2b71de70c0296a42c8394"
], ],
"markers": "python_version >= '3.6'", "markers": "python_version >= '3.6'",
"version": "==6.0.3" "version": "==6.0.6"
}, },
"nbformat": { "nbformat": {
"hashes": [ "hashes": [
@ -632,11 +664,11 @@
}, },
"nest-asyncio": { "nest-asyncio": {
"hashes": [ "hashes": [
"sha256:5773054bbc14579b000236f85bc01ecced7ffd045ec8ca4a9809371ec65a59c8", "sha256:a4487c4f49f2d11a7bb89a512a6886b6a5045f47097f49815b2851aaa8599cf0",
"sha256:ea51120725212ef02e5870dd77fc67ba7343fc945e3b9a7ff93384436e043b6a" "sha256:b86c3193abda5b2eeccf8c79894bc71c680369a178f4b068514ac00720b14e01"
], ],
"markers": "python_version >= '3.5'", "markers": "python_version >= '3.5'",
"version": "==1.4.0" "version": "==1.4.1"
}, },
"notebook": { "notebook": {
"hashes": [ "hashes": [
@ -690,6 +722,13 @@
], ],
"version": "==0.7.5" "version": "==0.7.5"
}, },
"pkginfo": {
"hashes": [
"sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb",
"sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32"
],
"version": "==1.5.0.1"
},
"pluggy": { "pluggy": {
"hashes": [ "hashes": [
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
@ -782,7 +821,7 @@
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
], ],
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.4.7" "version": "==2.4.7"
}, },
"pyrsistent": { "pyrsistent": {
@ -794,11 +833,11 @@
}, },
"pytest": { "pytest": {
"hashes": [ "hashes": [
"sha256:0e37f61339c4578776e090c3b8f6b16ce4db333889d65d0efb305243ec544b40", "sha256:1cd09785c0a50f9af72220dd12aa78cfa49cbffc356c61eab009ca189e018a33",
"sha256:c8f57c2a30983f469bf03e68cdfa74dc474ce56b8f280ddcb080dfd91df01043" "sha256:d010e24666435b39a4cf48740b039885642b6c273a3f77be3e7e03554d2806b7"
], ],
"index": "pypi", "index": "pypi",
"version": "==6.0.2" "version": "==6.1.0"
}, },
"pytest-cov": { "pytest-cov": {
"hashes": [ "hashes": [
@ -821,7 +860,7 @@
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
], ],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==2.8.1" "version": "==2.8.1"
}, },
"pyzmq": { "pyzmq": {
@ -855,34 +894,41 @@
"sha256:f1a25a61495b6f7bb986accc5b597a3541d9bd3ef0016f50be16dbb32025b302", "sha256:f1a25a61495b6f7bb986accc5b597a3541d9bd3ef0016f50be16dbb32025b302",
"sha256:fa411b1d8f371d3a49d31b0789eb6da2537dadbb2aef74a43aa99a78195c3f76" "sha256:fa411b1d8f371d3a49d31b0789eb6da2537dadbb2aef74a43aa99a78195c3f76"
], ],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==19.0.2" "version": "==19.0.2"
}, },
"readme-renderer": {
"hashes": [
"sha256:cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d",
"sha256:cc4957a803106e820d05d14f71033092537a22daa4f406dfbdd61177e0936376"
],
"version": "==26.0"
},
"regex": { "regex": {
"hashes": [ "hashes": [
"sha256:0dc64ee3f33cd7899f79a8d788abfbec168410be356ed9bd30bbd3f0a23a7204", "sha256:088afc8c63e7bd187a3c70a94b9e50ab3f17e1d3f52a32750b5b77dbe99ef5ef",
"sha256:1269fef3167bb52631ad4fa7dd27bf635d5a0790b8e6222065d42e91bede4162", "sha256:1fe0a41437bbd06063aa184c34804efa886bcc128222e9916310c92cd54c3b4c",
"sha256:14a53646369157baa0499513f96091eb70382eb50b2c82393d17d7ec81b7b85f", "sha256:41bb65f54bba392643557e617316d0d899ed5b4946dccee1cb6696152b29844b",
"sha256:3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb", "sha256:4318d56bccfe7d43e5addb272406ade7a2274da4b70eb15922a071c58ab0108c",
"sha256:46bac5ca10fb748d6c55843a931855e2727a7a22584f302dd9bb1506e69f83f6", "sha256:4707f3695b34335afdfb09be3802c87fa0bc27030471dbc082f815f23688bc63",
"sha256:4c037fd14c5f4e308b8370b447b469ca10e69427966527edcab07f52d88388f7", "sha256:5533a959a1748a5c042a6da71fe9267a908e21eded7a4f373efd23a2cbdb0ecc",
"sha256:51178c738d559a2d1071ce0b0f56e57eb315bcf8f7d4cf127674b533e3101f88", "sha256:5f18875ac23d9aa2f060838e8b79093e8bb2313dbaaa9f54c6d8e52a5df097be",
"sha256:5ea81ea3dbd6767873c611687141ec7b06ed8bab43f68fad5b7be184a920dc99", "sha256:60b0e9e6dc45683e569ec37c55ac20c582973841927a85f2d8a7d20ee80216ab",
"sha256:6961548bba529cac7c07af2fd4d527c5b91bb8fe18995fed6044ac22b3d14644", "sha256:84e9407db1b2eb368b7ecc283121b5e592c9aaedbe8c78b1a2f1102eb2e21d19",
"sha256:75aaa27aa521a182824d89e5ab0a1d16ca207318a6b65042b046053cfc8ed07a", "sha256:8d69cef61fa50c8133382e61fd97439de1ae623fe943578e477e76a9d9471637",
"sha256:7a2dd66d2d4df34fa82c9dc85657c5e019b87932019947faece7983f2089a840", "sha256:9a02d0ae31d35e1ec12a4ea4d4cca990800f66a917d0fb997b20fbc13f5321fc",
"sha256:8a51f2c6d1f884e98846a0a9021ff6861bdb98457879f412fdc2b42d14494067", "sha256:9bc13e0d20b97ffb07821aa3e113f9998e84994fe4d159ffa3d3a9d1b805043b",
"sha256:9c568495e35599625f7b999774e29e8d6b01a6fb684d77dee1f56d41b11b40cd", "sha256:a6f32aea4260dfe0e55dc9733ea162ea38f0ea86aa7d0f77b15beac5bf7b369d",
"sha256:9eddaafb3c48e0900690c1727fba226c4804b8e6127ea409689c3bb492d06de4", "sha256:ae91972f8ac958039920ef6e8769277c084971a142ce2b660691793ae44aae6b",
"sha256:bbb332d45b32df41200380fff14712cb6093b61bd142272a10b16778c418e98e", "sha256:c570f6fa14b9c4c8a4924aaad354652366577b4f98213cf76305067144f7b100",
"sha256:bc3d98f621898b4a9bc7fecc00513eec8f40b5b83913d74ccb445f037d58cd89", "sha256:d23a18037313714fb3bb5a94434d3151ee4300bae631894b1ac08111abeaa4a3",
"sha256:c11d6033115dc4887c456565303f540c44197f4fc1a2bfb192224a301534888e", "sha256:eaf548d117b6737df379fdd53bdde4f08870e66d7ea653e230477f071f861121",
"sha256:c50a724d136ec10d920661f1442e4a8b010a4fe5aebd65e0c2241ea41dbe93dc", "sha256:ebbe29186a3d9b0c591e71b7393f1ae08c83cb2d8e517d2a822b8f7ec99dfd8b",
"sha256:d0a5095d52b90ff38592bbdc2644f17c6d495762edf47d876049cfd2968fbccf", "sha256:eda4771e0ace7f67f58bc5b560e27fb20f32a148cbc993b0c3835970935c2707",
"sha256:d6cff2276e502b86a25fd10c2a96973fdb45c7a977dca2138d661417f3728341", "sha256:f1b3afc574a3db3b25c89161059d857bd4909a1269b0b3cb3c904677c8c4a3f7",
"sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7" "sha256:f2388013e68e750eaa16ccbea62d4130180c26abb1d8e5d584b9baf69672b30f"
], ],
"version": "==2020.7.14" "version": "==2020.9.27"
}, },
"requests": { "requests": {
"hashes": [ "hashes": [
@ -892,6 +938,20 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==2.24.0" "version": "==2.24.0"
}, },
"requests-toolbelt": {
"hashes": [
"sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f",
"sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"
],
"version": "==0.9.1"
},
"rfc3986": {
"hashes": [
"sha256:112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d",
"sha256:af9147e9aceda37c91a05f4deb128d4b4b49d6b199775fd2d2927768abdc8f50"
],
"version": "==1.4.0"
},
"rope": { "rope": {
"hashes": [ "hashes": [
"sha256:658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1" "sha256:658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1"
@ -911,7 +971,7 @@
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
], ],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==1.15.0" "version": "==1.15.0"
}, },
"snowballstemmer": { "snowballstemmer": {
@ -923,11 +983,11 @@
}, },
"terminado": { "terminado": {
"hashes": [ "hashes": [
"sha256:7ceea4c1644b0e95588d1d2ba09c5bf365b318c26d0a13ef6a5f2751a2f6efa3", "sha256:3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76",
"sha256:e0eaea25d978d9a8d557f63ef23b0ec81a2f9e22b9dabfe5db4a79d8d38dd7c2" "sha256:c55f025beb06c2e2669f7ba5a04f47bb3304c30c05842d4981d8f0fc9ab3b4e3"
], ],
"markers": "python_version >= '3.6'", "markers": "python_version >= '3.6'",
"version": "==0.9.0" "version": "==0.9.1"
}, },
"testpath": { "testpath": {
"hashes": [ "hashes": [
@ -958,6 +1018,14 @@
"markers": "python_version >= '3.5'", "markers": "python_version >= '3.5'",
"version": "==6.0.4" "version": "==6.0.4"
}, },
"tqdm": {
"hashes": [
"sha256:2dd75fdb764f673b8187643496fcfbeac38348015b665878e582b152f3391cdb",
"sha256:93b7a6a9129fce904f6df4cf3ae7ff431d779be681a95c3344c26f3e6c09abfa"
],
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1'",
"version": "==4.50.0"
},
"traitlets": { "traitlets": {
"hashes": [ "hashes": [
"sha256:86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b", "sha256:86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b",
@ -966,6 +1034,14 @@
"markers": "python_version >= '3.7'", "markers": "python_version >= '3.7'",
"version": "==5.0.4" "version": "==5.0.4"
}, },
"twine": {
"hashes": [
"sha256:34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab",
"sha256:ba9ff477b8d6de0c89dd450e70b2185da190514e91c42cc62f96850025c10472"
],
"index": "pypi",
"version": "==3.2.0"
},
"typed-ast": { "typed-ast": {
"hashes": [ "hashes": [
"sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355", "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355",
@ -990,7 +1066,7 @@
"sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4", "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4",
"sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7" "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"
], ],
"markers": "python_version < '3.8' and implementation_name == 'cpython'", "markers": "implementation_name == 'cpython' and python_version < '3.8'",
"version": "==1.4.1" "version": "==1.4.1"
}, },
"typing-extensions": { "typing-extensions": {
@ -1031,11 +1107,11 @@
}, },
"zipp": { "zipp": {
"hashes": [ "hashes": [
"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b", "sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96" "sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
], ],
"markers": "python_version >= '3.6'", "markers": "python_version >= '3.6'",
"version": "==3.1.0" "version": "==3.2.0"
} }
} }
} }

View File

@ -9,13 +9,14 @@ Python client library for interacting with the [Project Serum](https://projectse
## Get Started ## Get Started
```python ```python
from src.market import Market from pyserum.connection import conn
from pyserum.market import Market
endpoint = "https://api.mainnet-beta.solana.com/" cc = conn("https://api.mainnet-beta.solana.com/")
market_address = "CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq" # Address for BTC/USDC market_address = "5LgJphS6D5zXwUVPU7eCryDBkyta3AidrJ5vjNU6BcGW" # Address for BTC/USDC
# Load the given market # Load the given market
market = Market.load(endpoint, market_address, None) market = Market.load(cc, market_address)
asks = market.load_asks() asks = market.load_asks()
# Show all current ask order # Show all current ask order
print("Ask Orders:") print("Ask Orders:")
@ -36,23 +37,6 @@ for bid in bids:
The source of truth of the market address can be found [here](https://github.com/project-serum/serum-js/blob/master/src/tokens_and_markets.ts). Feel free to open a PR if the following addresses needs modification or addition. The source of truth of the market address can be found [here](https://github.com/project-serum/serum-js/blob/master/src/tokens_and_markets.ts). Feel free to open a PR if the following addresses needs modification or addition.
| Currency Pair | Address |
| :-----------: | :------------------------------------------: |
| MSRM/USDT | H4snTKK9adiU15gP22ErfZYtro3aqR9BTMXiH3AwiUTQ |
| MSRM/USDC | 7kgkDyW7dmyMeP8KFXzbcUZz1R2WHsovDZ7n3ihZuNDS |
| BTC/USDT | 8AcVjMG2LTbpkjNoyq8RwysokqZunkjy3d5JDzxC6BJa |
| BTC/USDC | CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq |
| ETH/USDT | HfCZdJ1wfsWKfYP2qyWdXTT5PWAGWFctzFjLH48U1Hsd |
| ETH/USDC | ASKiV944nKg1W9vsf7hf3fTsjawK6DwLwrnB2LH9n61c |
| SRM/USDT | HARFLhSq8nECZk4DVFKvzqXMNMA9a3hjvridGMFizeLa |
| SRM/USDC | 68J6nkWToik6oM9rTatKSR5ibVSykAtzftBUEAvpRsys |
| FTT/USDT | DHDdghmkBhEpReno3tbzBPtsxCt6P3KrMzZvxavTktJt |
| FTT/USDC | FZqrBXz7ADGsmDf1TM9YgysPUfvtG8rJiNUrqDpHc9Au |
| YFI/USDT | 5zu5bTZZvqESAAgFsr12CUMxdQvMrvU9CgvC1GW8vJdf |
| YFI/USDC | FJg9FUtbN3fg3YFbMCFiZKjGh5Bn4gtzxZmtxFzmz9kT |
| LINK/USDT | F5xschQBMpu1gD2q1babYEAVJHR1buj1YazLiXyQNqSW |
| LINK/USDC | 7GZ59DMgJ7D6dfoJTpszPayTRyua9jwcaGJXaRMMF1my |
## Development ## Development
### Setup ### Setup
@ -75,6 +59,12 @@ pipenv install --dev
pipenv shell pipenv shell
``` ```
### Format
```
make format
```
### Lint ### Lint
```sh ```sh

View File

@ -6,7 +6,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from src.market import Market\n", "from pyserum.market import Market\n",
"\n", "\n",
"market = Market.load(\"https://api.mainnet-beta.solana.com\", \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\", None)" "market = Market.load(\"https://api.mainnet-beta.solana.com\", \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\", None)"
] ]
@ -46,7 +46,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from src.market import Market\n", "from pyserum.market import Market\n",
"\n", "\n",
"endpoint = \"https://api.mainnet-beta.solana.com/\"\n", "endpoint = \"https://api.mainnet-beta.solana.com/\"\n",
"market_address = \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\" # Address for BTC/USDC\n", "market_address = \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\" # Address for BTC/USDC\n",

8
pyserum/__init__.py Normal file
View File

@ -0,0 +1,8 @@
"""PySerum."""
import sys
__import__("pkg_resources").declare_namespace("pyserum") # type: ignore
if sys.version_info < (3, 7):
raise EnvironmentError("Python 3.7 or above is required.")

View File

@ -35,9 +35,8 @@ def __from_bytes(
def __parse_queue_item(buffer: Sequence[int], queue_type: QueueType) -> Union[Event, Request]: def __parse_queue_item(buffer: Sequence[int], queue_type: QueueType) -> Union[Event, Request]:
layout = EVENT_LAYOUT if queue_type == QueueType.Event else REQUEST_LAYOUT
parsed_item = layout.parse(buffer)
if queue_type == QueueType.Event: # pylint: disable=no-else-return if queue_type == QueueType.Event: # pylint: disable=no-else-return
parsed_item = EVENT_LAYOUT.parse(buffer)
parsed_event_flags = parsed_item.event_flags parsed_event_flags = parsed_item.event_flags
event_flags = EventFlags( event_flags = EventFlags(
fill=parsed_event_flags.fill, fill=parsed_event_flags.fill,
@ -58,6 +57,7 @@ def __parse_queue_item(buffer: Sequence[int], queue_type: QueueType) -> Union[Ev
client_order_id=parsed_item.client_order_id, client_order_id=parsed_item.client_order_id,
) )
else: else:
parsed_item = REQUEST_LAYOUT.parse(buffer)
parsed_request_flags = parsed_item.request_flags parsed_request_flags = parsed_item.request_flags
request_flags = ReuqestFlags( request_flags = ReuqestFlags(
new_order=parsed_request_flags.new_order, new_order=parsed_request_flags.new_order,
@ -89,5 +89,5 @@ def decode_request_queue(buffer: bytes, history: Optional[int] = None) -> List[R
def decode_event_queue(buffer: bytes, history: Optional[int] = None) -> List[Event]: def decode_event_queue(buffer: bytes, history: Optional[int] = None) -> List[Event]:
header, nodes = __from_bytes(buffer, QueueType.Event, history) header, nodes = __from_bytes(buffer, QueueType.Event, history)
if not header.account_flags.initialized or not header.account_flags.event_queue: if not header.account_flags.initialized or not header.account_flags.event_queue:
raise Exception("Invalid events queue, either not initialized or not a request queue.") raise Exception("Invalid events queue, either not initialized or not a event queue.")
return cast(List[Event], nodes) return cast(List[Event], nodes)

View File

@ -14,8 +14,8 @@ from spl.token.constants import ACCOUNT_LEN, TOKEN_PROGRAM_ID, WRAPPED_SOL_MINT
from spl.token.instructions import CloseAccountParams # type: ignore from spl.token.instructions import CloseAccountParams # type: ignore
from spl.token.instructions import InitializeAccountParams, close_account, initialize_account from spl.token.instructions import InitializeAccountParams, close_account, initialize_account
import src.instructions as instructions import pyserum.instructions as instructions
import src.market.types as t import pyserum.market.types as t
from .._layouts.open_orders import OPEN_ORDERS_LAYOUT from .._layouts.open_orders import OPEN_ORDERS_LAYOUT
from ..enums import OrderType, Side from ..enums import OrderType, Side

View File

@ -2,7 +2,7 @@ from __future__ import annotations
from typing import Iterable, List, Sequence, Union from typing import Iterable, List, Sequence, Union
import src.market.types as t import pyserum.market.types as t
from ..enums import Side from ..enums import Side
from ._internal.slab import Slab, SlabInnerNode, SlabLeafNode from ._internal.slab import Slab, SlabInnerNode, SlabLeafNode

View File

@ -7,7 +7,7 @@ from construct import Container, Struct # type: ignore
from solana.publickey import PublicKey from solana.publickey import PublicKey
from solana.rpc.api import Client from solana.rpc.api import Client
from src.utils import get_mint_decimals, load_bytes_data from pyserum.utils import get_mint_decimals, load_bytes_data
from .._layouts.market import MARKET_LAYOUT from .._layouts.market import MARKET_LAYOUT
from .types import AccountFlags from .types import AccountFlags

0
pyserum/py.typed Normal file
View File

View File

@ -4,7 +4,7 @@ from solana.publickey import PublicKey
from solana.rpc.api import Client from solana.rpc.api import Client
from spl.token.constants import WRAPPED_SOL_MINT # type: ignore # TODO: Remove ignore. from spl.token.constants import WRAPPED_SOL_MINT # type: ignore # TODO: Remove ignore.
from src._layouts.market import MINT_LAYOUT from pyserum._layouts.market import MINT_LAYOUT
def load_bytes_data(addr: PublicKey, conn: Client): def load_bytes_data(addr: PublicKey, conn: Client):

View File

@ -1 +1,29 @@
"""setuptools module for PySerum.""" """setuptools module for PySerum."""
from setuptools import find_packages, setup
setup(
name="pyserum",
version="0.0.1a1",
author="serum-community",
description="""Python client library for interacting with the Project Serum DEX.""",
include_package_data=True,
install_requires=[
"construct>=2.10.56, <3.0.0",
"solana>=0.3.0, <1.0.0",
],
python_requires=">=3.7, <4",
license="MIT",
package_data={"pyserum": ["py.typed"]},
packages=find_packages(exclude=("tests", "test.*")),
url="https://github.com/serum-community/pyserum",
zip_safe=False, # required per mypy
classifiers=[
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
],
)

View File

@ -1 +0,0 @@
"""PySerum."""

View File

@ -5,7 +5,7 @@ from solana.account import Account
from solana.publickey import PublicKey from solana.publickey import PublicKey
from solana.rpc.api import Client from solana.rpc.api import Client
from src.connection import conn from pyserum.connection import conn
@pytest.mark.integration @pytest.mark.integration

View File

@ -5,8 +5,8 @@ from solana.account import Account
from solana.publickey import PublicKey from solana.publickey import PublicKey
from solana.rpc.api import Client from solana.rpc.api import Client
from src.enums import OrderType, Side from pyserum.enums import OrderType, Side
from src.market import Market from pyserum.market import Market
from .utils import confirm_transaction from .utils import confirm_transaction

View File

@ -1,6 +1,6 @@
"""Tests for account flags layout.""" """Tests for account flags layout."""
from src._layouts.account_flags import ACCOUNT_FLAGS_LAYOUT from pyserum._layouts.account_flags import ACCOUNT_FLAGS_LAYOUT
def default_flags(): def default_flags():

View File

@ -1,8 +1,8 @@
"""Tests for instruction layouts.""" """Tests for instruction layouts."""
from solana.publickey import PublicKey from solana.publickey import PublicKey
from src._layouts.instructions import _VERSION, INSTRUCTIONS_LAYOUT, InstructionType from pyserum._layouts.instructions import _VERSION, INSTRUCTIONS_LAYOUT, InstructionType
from src.enums import OrderType, Side from pyserum.enums import OrderType, Side
def assert_parsed_layout(instruction_type, args, raw_bytes): def assert_parsed_layout(instruction_type, args, raw_bytes):

View File

@ -2,8 +2,8 @@
from solana.publickey import PublicKey from solana.publickey import PublicKey
import src.instructions as inlib import pyserum.instructions as inlib
from src.enums import OrderType, Side from pyserum.enums import OrderType, Side
def test_initialize_market(): def test_initialize_market():

View File

@ -4,9 +4,9 @@ import pytest
from construct import Container from construct import Container
from solana.rpc.api import Client from solana.rpc.api import Client
from src.instructions import DEFAULT_DEX_PROGRAM_ID from pyserum.instructions import DEFAULT_DEX_PROGRAM_ID
from src.market import Market, OrderBook, State from pyserum.market import Market, OrderBook, State
from src.market.types import AccountFlags, Order, OrderInfo from pyserum.market.types import AccountFlags, Order, OrderInfo
from .binary_file_path import ASK_ORDER_BIN_PATH from .binary_file_path import ASK_ORDER_BIN_PATH

View File

@ -3,7 +3,7 @@ import base64
import pytest import pytest
from solana.publickey import PublicKey from solana.publickey import PublicKey
from src.open_orders_account import OPEN_ORDERS_LAYOUT, OpenOrdersAccount from pyserum.open_orders_account import OPEN_ORDERS_LAYOUT, OpenOrdersAccount
from .binary_file_path import OPEN_ORDER_ACCOUNT_BIN_PATH from .binary_file_path import OPEN_ORDER_ACCOUNT_BIN_PATH

View File

@ -1,6 +1,6 @@
import base64 import base64
from src.market._internal.queue import decode_event_queue from pyserum.market._internal.queue import decode_event_queue
from .binary_file_path import EVENT_QUEUE_BIN_PATH from .binary_file_path import EVENT_QUEUE_BIN_PATH

View File

@ -2,8 +2,8 @@
import base64 import base64
from src._layouts.slab import ORDER_BOOK_LAYOUT, SLAB_HEADER_LAYOUT, SLAB_LAYOUT, SLAB_NODE_LAYOUT from pyserum._layouts.slab import ORDER_BOOK_LAYOUT, SLAB_HEADER_LAYOUT, SLAB_LAYOUT, SLAB_NODE_LAYOUT
from src.market._internal.slab import Slab from pyserum.market._internal.slab import Slab
from .binary_file_path import ASK_ORDER_BIN_PATH from .binary_file_path import ASK_ORDER_BIN_PATH