Module hosh.misc.helper
Just shortcuts
Expand source code
#  Copyright (c) 2021. Davi Pereira dos Santos
#  This file is part of the hosh project.
#  Please respect the license - more about this in the section (*) below.
#
#  hosh is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  hosh is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with hosh.  If not, see <http://www.gnu.org/licenses/>.
#
#  (*) Removing authorship by any means, e.g. by distribution of derived
#  works or verbatim, obfuscated, compiled or rewritten versions of any
#  part of this work is illegal and is unethical regarding the effort and
#  time spent here.
"""Just shortcuts"""
from dataclasses import dataclass
from hosh.hosh_ import Hosh
@dataclass
class Helper:
    """Internal use only.
    Not to be directly instantiated."""
    version: str
    def __call__(self, blob, etype="ordered"):
        return Hosh(blob, etype=etype, version=self.version)
    def u(self, blob):
        return Hosh(blob, etype="unordered", version=self.version)
    def h(self, blob):
        return Hosh(blob, etype="hybrid", version=self.version)
    fromid = Hosh.fromid
    fromn = Hosh.fromnClasses
- class Helper (version: str)
- 
Internal use only. Not to be directly instantiated. Expand source code@dataclass class Helper: """Internal use only. Not to be directly instantiated.""" version: str def __call__(self, blob, etype="ordered"): return Hosh(blob, etype=etype, version=self.version) def u(self, blob): return Hosh(blob, etype="unordered", version=self.version) def h(self, blob): return Hosh(blob, etype="hybrid", version=self.version) fromid = Hosh.fromid fromn = Hosh.fromnClass variables- var version : str
 Static methods- def fromid(id)
- 
Create an element from a textual id. Usage: >>> a = Hosh.fromid("abcdefabcdefabcdefabcdefabcdefab") >>> a.n 1094566309952642687224764830259410933250743749332933330234 >>> a.cells [748932665, 516513868, 468764361, 3316970622, 2727293743, 316029245] >>> a.etype 'ordered' >>> bid = a.id[:2] + "_" + a.id[3:] >>> bid 'ab_defabcdefabcdefabcdefabcdefab' >>> b = Hosh.fromid(bid) >>> b.id 'ab_defabcdefabcdefabcdefabcdefab' >>> b.n 59377482839139050825606534576063885287 >>> b.cells [0, 0, 749449200, 1774140626, 3139018916, 292801225] >>> b.etype 'hybrid' >>> Hosh.fromid("0000000000000000000000000000000000000000000000000000000000000000") == 0 TrueParameters- id
 Parameters- id
 Returns- A new Hosh object
 Expand source code@classmethod def fromid(cls, id): """ Create an element from a textual id. Usage: >>> a = Hosh.fromid("abcdefabcdefabcdefabcdefabcdefab") >>> a.n 1094566309952642687224764830259410933250743749332933330234 >>> a.cells [748932665, 516513868, 468764361, 3316970622, 2727293743, 316029245] >>> a.etype 'ordered' >>> bid = a.id[:2] + "_" + a.id[3:] >>> bid 'ab_defabcdefabcdefabcdefabcdefab' >>> b = Hosh.fromid(bid) >>> b.id 'ab_defabcdefabcdefabcdefabcdefab' >>> b.n 59377482839139050825606534576063885287 >>> b.cells [0, 0, 749449200, 1774140626, 3139018916, 292801225] >>> b.etype 'hybrid' >>> Hosh.fromid("0000000000000000000000000000000000000000000000000000000000000000") == 0 True Parameters ---------- id Parameters ---------- id Returns ------- A new Hosh object """ if len(id) not in groups: raise WrongIdentifier(f"Wrong identifier length: {len(id)} id:[{id}]") return Hosh(cells_fromid(id, p=groups[len(id)].p), version=groups[len(id)])
- def fromn(n: int, version=Group(p=1099511627689, p4=1461501636868331575725436266114840805196834679841, p6=1766847063939562670646036165286872353986524172769430561878277294118845361, digits=40, bytes=30, firstp='0_100000000_____________________________', lastp='f_8afffffff_____________________________', firstp4='00_1000000000000000000000000000000000000', lastp4='.._87c2a630003eec7dffff561b0000004aeffff', firstp6='1000000000000000000000000000000000000000', lastp6='g-8KOjCQREq2Vz8VTc30gLMd..vvX6000ov.....'))
- 
Create a Hosh object representing the given int. Default 'p' is according to version UT64.4. Usage: >>> h = Hosh.fromn(7647544756746324134134) >>> h.id '00_e49c1c505dcd0039e91000000000000000000'Parameters- n
- version
 Returns- A new Hosh object
 Expand source code@classmethod def fromn(cls, n: int, version=UT40_4): """ Create a Hosh object representing the given int. Default 'p' is according to version UT64.4. Usage: >>> h = Hosh.fromn(7647544756746324134134) >>> h.id '00_e49c1c505dcd0039e91000000000000000000' Parameters ---------- n version Returns ------- A new Hosh object """ p, order = version.p, version.p6 if n > order: raise ElementTooHigh(f"Element outside allowed range: {n} >= {order}") return Hosh(int2cells(n, p), version=version)
 Methods- def h(self, blob)
- 
Expand source codedef h(self, blob): return Hosh(blob, etype="hybrid", version=self.version)
- def u(self, blob)
- 
Expand source codedef u(self, blob): return Hosh(blob, etype="unordered", version=self.version)