Re: 'Psycopg2.errors' not referenced in packaged
От | Daniele Varrazzo |
---|---|
Тема | Re: 'Psycopg2.errors' not referenced in packaged |
Дата | |
Msg-id | CA+mi_8aabLpkoPxTTMXCmbcGVkLFPpr6heCYju905=O9m9782Q@mail.gmail.com обсуждение исходный текст |
Ответ на | 'Psycopg2.errors' not referenced in packaged (Patrick Starrenburg <patrick.starrenburg@gmail.com>) |
Список | psycopg |
On Thu, 19 Nov 2020 at 15:42, Patrick Starrenburg <patrick.starrenburg@gmail.com> wrote: > I am using psycopg2 in a Django app. In my code I am checking for various exceptions, one of which is foreign key violations. > > I see in the psycopg2 docs https://www.psycopg.org/docs/errors.html that ForeignKeyViolation > is under the base IntegrityError exception. I would like to be able to specifically catch, and respond to the ForeignKeyViolationerror. I am coding using the recommendation in the docs (below). > > It is working (a forced FK violation is specifically caught) my question is though that in my IDE (PyCharm) it reportsthat it cannot find the reference 'errors' and I cannot use dotted links to drill down to the errors.ForeignKeyViolationfunction. > > I can type psycopg2.IntegrityError and reference to it is found (and I see that it is listed in the __init.py__ file). > > When I Google this some say it is a PyCharm bug, some say that PyCharm is following the Python package convention. Yes, it is a PyCharm shortcoming: the exception is there: >>> import psycopg2.errors >>> psycopg2.errors.ForeignKeyViolation psycopg2.errors.ForeignKeyViolation The exceptions are defined in the C module, but they are exposed in the errors module. If you look at the source code for the module, it appears mostly empty: the exceptions are added there when the psycopg2._psycopg internal module is imported. Personally this is good enough: the module works as expected for all Python code; supporting PyCharm is not mandatory as far as I'm concerned. I am happy to receive patches to make PyCharm work better, but working on it myself isn't my priority now. -- Daniele
В списке psycopg по дате отправления: