public inbox for [email protected]
help / color / mirror / Atom feedFrom: Daniele Varrazzo <[email protected]>
To: Patrick Starrenburg <[email protected]>
Cc: [email protected]
Subject: Re: 'Psycopg2.errors' not referenced in packaged
Date: Thu, 19 Nov 2020 16:37:51 +0000
Message-ID: <CA+mi_8aabLpkoPxTTMXCmbcGVkLFPpr6heCYju905=O9m9782Q@mail.gmail.com> (raw)
In-Reply-To: <CA+6L-Z9b1p5Xu5P_24GjGv-X1yRdR-ufqehSLGYu2QUMJmXp8Q@mail.gmail.com>
References: <CA+6L-Z9b1p5Xu5P_24GjGv-X1yRdR-ufqehSLGYu2QUMJmXp8Q@mail.gmail.com>
On Thu, 19 Nov 2020 at 15:42, Patrick Starrenburg
<[email protected]> 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 ForeignKeyViolation error. 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 reports that it cannot find the reference 'errors' and I cannot use dotted links to drill down to the errors.ForeignKeyViolation function.
>
> 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
view thread (2+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: 'Psycopg2.errors' not referenced in packaged
In-Reply-To: <CA+mi_8aabLpkoPxTTMXCmbcGVkLFPpr6heCYju905=O9m9782Q@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox