Various changes in response to RFCs.

pull/1451/head
jMyles 2020-01-03 18:02:35 -08:00
parent abf485a2b7
commit 57bd9007ce
3 changed files with 19 additions and 18 deletions

View File

@ -76,7 +76,7 @@ class Character(Learner):
def __init__(self,
domains: Set = None,
node_class: object = None,
known_node_class: object = None,
is_me: bool = True,
federated_only: bool = False,
checksum_address: str = NO_BLOCKCHAIN_CONNECTION.bool_value(False),
@ -118,17 +118,17 @@ class Character(Learner):
# Operating Mode
if is_me:
if not node_class:
if not known_node_class:
# Once in a while, in tests or demos, we init a plain Character who doesn't already know about its node class.
from nucypher.characters.lawful import Ursula
node_class = Ursula
known_node_class = Ursula
# If we're federated only, we assume that all other nodes in our domain are as well.
node_class.set_federated_mode(federated_only)
known_node_class.set_federated_mode(federated_only)
else:
# What an awful hack. The last convulsions of #466.
# TODO: Anything else.
with suppress(AttributeError):
federated_only = node_class._federated_only_instances
federated_only = known_node_class._federated_only_instances
if federated_only:
if registry or provider_uri:
@ -201,7 +201,7 @@ class Character(Learner):
Learner.__init__(self,
domains=domains,
network_middleware=self.network_middleware,
node_class=node_class,
node_class=known_node_class,
*args, **kwargs)
#

View File

@ -128,7 +128,7 @@ class Alice(Character, BlockchainPolicyAuthor):
self.n = STRANGER_ALICE
Character.__init__(self,
node_class=Ursula,
known_node_class=Ursula,
is_me=is_me,
federated_only=federated_only,
checksum_address=checksum_address,
@ -463,7 +463,7 @@ class Bob(Character):
self.evidence = evidence
def __init__(self, controller: bool = True, *args, **kwargs) -> None:
Character.__init__(self, node_class=Ursula, *args, **kwargs)
Character.__init__(self, known_node_class=Ursula, *args, **kwargs)
if controller:
self.controller = self._controller_class(bob=self)
@ -848,7 +848,7 @@ class Ursula(Teacher, Character, Worker):
abort_on_learning_error=abort_on_learning_error,
known_nodes=known_nodes,
domains=domains,
node_class=Ursula,
known_node_class=Ursula,
**character_kwargs)
#
@ -1125,7 +1125,7 @@ class Ursula(Teacher, Character, Worker):
seednode_stake = staking_agent.get_locked_tokens(staker_address=checksum_address)
if seednode_stake < minimum_stake:
raise Learner.NotATeacher(
f"{checksum_address} is staking less then the specified minimum stake value ({minimum_stake}).")
f"{checksum_address} is staking less than the specified minimum stake value ({minimum_stake}).")
# OK - everyone get out
temp_node_storage.forget()
@ -1323,7 +1323,7 @@ class Enrico(Character):
# Encrico never uses the blockchain, hence federated_only)
kwargs['federated_only'] = True
kwargs['node_class'] = Ursula
kwargs['known_node_class'] = Ursula
super().__init__(*args, **kwargs)
if controller:

View File

@ -913,7 +913,8 @@ class Learner:
# Do we want both of these to be decided by `eager`?
eager=eager,
grow_node_sprout_into_node=eager)
remembered.append(node_or_false)
if node_or_false is not False:
remembered.append(node_or_false)
#
# Report Failure
@ -958,11 +959,11 @@ class Learner:
learning_round_log_message = "Learning round {}. Teacher: {} knew about {} nodes, {} were new."
# self.log.info(learning_round_log_message.format(self._learning_round,
# current_teacher,
# len(node_list),
# len(new_nodes)))
if any(remembered):
self.log.info(learning_round_log_message.format(self._learning_round,
current_teacher,
len(sprouts),
len(remembered)))
if remembered:
self.known_nodes.record_fleet_state()
return sprouts
@ -1353,7 +1354,7 @@ class Teacher:
def nickname_icon_html(self):
icon_template = """
<div class="nucypher-nickname-icon" style="border-top-color:{first_color}; border-left-color:{first_color}; border-bottom-color:{second_color}; border-right-color:{second_color};">
<span class="small">{node_class} v{version}</span>
<span class="small">{known_node_class} v{version}</span>
<div class="symbols">
<span class="single-symbol" style="color: {first_color}">{first_symbol}&#xFE0E;</span>
<span class="single-symbol" style="color: {second_color}">{second_symbol}&#xFE0E;</span>