home.social

#psycopg — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #psycopg, aggregated by home.social.

fetched live
  1. Did you know you can sponsor Psycopg outside of GitHub? 💛

    We welcome direct sponsorships, invoiced arrangements and multi-year commitments. If you or your organisation rely on Psycopg in your infrastructure, we would love to hear from you.

    Drop us a message at [email protected] and we will find an arrangement that works for you 🐍

  2. New on the Psycopg blog: row-by-row streaming with server-side cursors 🐘🐍

    One of the most common mistakes with large PostgreSQL datasets is calling fetchall() and loading everything into memory. Server-side cursors solve this cleanly: stream results row by row, control batch size, and use it with async too.

    We walk through how it works, a practical export example, and what to watch out for. Link in replies 👇

  3. Earlier this year, Daniele gave a talk at @pgconfdev in Vancouver titled "Psycopg: 20 years of mostly friendly coexistence with libpq" ❤️

    Two decades of Python and PostgreSQL working together and there are still stories worth telling. The recording is now available to watch online. Link in replies 👇

  4. We are deeply grateful to @CodeursEnLiberte for their generous donation to Psycopg! 🎉

    Codeur·euses en Liberté are a French web cooperative with a commitment to open source software. Their support helps us keep Psycopg maintained and freely available to everyone who relies on it.

    Psycopg is critical infrastructure for the Python and PostgreSQL ecosystem. If your organisation depends on it, please consider supporting the project. Links in replies 👇

  5. We've launched a GitHub Sponsors page for Psycopg 🐘🐍

    Psycopg has been the standard PostgreSQL adapter for Python for 20 years. Your sponsorship goes directly towards maintaining Psycopg 2 and Psycopg 3, and keeping the project active and up to date.

    Sponsors are also listed on our new sponsors page on the Psycopg website. Links in replies 👇

  6. You don't need a NoSQL database if you have PostgreSQL! 💪

    Postgres can store unstructured data alongside relational data - just add a JSON or JSONB field!

    And here's a secret 🤫 Call register_dumper(dict, JsonDumper) early in your program and every dictionary migrates seamlessly between Python and PostgreSQL

    So good it might become the default in Psycopg 3.4. What do you think? Psycopg is your friend of course: check the docs in the comments 👇

  7. New to the Psycopg blog: integrating Psycopg 3 with FastAPI and Pydantic ⚡

    Covers dependency injection for DB connections, row factories that map results directly to Pydantic models and tying a connection pool to the application lifecycle. Full working example included - link in comments!

  8. Back from @pgconfdev, full of ideas! 🤗 Great to share our work on Python/PostgreSQL communication with core hackers and imagine how the protocol could evolve: lots of work ahead! 💪 If you'd like to get involved, please consider supporting Psycopg 💛 Link in comments!

  9. We're heading to Vancouver! 🇨🇦

    Our maintainer Daniele Varrazzo will be speaking at @pgconfdev next week, giving a talk on libpq - the PostgreSQL client library at the heart of Psycopg - and how we can help clients get even more out of PostgreSQL

    If you're attending, don't miss it. And if you're around, come say hello! 👋

  10. We’re happy to share that Daniele Varrazzo, maintainer of psycopg, will be attending @fosdempgday this Friday and @fosdem on the weekend.

    If you’re around, feel free to come say hi and ask him any questions you may have about Psycopg, PostgreSQL or Python database drivers. Drop us a message here if you wish.

    See you soon! 👋

    Photo from PyCon Italia 2022

  11. [Перевод] Самый быстрый способ загрузить 32 000 строк в PostgreSQL с помощью Python

    Команда Python for Devs подготовила перевод статьи о том, как найти самый быстрый способ загрузки данных в PostgreSQL с помощью Python. Автор пошагово сравнил разные методы — от построчных вставок до COPY с потоковой генерацией CSV — и показал, как ускорить процесс более чем в 250 раз при нулевом потреблении памяти.

    habr.com/ru/articles/948854/

    #postgresql #python #psycopg #загрузка_данных #импорт_данных #csv #copy #execute_batch #execute_values #оптимизация_производительности

  12. Any #python #psycopg people know why this works

    ```
    #results = conn.execute('SELECT (embedding <=> %s) as distance, abstract FROM documents ORDER BY embedding <=> %s LIMIT 5', (query_embedding, query_embedding, )).fetchall()
    ```

    But this throws an error
    ```
    results = conn.execute(f'SELECT (embedding <=> {query_embedding}) as distance, abstract FROM documents ORDER BY embedding <=> {query_embedding} LIMIT 5').fetchall()
    ```

    error in the thread

  13. Dziś trafiłem na kolejny błąd, wynikający z tego, że `ctypes.util.find_library("c")` nie działa na systemach z #musl libc. Problem zgłoszono do CPythona w połowie roku 2014, i do dziś go nie poprawiono (choć przyznaję, że łatka jest ciut skomplikowana). Moje obejście tego problemu polega na wykorzystaniu `libc.so`, kiedy funkcja nic nie zwraca, np. poprzez:

    ```
    ctypes.util.find_library("c") or "libc.so"
    ```

    github.com/python/cpython/issu
    github.com/psycopg/psycopg/pul
    bugs.gentoo.org/923003

    #Python #PsycoPG #CTypes #CPython #Gentoo

  14. Just hit another issue related to `ctypes.util.find_library("c")` being broken on #musl libc. The issue has been reported to #CPython mid-2014, and still hasn't been fixed (though admittedly the fix seems non-trivial). My workaround is to add an explicit fallback to `libc.so`, e.g.:

    ```
    ctypes.util.find_library("c") or "libc.so"
    ```

    github.com/python/cpython/issu
    github.com/psycopg/psycopg/pul
    bugs.gentoo.org/923003

    #Python #PsycoPG #CTypes #Gentoo

  15. Möp:

    ```sql
    -- works, true
    select 1 :: smallint = 1 :: bigint;
    -- does not work
    select 1 :: smallint <@ int8range(1,2);
    -- ERROR: operator does not exist: smallint <@ int8range
    ```

    Guess what psycopg passes in when giving it a python int param...

  16. Yesterday, on Django 4.2, we bumped #psycopg from v2 to the v3 but suffered an increase in locks & connection waiting during some periods of heavy work on the same hardware (Heroku pg with server-side pgBouncer).

    Operational reasons (shipping!) stop us investigating this in more depth right now but thought this warning may be of help to someone.

    #django

  17. Django 4.2 LTS has just been released. 🎉

    From the Django official post: 💡

    "The release notes cover the farrago of new features in detail, but a few highlights are:
    - psycopg version 3 support
    - comments on columns and tables
    - support for asynchronous streaming responses, and async interfaces for related managers and models"

    More info: 👇
    djangoproject.com/weblog/2023/

    CC @psycopg

  18. @djangochat @carlton @wsvincent Continuing to talk about Django and PostgreSQL, a Django Chat episode on the recent merge of the Psycopg 3.1+ backend with @felixxm , @apollo13 and @psycopg would be interesting. 🎙️

    As an anticipation we had a great keynote from Daniele Varrazzo at PyCon Italia 2022 @pycon 🇮🇹
    youtu.be/w41jxB37n8M

  19. This morning @felixxm merged the branch for @psycopg 3 support in Django 🎉

    I opened the related issue 13 months ago and since then many developers have worked on the PR based on the work of Daniele Varrazzo 👏

    I thank everyone who made this achievement possible starting from @apollo13 to @felixxm but also Simon Charette, Tim Graham, @adamchainz, @carlton and @davidsmith 🙏

    I'm sure that both Django and Psycopg will benefit from this success ✨

    code.djangoproject.com/ticket/

  20. RT @psycopg

    Psycopg 3.1.5 released. A few bug fixes and *big* speedup improvements: networking, namedtuples, arrays...

    Try it out now! 😄🚀

    github.com/psycopg/psycopg/blo

  21. The new @psycopg v3 backend for @django 4.2 is quite ready ✨

    It would be very useful if you could test it in your own project to find any errors and measure variations in performance 📈

    You can already find some tests in the PR ⚗️

    github.com/django/django/pull/

  22. @Crocmagnon @psycopg has a lot of new features, you can read about them directly in its website 👇
    psycopg.org/

  23. In the @django project a great deal of work is underway to add @psycopg support to the 🐍🐘
    Simon and Florian are doing a great job getting PR merged before 4.2 is released ⚡️
    You too could help by trying to test this in your projects 👇
    github.com/django/django/pull/

  24. #psycopg est un connecteur #Python à un serveur #PostgreSQL. L'un de nos développeurs, Denis, vous parle plus spécifiquement des #rowFactories => dali.bo/202206_psycopg