Best Python code snippet using fMBT_python
test_funcspec.py
Source:test_funcspec.py  
...172                # special check for dependencies list173                extract_deps = lambda s: re.findall(r"\('\w+', '\w+'\)", s)174                assert set(extract_deps(s)) == set(extract_deps(spec[i]))175def test_funcspecs_python(fsargs):176    _compare_with_file(RHSfuncSpec(fsargs)._infostr(verbose=2), "funcspec_python.out")177def test_funcspec_recreate(fsargs):178    del fsargs['codeinsert_start']179    del fsargs['codeinsert_end']180    pyspec = RHSfuncSpec(fsargs)181    cspec_recreated = pyspec.recreate('c')182    fsargs['targetlang'] = 'c'183    cspec = RHSfuncSpec(fsargs)184    assert cspec._infostr(verbose=2) == cspec_recreated._infostr(verbose=2)185def test_funcspecs_c(fsargs):186    fsargs['targetlang'] = 'c'187    fsargs['codeinsert_start'] = "fprintf('code inserted at start\n')"188    fsargs['codeinsert_end'] = "fprintf('code inserted at end\n')"...funcspec.py
Source:funcspec.py  
12from tools.utils.ictypes import canonical_ictype, native_ictype, unstringed_ictype, VALID_ICTYPES3from tools.utils.platform import ICTYPE_2_MGDTYPE456#==========================================================================78class _FuncSpec(tuple):9    10    @property11    def ret(self):12        return self[0]13    14    @property15    def args(self):16        return self[1:]1718    @property19    def argspec(self):20        return ''.join(self.args) or 'void'21    22    @property23    def mgd_ret(self):24        return ICTYPE_2_MGDTYPE[self.ret]2526    @property27    def mgd_arglist(self):28        return ', '.join(29            '%s arg%d' % (ICTYPE_2_MGDTYPE[arg], i)30            for (i, arg) in enumerate(self.args))3132    @property33    def canonical(self):34        return _FuncSpec(map(canonical_ictype, self))3536    @property37    def native(self):38        return _FuncSpec(map(native_ictype, self))3940    @property41    def unstringed(self):42        return _FuncSpec(map(unstringed_ictype, self))4344    def withargs(self, newargs):45        return _FuncSpec(self[:1] + tuple(newargs))4647    def __str__(self):48        return '_'.join((self.ret, self.argspec))4950    def __repr__(self):51        return 'FuncSpec("%s")' % self525354#==========================================================================5556def _complain(s):57    raise Exception('could not get ictype from "%s"' % s)5859def _slurp_argspec(argspec):60    while len(argspec):61        for key in VALID_ICTYPES:62            if argspec.startswith(key):63                argspec = argspec[len(key):]64                yield key65                break66        else:67            _complain(argspec)6869def _unpack_argspec(argspec):70    if argspec == 'void':71        return ()72    return tuple(_slurp_argspec(argspec))7374def _unpack_retargs(ret, args):75    return (ret,) + tuple(args)7677def _unpack_funcspec(funcspec):78    ret, argspec = funcspec.split('_')79    if ret not in VALID_ICTYPES:80        _complain(ret)81    args = _unpack_argspec(argspec)82    return _unpack_retargs(ret, args)8384_unpack_nothing = lambda x: x8586_UNPACKERS = {87    (str,):         _unpack_funcspec,88    (str, list):    _unpack_retargs,89    (str, tuple):   _unpack_retargs,90}9192def _get_funcspec_data(input):93    types = tuple(map(type, input))94    unpack = _UNPACKERS.get(types, _unpack_nothing)95    return unpack(*input)969798#==========================================================================99100def FuncSpec(*args):101    return _FuncSpec(_get_funcspec_data(args)).canonical102    103
...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
