diff mbox series

[bug#53821] Add the python-psycopg2-binary package.

Message ID 20220206143813.1701863-1-contact@phfrohring.com
State Accepted
Headers show
Series [bug#53821] Add the python-psycopg2-binary package. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Pierre-Henry Fröhring Feb. 6, 2022, 2:38 p.m. UTC
`(#:tests? #f)' because tests require a live PostegreSQL instance.
---
 gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Comments

M Feb. 6, 2022, 2:50 p.m. UTC | #1
Pierre-Henry Fröhring schreef op zo 06-02-2022 om 15:38 [+0100]:
> +     "Psycopg is the most popular [...]
> +
> +[...], resulting in being both efficient and secure.
> 

From (guix)Synopses and Descriptions:

Please avoid marketing phrases such as “world-leading”,
“industrial-strength”, and “next-generation”, and avoid superlatives
like “the most advanced”—they are not helpful to users looking for a
package and may even sound suspicious.  Instead, try to be factual,
mentioning use cases and features.

Here, ‘most popular’ would could as marketing (it isn't important
whether it's popular, what is important is that it works well),
and to a lesser degree ‘efficient and secure’ -- everything is
supposed to be efficient and secure (with varying success).

Greetings,
Maxime.
M Feb. 6, 2022, 2:51 p.m. UTC | #2
Pierre-Henry Fröhring schreef op zo 06-02-2022 om 15:38 [+0100]:
> `(#:tests? #f)' because tests require a live PostegreSQL instance.
> ---
>  gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)

This needs to be documented ...

> +    (arguments
> +     '(#:tests? #f))

... here, as a comment, to aid future readers, and to avoid
accidentally teaching people to just disable tests.

Greetings,
Maxime.
Pierre-Henry Fröhring Feb. 6, 2022, 3:27 p.m. UTC | #3
Hello Maxime,

I've just copy-pasted the author's description as in:

  https://pypi.org/project/psycopg2-binary/

So, if I understand correctly, package contributors should (re)write
packages descriptions?

PHF

On Sun, 2022-02-06 at 15:50 +0100, Maxime Devos wrote:
> Pierre-Henry Fröhring schreef op zo 06-02-2022 om 15:38 [+0100]:
> > +     "Psycopg is the most popular [...]
> > +
> > +[...], resulting in being both efficient and secure.
> > 
> 
> From (guix)Synopses and Descriptions:
> 
> Please avoid marketing phrases such as “world-leading”,
> “industrial-strength”, and “next-generation”, and avoid superlatives
> like “the most advanced”—they are not helpful to users looking for a
> package and may even sound suspicious.  Instead, try to be factual,
> mentioning use cases and features.
> 
> Here, ‘most popular’ would could as marketing (it isn't important
> whether it's popular, what is important is that it works well),
> and to a lesser degree ‘efficient and secure’ -- everything is
> supposed to be efficient and secure (with varying success).
> 
> Greetings,
> Maxime.
M Feb. 6, 2022, 3:44 p.m. UTC | #4
Pierre-Henry Fröhring schreef op zo 06-02-2022 om 16:27 [+0100]:
> Hello Maxime,
> 
> I've just copy-pasted the author's description as in:
> 
>   https://pypi.org/project/psycopg2-binary/
> 
> So, if I understand correctly, package contributors should (re)write
> packages descriptions?

Yes, package descriptions from upstream are useful but may need to
be rewritten a bit.

Also, for whatever reason, people seem to always ignore the copyright
and license on upstream's description, but I don't understand how this
would be justified legally.

Greetings,
Maxime.
diff mbox series

Patch

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7c1b5e8ed3..a136de9990 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -28931,3 +28931,39 @@  (define-public python-types-dataclasses
      "This packages provides a collection of library stubs for Python, with
 static types.")
     (license license:asl2.0)))
+
+(define-public python-psycopg2-binary
+  (package
+    (name "python-psycopg2-binary")
+    (version "2.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "psycopg2-binary" version))
+              (sha256
+               (base32
+                "0kpaxg3lg5wg5ww5kxmzi2z2d7arsx13ci915d8a2pf17lqza7bn"))))
+    (build-system python-build-system)
+    (native-inputs (list postgresql))
+    (arguments
+     '(#:tests? #f))
+    (home-page "https://psycopg.org/")
+    (synopsis "Python-PostgreSQL Database Adapter")
+    (description
+     "Psycopg is the most popular PostgreSQL database
+adapter for the Python programming language.  Its main features are the
+complete implementation of the Python DB API 2.0 specification and the
+thread safety (several threads can share the same connection).  It was
+designed for heavily multi-threaded applications that create and
+destroy lots of cursors and make a large number of concurrent
+“INSERT”s or “UPDATE”s.
+
+Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in
+being both efficient and secure.  It features client-side and
+server-side cursors, asynchronous communication and notifications,
+“COPY TO/COPY FROM” support.  Many Python types are supported
+out-of-the-box and adapted to matching PostgreSQL data types;
+adaptation can be extended and customized thanks to a flexible objects
+adaptation system.
+
+Psycopg 2 is both Unicode and Python 3 friendly.")
+    (license license:lgpl3+)))