Skip to content

Commit d226c13

Browse files
author
latentvector
committed
test fixes
1 parent e459558 commit d226c13

File tree

6 files changed

+162
-262
lines changed

6 files changed

+162
-262
lines changed

commune/aes.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,9 @@ def decrypt(self, enc):
4141
def _pad(self, s):
4242
return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)
4343

44-
@staticmethod
45-
def _unpad(s):
44+
def _unpad(self, s):
4645
return s[:-ord(s[len(s)-1:])]
47-
48-
46+
4947
@classmethod
5048
def test(cls, data=None, key='dummy'):
5149
import torch

commune/key.py

+1-31
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,6 @@ def rm_key_address(cls, key):
227227
key2address.pop(key, None)
228228
cls.put('key2address', key2address)
229229

230-
231230
@classmethod
232231
def update(cls, **kwargs):
233232
return cls.key2address(update=True,**kwargs)
@@ -502,13 +501,11 @@ def key_exists(cls, key, **kwargs):
502501
if key in addresses:
503502
key_exists = True
504503
return key_exists
505-
506504

507505
@classmethod
508506
def get_key_address(cls, key):
509507
return cls.get_key(key).ss58_address
510508

511-
512509
@classmethod
513510
def rm_key(cls, key=None):
514511

@@ -517,7 +514,6 @@ def rm_key(cls, key=None):
517514
if key not in keys:
518515
raise Exception(f'key {key} not found, available keys: {keys}')
519516
c.rm(key2path[key])
520-
cls.rm_key_address(key)
521517
return {'deleted':[key]}
522518

523519
@property
@@ -537,10 +533,7 @@ def rm_keys(cls, rm_keys, verbose:bool=False):
537533
cls.rm_key(rm_key)
538534

539535
return {'removed_keys':rm_keys}
540-
541-
@classmethod
542-
def rm_all_keys(cls):
543-
return cls.rm_keys(cls.keys())
536+
544537

545538
crypto_types = ['ED25519', 'SR25519', 'ECDSA']
546539

@@ -566,13 +559,11 @@ def crypto_type2name(cls, crypto_type:str):
566559

567560
@classmethod
568561
def resolve_crypto_type(cls, crypto_type):
569-
570562
if isinstance(crypto_type, str):
571563
crypto_type = crypto_type.upper()
572564
crypto_type = cls.crypto_name2type(crypto_type)
573565
elif isinstance(crypto_type, int):
574566
assert crypto_type in list(KeypairType.__dict__.values()), f'crypto_type {crypto_type} not supported'
575-
576567
assert crypto_type in list(KeypairType.__dict__.values()), f'crypto_type {crypto_type} not supported'
577568
return crypto_type
578569

