Skip to content

Commit

Permalink
Merge pull request #69 from nucypher/development
Browse files Browse the repository at this point in the history
Porter Updates associated with `nucypher` 7.3.0
  • Loading branch information
derekpierre authored May 8, 2024
2 parents 7abb670 + dfd5236 commit 175bb7a
Show file tree
Hide file tree
Showing 16 changed files with 3,118 additions and 2,787 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: Upload test coverage to Codecov
if: matrix.python-version == '3.9'
uses: codecov/codecov-action@v3.1.1
uses: codecov/codecov-action@v4.3.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
Expand Down
4 changes: 2 additions & 2 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ name = "pypi"
python_version = "3"

[packages]
nucypher = {git = "https://github.com/nucypher/nucypher.git", ref = "v7.1.x"}
nucypher = {git = "https://github.com/nucypher/nucypher.git", ref = "v7.3.0"}
nucypher-core = "==0.13.0" # must be the same as nucypher
flask-cors = "*"
prometheus-flask-exporter = "*"

[dev-packages]
nucypher = {git = "https://github.com/nucypher/nucypher.git", editable = true, ref = "v7.1.x", extras = ["dev"]} # needed for testerchain, and must be editable
nucypher = {git = "https://github.com/nucypher/nucypher.git", editable = true, ref = "v7.3.0", extras = ["dev"]} # needed for testerchain, and must be editable
pytest = "<7" # match with nucypher/nucypher
pytest-cov = "*"
pytest-mock = "*"
Expand Down
5,107 changes: 2,605 additions & 2,502 deletions Pipfile.lock

Large diffs are not rendered by default.

269 changes: 139 additions & 130 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,172 +1,181 @@
-i https://pypi.python.org/simple
aiohttp==3.9.1; python_version >= '3.8'
aiosignal==1.3.1; python_version >= '3.7'
aiohttp==3.9.4rc0; python_version >= '3.8' and python_version < '4'
aiosignal==1.3.1; python_version >= '3.8' and python_version < '4'
annotated-types==0.6.0
ape-solidity==0.6.11
appdirs==1.4.4
ape-solidity==0.7.1
appdirs==1.4.4; python_version >= '3.8' and python_version < '4'
appnope==0.1.4
asttokens==2.4.1
attrs==23.1.0; python_version >= '3.7'
autobahn==23.6.2; python_version >= '3.9'
automat==22.10.0
async-timeout==4.0.3; python_version >= '3.8' and python_version < '3.11'
attrs==23.2.0; python_version >= '3.8' and python_version < '4'
atxm==0.3.0; python_version >= '3.8' and python_version < '4'
autobahn==23.1.2; python_version >= '3.8' and python_version < '4'
automat==22.10.0; python_version >= '3.8' and python_version < '4'
backcall==0.2.0
base58==1.0.3
bitarray==2.9.0
blinker==1.7.0; python_version >= '3.8'
bytestring-splitter==2.4.1
bitarray==2.9.2; python_version >= '3.8' and python_version < '4'
blinker==1.7.0; python_version >= '3.8' and python_version < '4'
bytestring-splitter==2.4.1; python_version >= '3.8' and python_version < '4'
cached-property==1.5.2
certifi==2023.11.17; python_version >= '3.6'
cffi==1.16.0; python_version >= '3.8'
cfgv==3.4.0
charset-normalizer==3.3.2; python_full_version >= '3.7.0'
click==8.1.7; python_version >= '3.7'
colorama==0.4.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
commonmark==0.9.1
constant-sorrow==0.1.0a9; python_version >= '3'
constantly==23.10.4; python_version >= '3.8'
coverage[toml]==7.3.4; python_version >= '3.8'
cryptography==41.0.7; python_version >= '3.7'
cytoolz==0.12.2; implementation_name == 'cpython'
certifi==2024.2.2; python_version >= '3.8' and python_version < '4'
cffi==1.16.0; python_version >= '3.8' and python_version < '4'
cfgv==3.4.0; python_version >= '3.8'
charset-normalizer==3.3.2; python_version >= '3.8' and python_version < '4'
click==8.1.7; python_version >= '3.8' and python_version < '4'
colorama==0.4.6; python_version >= '3.8' and python_version < '4'
constant-sorrow==0.1.0a9; python_version >= '3.8' and python_version < '4'
constantly==23.10.4; python_version >= '3.8' and python_version < '4'
coverage[toml]==7.4.4; python_version >= '3.8'
cryptography==42.0.5; python_version >= '3.8' and python_version < '4'
cytoolz==0.12.3; python_version >= '3.8' and python_version < '4' and implementation_name == 'cpython'
dataclassy==0.11.1
dateparser==1.2.0; python_version >= '3.7'
dateparser==1.2.0; python_version >= '3.8' and python_version < '4'
decorator==5.1.1
deprecated==1.2.14
distlib==0.3.8
eip712==0.2.2
eth-abi==4.2.1; python_version < '4' and python_full_version >= '3.7.2'
eth-account==0.8.0; python_version >= '3.6' and python_version < '4'
eth-ape==0.6.27
eip712==0.2.5
eth-abi==4.2.1; python_version >= '3.8' and python_version < '4'
eth-account==0.10.0; python_version >= '3.8' and python_version < '4'
eth-ape==0.7.13
eth-bloom==3.0.0
eth-hash[pycryptodome]==0.5.2; python_version >= '3.7' and python_version < '4'
eth-keyfile==0.6.1
eth-keys==0.4.0
eth-pydantic-types==0.1.0a5
eth-rlp==0.3.0; python_version >= '3.7' and python_version < '4'
eth-tester==0.9.1b1; python_version < '4' and python_full_version >= '3.6.8'
eth-typing==3.5.2; python_version < '4' and python_full_version >= '3.7.2'
eth-utils==2.3.1; python_version >= '3.7' and python_version < '4'
ethpm-types==0.5.11
evm-trace==0.1.2
eth-hash[pycryptodome]==0.7.0; python_version >= '3.8' and python_version < '4'
eth-keyfile==0.8.0; python_version >= '3.8' and python_version < '4'
eth-keys==0.4.0; python_version >= '3.8' and python_version < '4'
eth-pydantic-types==0.1.0
eth-rlp==1.0.1; python_version >= '3.8' and python_version < '4'
eth-tester[py-evm]==0.9.1b2
eth-typing==3.5.2; python_version >= '3.8' and python_version < '4'
eth-utils==2.3.1; python_version >= '3.8' and python_version < '4'
ethpm-types==0.6.9
evm-trace==0.1.3
evmchains==0.0.6
executing==2.0.1
filelock==3.13.1
flask==3.0.0; python_version >= '3.8'
frozenlist==1.4.1; python_version >= '3.8'
greenlet==3.0.2
hendrix==4.0.0
hexbytes==0.3.1; python_version >= '3.7' and python_version < '4'
humanize==4.9.0; python_version >= '3.8'
hyperlink==21.0.0
identify==2.5.33
idna==3.6; python_version >= '3.5'
filelock==3.13.4
flask==3.0.3; python_version >= '3.8' and python_version < '4'
frozenlist==1.4.1; python_version >= '3.8' and python_version < '4'
greenlet==3.0.3
hendrix==5.0.0; python_version >= '3.8' and python_version < '4'
hexbytes==0.3.1; python_version >= '3.8' and python_version < '4'
humanize==4.9.0; python_version >= '3.8' and python_version < '4'
hyperlink==21.0.0; python_version >= '3.8' and python_version < '4'
identify==2.5.35; python_version >= '3.8'
idna==3.7; python_version >= '3.8' and python_version < '4'
ijson==3.2.3
importlib-metadata==7.0.0
incremental==22.10.0
iniconfig==2.0.0
ipython==8.18.1
itsdangerous==2.1.2; python_version >= '3.7'
importlib-metadata==7.1.0; python_version >= '3.8' and python_version < '3.10'
incremental==22.10.0; python_version >= '3.8' and python_version < '4'
iniconfig==2.0.0; python_version >= '3.7'
ipython==8.12.3
itsdangerous==2.1.2; python_version >= '3.8' and python_version < '4'
jedi==0.19.1
jinja2==3.1.2; python_version >= '3.7'
jsonschema==4.20.0; python_version >= '3.8'
jsonschema-specifications==2023.11.2; python_version >= '3.8'
jinja2==3.1.3; python_version >= '3.8' and python_version < '4'
jsonschema==4.21.1; python_version >= '3.8' and python_version < '4'
jsonschema-specifications==2023.12.1; python_version >= '3.8' and python_version < '4'
lazyasd==0.1.4
lru-dict==1.2.0
mako==1.3.0; python_version >= '3.8'
markupsafe==2.1.3; python_version >= '3.7'
marshmallow==3.20.1; python_version >= '3.8'
matplotlib-inline==0.1.6
maya==0.6.1
mnemonic==0.20; python_version >= '3.5'
lru-dict==1.2.0; python_version >= '3.8' and python_version < '4'
mako==1.3.3; python_version >= '3.8' and python_version < '4'
markdown-it-py==3.0.0
markupsafe==2.1.5; python_version >= '3.8' and python_version < '4'
marshmallow==3.21.1; python_version >= '3.8' and python_version < '4'
matplotlib-inline==0.1.7
maya==0.6.1; python_version >= '3.8' and python_version < '4'
mdurl==0.1.2
mnemonic==0.20; python_version >= '3.8' and python_version < '4'
morphys==1.0
msgpack==1.0.7; python_version >= '3.8'
msgpack-python==0.5.6
msgspec==0.18.5
multidict==6.0.4; python_version >= '3.7'
msgpack-python==0.5.6; python_version >= '3.8' and python_version < '4'
msgspec==0.18.6
multidict==6.0.5; python_version >= '3.8' and python_version < '4'
mypy-extensions==1.0.0
nodeenv==1.8.0
nucypher@ git+https://github.com/nucypher/nucypher.git@2ae6ce85b087a0bd1ea430f26902beb123120dbc
nodeenv==1.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'
nucypher@ git+https://github.com/nucypher/nucypher.git@30f1fabf5afeee1bf65ecf2ed56d11a7c87e9ef5
nucypher-core==0.13.0
numpy==1.26.2
packaging==23.2; python_version >= '3.7'
numpy==1.26.4
packaging==23.2; python_version >= '3.8' and python_version < '4'
pandas==1.5.3
parsimonious==0.9.0
parso==0.8.3
pendulum==3.0.0; python_version >= '3.8'
parsimonious==0.9.0; python_version >= '3.8' and python_version < '4'
parso==0.8.4
pendulum==3.0.0; python_version >= '3.8' and python_version < '4'
pexpect==4.9.0
platformdirs==4.1.0
pluggy==1.3.0
pre-commit==3.6.0; python_version >= '3.9'
prometheus-client==0.19.0; python_version >= '3.8'
pickleshare==0.7.5
platformdirs==4.2.0
pluggy==1.4.0; python_version >= '3.8'
pre-commit==2.21.0; python_version >= '3.7'
prometheus-client==0.20.0; python_version >= '3.8' and python_version < '4'
prompt-toolkit==3.0.43
protobuf==4.25.1; python_version >= '3.8'
protobuf==5.26.1; python_version >= '3.8' and python_version < '4'
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
py==1.11.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
py-cid==0.3.0
py-ecc==6.0.0
py-evm==0.7.0a4
py-geth==3.13.0
py-geth==4.4.0
py-multibase==1.0.3
py-multicodec==0.2.1
py-multihash==0.2.3
py-solc-x==2.0.2
pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
pyasn1-modules==0.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
pychalk==2.0.1
pycparser==2.21
pycryptodome==3.19.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
pydantic==2.5.2
pydantic-core==2.14.5
pyasn1==0.6.0; python_version >= '3.8' and python_version < '4'
pyasn1-modules==0.4.0; python_version >= '3.8' and python_version < '4'
pychalk==2.0.1; python_version >= '3.8' and python_version < '4'
pycparser==2.22; python_version >= '3.8' and python_version < '4'
pycryptodome==3.20.0; python_version >= '3.8' and python_version < '4'
pydantic==2.5.3
pydantic-core==2.14.6
pydantic-settings==2.2.1
pyethash==0.1.27
pygithub==1.59.1
pygments==2.17.2
pyjwt[crypto]==2.8.0
pynacl==1.5.0; python_version >= '3.6'
pyopenssl==23.3.0; python_version >= '3.7'
pynacl==1.5.0; python_version >= '3.8' and python_version < '4'
pyopenssl==24.1.0; python_version >= '3.8' and python_version < '4'
pytest==6.2.5; python_version >= '3.6'
pytest-cov==4.1.0; python_version >= '3.7'
pytest-mock==3.12.0; python_version >= '3.8'
pytest-cov==5.0.0; python_version >= '3.8'
pytest-mock==3.14.0; python_version >= '3.8'
pytest-timeout==2.2.0
pytest-twisted==1.14.0
pytest-twisted==1.14.1
python-baseconv==1.2.2
python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
pytz==2023.3.post1
pyunormalize==15.1.0; python_version >= '3.6'
pyyaml==6.0.1
referencing==0.32.0; python_version >= '3.8'
regex==2023.10.3; python_version >= '3.7'
requests==2.31.0; python_version >= '3.7'
rich==12.6.0
rlp==3.0.0
rpds-py==0.15.2; python_version >= '3.8'
python-dateutil==2.9.0.post0; python_version >= '3.8' and python_version < '4'
python-dotenv==1.0.1
python-statemachine==2.1.2; python_version >= '3.8' and python_version < '3.13'
pytz==2024.1; python_version >= '3.8' and python_version < '4'
pyunormalize==15.1.0; python_version >= '3.8' and python_version < '4'
pyyaml==6.0.1; python_version >= '3.6'
referencing==0.34.0; python_version >= '3.8' and python_version < '4'
regex==2023.12.25; python_version >= '3.8' and python_version < '4'
requests==2.31.0; python_version >= '3.8' and python_version < '4'
rich==13.7.1
rlp==3.0.0; python_version >= '3.8' and python_version < '4'
rpds-py==0.18.0; python_version >= '3.8' and python_version < '4'
safe-pysha3==1.0.4
semantic-version==2.10.0; python_version >= '2.7'
sentry-sdk==1.39.2
service-identity==23.1.0; python_version >= '3.8'
setuptools==69.0.2; python_version >= '3.8'
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
snaptime==0.2.4
semantic-version==2.10.0
service-identity==24.1.0; python_version >= '3.8' and python_version < '4'
setuptools==69.2.0; python_version >= '3.8' and python_version < '4'
six==1.16.0; python_version >= '3.8' and python_version < '4'
snaptime==0.2.4; python_version >= '3.8' and python_version < '4'
sortedcontainers==2.4.0
sqlalchemy==2.0.23
sqlalchemy==2.0.29
stack-data==0.6.3
tabulate==0.9.0; python_version >= '3.7'
time-machine==2.13.0; implementation_name != 'pypy'
toml==0.10.2
toolz==0.12.0; python_version >= '3.5'
tqdm==4.66.1
traitlets==5.14.0
tabulate==0.9.0; python_version >= '3.8' and python_version < '4'
time-machine==2.14.1; python_version >= '3.8' and python_version < '4'
toml==0.10.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
tomli==2.0.1
toolz==0.12.1; python_version >= '3.8' and python_version < '4'
tqdm==4.66.2
traitlets==5.14.2
trie==2.2.0
twisted==23.10.0; python_full_version >= '3.8.0'
txaio==23.1.1; python_version >= '3.7'
typing-extensions==4.9.0; python_version >= '3.8'
tzdata==2023.3; python_version >= '2'
tzlocal==5.2; python_version >= '3.8'
urllib3==1.26.18; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
twisted==24.3.0; python_version >= '3.8' and python_version < '4'
txaio==23.1.1; python_version >= '3.8' and python_version < '4'
typing-extensions==4.11.0; python_version >= '3.8' and python_version < '4'
tzdata==2024.1; python_version >= '3.8' and python_version < '4'
tzlocal==5.2; python_version >= '3.8' and python_version < '4'
urllib3==2.2.0; python_version >= '3.8' and python_version < '4'
varint==1.0.2
virtualenv==20.25.0
watchdog==3.0.0; python_version >= '3.7'
wcwidth==0.2.12
web3==6.13.0; python_full_version >= '3.7.2'
websockets==12.0; python_version >= '3.8'
werkzeug==3.0.1; python_version >= '3.8'
virtualenv==20.25.1; python_version >= '3.7'
watchdog==3.0.0; python_version >= '3.8' and python_version < '4'
wcwidth==0.2.13
web3==6.15.1; python_version >= '3.8' and python_version < '4'
websockets==12.0; python_version >= '3.8' and python_version < '4'
werkzeug==3.0.2; python_version >= '3.8' and python_version < '4'
wrapt==1.16.0
yarl==1.9.4; python_version >= '3.7'
zipp==3.17.0
zope-interface==6.1; python_version >= '3.7'
yarl==1.9.4; python_version >= '3.8' and python_version < '4'
zipp==3.18.1; python_version >= '3.8' and python_version < '3.10'
zope-interface==6.2; python_version >= '3.8' and python_version < '4'
6 changes: 6 additions & 0 deletions porter/fields/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ def _validate(self, value):
raise InvalidInputData(f"{self.name} must be a positive integer.")


