Obrigado Michael!! Com os melhores cumprimentos / Best regards / Cordialement / Saludos cordiales Oberdan Costa , PhD oberdan.co...@ufp.edu.pt Tele móvel : +55 98 98802 1333 https://orcid.org/0000-0002-2448-5247 https://www.linkedin.com/in/oberdan-costa-0807572/
Em ter., 14 de nov. de 2023 às 23:43, Michael Merickel <mmeri...@gmail.com> escreveu: > Just fyi there is a pull request on pastedeploy that patches the inspect > issue on 3.12. I’m planning to get that released when I can find time this > week. > > - Michael > > > On Nov 14, 2023, at 15:34, Laurent Daverio <ldave...@gmail.com> wrote: > > > > 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 > . > > -- > 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/7A6B57F4-0DD8-493C-B66C-D0EC9AC34224%40gmail.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/CADST_G9JNu-6VsqWOkq48cmUOHnEJ38o1XrP9jywiSQnP2pw%3DQ%40mail.gmail.com.