@@ -588,8 +579,6 @@ def new_key(cls,
588579
'''
589580
yo rody, this is a class method you can gen keys whenever fam
590581
'''
591-
mnemonic = kwargs.pop('m', mnemonic)
592-
593582
if verbose:
594583
c.print(f'generating {crypto_type} keypair, {suri}', color='green')
595584

@@ -610,8 +599,6 @@ def new_key(cls,
610599
return key
611600

612601
create = gen = new_key
613-
614-
615602

616603
def to_json(self, password: str = None ) -> dict:
617604
state_dict = self.copy(self.__dict__)
@@ -1275,12 +1262,6 @@ def save(self, path=None):
12751262
c.put_json(path, self.to_json())
12761263
return {'saved':path}
12771264

1278-
def diplicate(self, new_path):
1279-
c.print(f'copying key from {self.path} to {new_path}')
1280-
c.cp(self.path, new_path)
1281-
return {'copied':new_path}
1282-
1283-
12841265

12851266
def __repr__(self):
12861267
return self.__str__()
@@ -1350,17 +1331,6 @@ def duplicate_keys(cls) -> dict:
13501331

13511332
return {k:v for k,v in duplicate_keys.items() if len(v) > 1}
13521333

1353-
@classmethod
1354-
def clean_all_keys(cls):
1355-
key2adress = c.key2address()
1356-
for k,a in key2adress.items():
1357-
if c.key_exists(a):
1358-
c.print(f'removing {a}', color='red')
1359-
c.rm_key(a)
1360-
c.print('cleaning', k, a, c.key_exists(a))
1361-
1362-
1363-
13641334
@classmethod
13651335
def from_private_key(cls, private_key:str):
13661336
return cls(private_key=private_key)

commune/namespace.py

+2-74
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,13 @@ def namespace(cls, search=None,
3636
cls.put(path,namespace)
3737
if search != None:
3838
namespace = {k:v for k,v in namespace.items() if search in k}
39-
40-
namespace = cls.clean_namespace(namespace)
41-
42-
return namespace
43-
44-
@classmethod
45-
def clean_namespace(cls, namespace):
4639
namespace = {k:':'.join(v.split(':')[:-1]) + ':'+ str(v.split(':')[-1]) for k,v in namespace.items()}
4740
namespace = dict(sorted(namespace.items(), key=lambda x: x[0]))
4841
ip = c.ip()
4942
namespace = {k: v.replace(ip, '0.0.0.0') for k,v in namespace.items() }
5043
namespace = { k.replace('"', ''): v for k,v in namespace.items() }
5144
return namespace
45+
5246
@classmethod
5347
def update_namespace(cls, network, netuid=None, timeout=1, search=None, verbose=False):
5448
c.print(f'UPDATING --> NETWORK(network={network} netuid={netuid})', color='blue')
@@ -152,11 +146,6 @@ def modules(cls, network:List=network) -> List[str]:
152146
def addresses(cls, network:str=network, **kwargs) -> List[str]:
153147
return list(cls.namespace(network=network, **kwargs).values())
154148

155-
@classmethod
156-
def module_exists(cls, module:str, network:str=network) -> bool:
157-
namespace = cls.namespace(network=network)
158-
return bool(module in namespace)
159-
160149
@classmethod
161150
def check_servers(self, *args, **kwargs):
162151
servers = c.pm2ls()
@@ -191,44 +180,6 @@ def add_server(cls, address:str, name=None, network:str = 'local',timeout:int=4,
191180

192181
return {'success': True, 'msg': f'Added {address} to {network} modules', 'remote_modules': cls.servers(network=network), 'network': network}
193182

194-
@classmethod
195-
def remote_servers(cls, network:str = 'remote', **kwargs):
196-
return cls.namespace(network=network)
197-
198-
@classmethod
199-
def infos(cls, search=None, network=network, servers=None, features=['key', 'address', 'name'], update:str=True, batch_size = 10, timeout=20, hardware=True, namespace=True, schema=True) -> List[str]:
200-
path = f'infos/{network}'
201-
if not update:
202-
infos = cls.get(path, [])
203-
if update or len(infos) == 0:
204-
infos = []
205-
servers = cls.servers(search=search, network=network) if servers == None else servers
206-
futures = []
207-
infos = []
208-
for s in servers:
209-
kwargs = {'module':s, 'fn':'info', 'network': network, 'hardware': hardware, 'namespace': namespace, 'schema': schema}
210-
future = c.submit(c.call, kwargs=kwargs, return_future=True, timeout=timeout)
211-
futures.append(future)
212-
if len(futures) >= batch_size:
213-
for f in c.as_completed(futures):
214-
215-
result = f.result()
216-
futures.remove(f)
217-
218-
if isinstance(result, dict) and 'error' not in result:
219-
infos.append(result)
220-
221-
break
222-
infos += c.wait(futures, timeout=timeout)
223-
cls.put(path, infos)
224-
infos = [s for s in infos if s != None]
225-
if search != None:
226-
infos = [s for s in infos if 'name' in s and search in s['name']]
227-
228-
if features != None:
229-
infos = [{k:v for k,v in s.items() if k in features} for s in infos]
230-
return infos
231-
232183
@classmethod
233184
def rm_server(cls, name, network:str = 'local', **kwargs):
234185
namespace = cls.namespace(network=network)
@@ -237,7 +188,6 @@ def rm_server(cls, name, network:str = 'local', **kwargs):
237188
if v == name:
238189
name = k
239190
break
240-
241191
if name in namespace:
242192
# reregister
243193
address = cls.get_address(name, network=network)
@@ -253,13 +203,6 @@ def servers(cls, search=None, network:str = 'local', **kwargs):
253203
namespace = cls.namespace(search=search, network=network, **kwargs)
254204
return list(namespace.keys())
255205

256-
@classmethod
257-
def refresh_namespace(cls, network:str):
258-
return cls.put_namespace(network, {})
259-
@classmethod
260-
def network2namespace(self):
261-
return {network: self.namespace(network=network) for network in self.networks()}
262-
all = network2namespace
263206
@classmethod
264207
def server_exists(cls, name:str, network:str = None, prefix_match:bool=False, **kwargs) -> bool:
265208
servers = cls.servers(network=network, **kwargs)
@@ -299,22 +242,7 @@ def server_exists(cls, name:str, network:str = None, prefix_match:bool=False, *
299242
else:
300243
server_exists = bool(name in servers)
301244

302-
return server_exists
303-
304-
@classmethod
305-
def clean(cls, network='local'):
306-
namespace = cls.namespace(network=network)
307-
address2name = {}
308-
309-
for name, address in address2name.items():
310-
if address in address2name.values():
311-
if len(address2name[address]) < len(name):
312-
namespace[address] = name
313-
else:
314-
address2name[address] = name
315-
316-
namespace = {v:k for k,v in address2name.items()}
317-
return namespace
245+
return server_exists
318246

319247
Namespace.run(__name__)
320248

0 commit comments

Comments
 (0)