Python Bytes 227
CONNECTION INFO:
Streamyard video call/stream: https://streamyard.com/5nqzir8ujh
Zencaster HQ audio: https://classic.zencastr.com/mkennedy/python-bytes-227
YouTube live stream for viewers: https://www.youtube.com/watch?v=6bve_-Hmhd0
intro:
Hello and Welcome to Python Bytes
Where we deliver Python news and headlines directly to your earbuds.
This is episode 227, recorded March 31st
I’m Brian Okken
<and I’m Michael Kennedy>
<and I’m Micaela Reyes>
Sponsored by us!
Special guest: Micaela Reyes
Brian #1: Number One, that's "retract plank," not "remove plank."
- Yanking vs removing versions on PyPI
- https://twitter.com/nedbat/status/1376901333958201352?s=20
- https://pypi.org/help/#yanked
- see also https://doughellmann.com/posts/so-youve-released-a-broken-package-to-pypi-what-do-you-do-now/
Michael #2: SQLAlchemy 1.4.0 Released
- Exciting: 1st release to properly support an async API
- Has a new select() + execute() rather than session.query() API
- Intended to unify Core and ORM.
- See new vs. old API compared.
- Requires aiosqlite for async API + SQLite: conn_str = 'sqlite+aiosqlite:///filename'
Micaela #3: django-tenants
- by Tom Turner
- Multi-tenancy Implementation for Django (typically for SaaS websites e.g. Shopify)
- currently on v3.2.1 (Aug 2020) release
- Requirements: Django 2 and PostgreSQL
- It was largely based on django-tenant-schemas library
- Data Architecture: shared database, separate schema for each tenant
- Domain setup / URL routing for root and per tenant:
- Examples:
- http://my-domain.com:8000/
- http://tenant.my-domain.com:8000/
- http://tenant2.my-domain.com:8000/
- Possible Use-cases:
- a hospital with different branches
- restaurant franchise with different branches
- Possible Limitations:
- You can’t use the normal migration commands (python manage.py migrate_schemas instead of python manage.py migrate)
- Reports - when you need to create a report regarding all the clients/tenants, tenant data will be on separate schemas