class NonNegativeInteger(Integer):
def _validate(self, value):
if value < 0:
raise InvalidInputData(f"{self.name} must be a non-negative integer.")


class Base64BytesRepresentation(BaseField, fields.Field):
"""Serializes/Deserializes any object's byte representation to/from bae64."""
def _serialize(self, value, attr, obj, **kwargs):
Expand Down
4 changes: 4 additions & 0 deletions porter/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,14 @@ def get_ursulas(
exclude_ursulas: Optional[List[ChecksumAddress]] = None,
include_ursulas: Optional[List[ChecksumAddress]] = None,
timeout: Optional[int] = None,
duration: Optional[int] = None,
) -> Dict:
ursulas_info = self.implementer.get_ursulas(
quantity=quantity,
exclude_ursulas=exclude_ursulas,
include_ursulas=include_ursulas,
timeout=timeout,
duration=duration,
)

response_data = {"ursulas": ursulas_info} # list of UrsulaInfo objects
Expand Down Expand Up @@ -101,12 +103,14 @@ def bucket_sampling(
random_seed: Optional[int] = None,
exclude_ursulas: Optional[List[ChecksumAddress]] = None,
timeout: Optional[int] = None,
duration: Optional[int] = None,
) -> Dict:
ursulas, block_number = self.implementer.bucket_sampling(
quantity=quantity,
random_seed=random_seed,
exclude_ursulas=exclude_ursulas,
timeout=timeout,
duration=duration,
)

response_data = {"ursulas": ursulas, "block_number": block_number}
Expand Down
Loading

0 comments on commit 175bb7a

Please sign in to comment.