Glad to hear that, and many thanks for offering :) I'll let you know if I need.
You just mentioned a database, and it may be totally irrelevant/unrelated, but it occurs to me that SQLAlchemy also has an "inspect" function, which you use for introspecting your database. I do use it, unlike the standard "inspect" :) All the best, Laurent. Le mar. 14 nov. 2023 à 22:29, Oberdan Santos <sc.ober...@gmail.com> a écrit : > > > Thanks for the support. The error is gone, now I can see communication with > the database. > My specialty is developing prediction models (Machine learning). If you need > anything in this field, I am at your disposal. > Em terça-feira, 14 de novembro de 2023 às 17:17:54 UTC-3, Laurent Daverio > escreveu: >> >> Our messages crossed, my previous one contains the answer to your question: >> >> https://github.com/Pylons/pastedeploy/blame/main/src/paste/deploy/util.py#L36 >> >> Le mar. 14 nov. 2023 à 21:13, Oberdan Santos <sc.ob...@gmail.com> a écrit : >> > >> > Checking the literature on some sites, I see that I have two options ( >> > inspect.signature() or inspect.getfullargspec() to solve the problem. The >> > question is: How to use inspect.signature() or the other option, where to >> > change it ? .The following is the function that was throwing error. >> > >> > import inspect >> > import sys >> > >> > try: >> > import importlib.metadata as importlib_metadata # noqa F401 >> > except ImportError: # pragma: no cover >> > # bw-compat shim for py37 >> > import importlib_metadata # noqa F401 >> > >> > >> > def fix_type_error(exc_info, callable, varargs, kwargs): >> > """ >> > Given an exception, this will test if the exception was due to a >> > signature error, and annotate the error with better information if >> > so. >> > >> > Usage:: >> > >> > try: >> > val = callable(*args, **kw) >> > except TypeError: >> > exc_info = fix_type_error(None, callable, args, kw) >> > raise exc_info[0], exc_info[1], exc_info[2] >> > """ >> > if exc_info is None: >> > exc_info = sys.exc_info() >> > if ( >> > exc_info[0] != TypeError >> > or str(exc_info[1]).find('arguments') == -1 >> > or getattr(exc_info[1], '_type_error_fixed', False) >> > ): >> > return exc_info >> > exc_info[1]._type_error_fixed = True >> > argspec = inspect.formatargspec(*inspect.getargspec(callable)) >> > args = ', '.join(map(_short_repr, varargs)) >> > if kwargs and args: >> > args += ', ' >> > if kwargs: >> > kwargs = sorted(kwargs.items()) >> > args += ', '.join(['%s=...' % n for n, v in kwargs]) >> > gotspec = '(%s)' % args >> > msg = f'{exc_info[1]}; got {gotspec}, wanted {argspec}' >> > exc_info[1].args = (msg,) >> > return exc_info >> > >> > >> > >> > Desde já agradeço, >> > ] >> > Oberdan Costa >> > >> > Em terça-feira, 14 de novembro de 2023 às 16:15:50 UTC-3, Oberdan Santos >> > escreveu: >> >> >> >> Thanks again for your attention. I will provide a brief contextualization. >> >> I have a script based on FASTAPI for predicting the risk of chronic >> >> non-communicable diseases to aid clinical decision making in primary >> >> health care (backend), for now I will leave it like that. it works >> >> perfectly. >> >> On the frontend I use streamlit to obtain the results of up to 10 chronic >> >> diseases simultaneously. This ended up growing to include other modules >> >> (routing and intelligent management). At the moment I'm looking for a >> >> robust framework for this application purpose and the pyramid environment >> >> has allowed me to move in this direction (I'm based on cookiecutter) for >> >> my first experiences. I have a modular division already structured. >> >> Now I'm trying to connect to my database structure and I'm encountering >> >> this error when I run my application. From the request: I need help to >> >> take this step and fix this problem. >> >> >> >> Em terça-feira, 14 de novembro de 2023 às 16:00:06 UTC-3, Laurent Daverio >> >> escreveu: >> >>> >> >>> > The application I am requesting support for is based on the Pyramd >> >>> > Cookiecutter application framework. In this sense, my question is >> >>> > pertinent. >> >>> >> >>> Oh, I see why you posted here, sorry then. For my defence, you >> >>> provided no context, no traceback, nothing indicating you were indeed >> >>> referring to Pyramid. You only wrote "When trying to run my code I am >> >>> receiving an error", and your code was only standard Python. >> >>> >> >>> > Why does pyramid continue to carry this module in its base application >> >>> > structures, such as cookiecutter? >> >>> >> >>> Actually, I'm not sure what problem you encountered : >> >>> >> >>> - it could be in the cookiecutter module, which is not related to >> >>> Pyramid at all. It's definitely not a "base application structure" of >> >>> Pyramid. I don't use "cookiecutter" very often, but I'm pretty sure I >> >>> have used it with Python 3.11, and had no problem. >> >>> >> >>> - it could be in the Pyramid scaffold you used, which is indirectly >> >>> related to Pyramid. I haven't used the "official" scaffold in a while, >> >>> but I fail to see why it would create a base application which >> >>> includes the "inspect" module. >> >>> >> >>> - it could be in Pyramid itself. But I would rule out that choice, as >> >>> I use Pyramid with Python 3.11 daily, and the problem doesn't exist >> >>> for me. >> >>> >> >>> When does your problem happen? When you're trying to use cookiecutter, >> >>> or when you try to launch the generated app? >> >>> >> >>> Laurent. >> >>> >> >>> PS: just a clarification in what I wrote previously: standard module >> >>> "inspect" is not deprecated at all, only function "formatargspec" is. >> >>> >> >>> > >> >>> > Em terça-feira, 14 de novembro de 2023 às 15:30:53 UTC-3, Laurent >> >>> > Daverio escreveu: >> >>> >> >> >>> >> Hello, >> >>> >> >> >>> >> a couple of remarks before replying to your question : >> >>> >> >> >>> >> 1/ This list is dedicated to Pylons and Pyramid, so a general question >> >>> >> about the Python standard library is off-topic >> >>> >> 2/ You could have googled "inspect formatargspec" and found answers >> >>> >> 3/ You could have read the documentation of the standard library >> >>> >> >> >>> >> The documentation of "inspect" for Python 3.10 >> >>> >> (https://docs.python.org/3.10/library/inspect.html) states : >> >>> >> >> >>> >> "Deprecated since version 3.5: Use signature() and Signature Object, >> >>> >> which provide a better introspecting API for callables." >> >>> >> >> >>> >> And indeed, if you switch to the Python 3.11 / 3.12 versions of the >> >>> >> docs, you'll find that the function has been removed. You certainly >> >>> >> had a deprecation warning in Python 3.9/3.10, which you ignored >> >>> >> >> >>> >> My $0.02, >> >>> >> >> >>> >> Laurent. >> >>> >> >> >>> >> >> >>> >> Le mar. 14 nov. 2023 à 19:17, Oberdan Santos <sc.ob...@gmail.com> a >> >>> >> écrit : >> >>> >> > >> >>> >> > Hello!! >> >>> >> > When trying to run my code I am receiving an error. >> >>> >> > >> >>> >> > import inspect >> >>> >> > import sys >> >>> >> > >> >>> >> > try: >> >>> >> > import importlib.metadata as importlib_metadata # noqa F401 >> >>> >> > except ImportError: # pragma: no cover >> >>> >> > # bw-compat shim for py37 >> >>> >> > import importlib_metadata # noqa F401 >> >>> >> > >> >>> >> > >> >>> >> > def fix_type_error(exc_info, callable, varargs, kwargs): >> >>> >> > """ >> >>> >> > Given an exception, this will test if the exception was due to a >> >>> >> > signature error, and annotate the error with better information if >> >>> >> > so. >> >>> >> > >> >>> >> > Usage:: >> >>> >> > >> >>> >> > try: >> >>> >> > val = callable(*args, **kw) >> >>> >> > except TypeError: >> >>> >> > exc_info = fix_type_error(None, callable, args, kw) >> >>> >> > raise exc_info[0], exc_info[1], exc_info[2] >> >>> >> > """ >> >>> >> > if exc_info is None: >> >>> >> > exc_info = sys.exc_info() >> >>> >> > if ( >> >>> >> > exc_info[0] != TypeError >> >>> >> > or str(exc_info[1]).find('arguments') == -1 >> >>> >> > or getattr(exc_info[1], '_type_error_fixed', False) >> >>> >> > ): >> >>> >> > return exc_info >> >>> >> > exc_info[1]._type_error_fixed = True >> >>> >> > argspec = inspect.formatargspec(*inspect.getargspec(callable)) >> >>> >> > args = ', '.join(map(_short_repr, varargs)) >> >>> >> > if kwargs and args: >> >>> >> > args += ', ' >> >>> >> > if kwargs: >> >>> >> > kwargs = sorted(kwargs.items()) >> >>> >> > args += ', '.join(['%s=...' % n for n, v in kwargs]) >> >>> >> > gotspec = '(%s)' % args >> >>> >> > msg = f'{exc_info[1]}; got {gotspec}, wanted {argspec}' >> >>> >> > exc_info[1].args = (msg,) >> >>> >> > return exc_info >> >>> >> > >> >>> >> > >> >>> >> > >> >>> >> > ERRO: >> >>> >> > AttributeError: module 'inspect' has no attribute 'formatargspec'. >> >>> >> > Did you mean: 'formatargvalues'? >> >>> >> > >> >>> >> > >> >>> >> > I've tried some changes to the code line, but to no avail. >> >>> >> > argspec = inspect.formatargspec(*inspect.getargspec(callable)) >> >>> >> > Every help is welcome >> >>> >> > >> >>> >> > >> >>> >> > >> >>> >> > -- >> >>> >> > You received this message because you are subscribed to the Google >> >>> >> > Groups "pylons-discuss" group. >> >>> >> > To unsubscribe from this group and stop receiving emails from it, >> >>> >> > send an email to pylons-discus...@googlegroups.com. >> >>> >> > To view this discussion on the web visit >> >>> >> > https://groups.google.com/d/msgid/pylons-discuss/cab4b239-75df-44ba-9d39-4fea371e2b6dn%40googlegroups.com. >> >>> > >> >>> > -- >> >>> > You received this message because you are subscribed to the Google >> >>> > Groups "pylons-discuss" group. >> >>> > To unsubscribe from this group and stop receiving emails from it, send >> >>> > an email to pylons-discus...@googlegroups.com. >> >>> > To view this discussion on the web visit >> >>> > https://groups.google.com/d/msgid/pylons-discuss/82cb0cf3-0b00-4e6c-b788-3c71905f196an%40googlegroups.com. >> > >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "pylons-discuss" group. >> > To unsubscribe from this group and stop receiving emails from it, send an >> > email to pylons-discus...@googlegroups.com. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msgid/pylons-discuss/f175279d-69fc-46fb-81dd-55b88aa93974n%40googlegroups.com. > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pylons-discuss+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/pylons-discuss/c9a5d252-4bc8-471f-98d9-15fa440702bdn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/CAB7cU6w_gUL3gVzP1gKepEPOkD-RaciEMdptrbmKoft6xGSG0w%40mail.gmail.com.