Tom Wojcik personal blog

I have analyzed all the Python user groups

☕️ 5 min read

PUG = Python User Group

Recently, a coworker approached me and asked if I’d be interested in going to Krakow, a city located 90km (56miles) away from my place, to attend a local Python meetup. While it does sound like fun, I’d prefer to attend a similar event that’s closer to home. I recalled that PySilesia used to be organized in Katowice, the city where I reside, but it appears to have been inactive for the past few years.

I began searching on Google and discovered that the official Python website has a section dedicated to listing local user groups (https://wiki.python.org/moin/LocalUserGroups). While I understand that this list may not be exhaustive, it provides a great starting point. It’s worth noting that some recently established Python user groups may not be included yet. Unfortunately, I couldn’t find any active PUGs in my city.

Out of curiosity, I decided to explore PUGs from other countries. To my surprise, I encountered a graveyard of inactive websites. Many of the domains were either dead or returned 404 errors. Some claimed to be country-wide user groups, which didn’t quite align with the term “LocalUserGroups” as the URL suggests. Others redirected to personal blogs, company websites, news sites, or even casinos.

After painstakingly opening all 324 links that I had scraped from the site, I discovered that only 59 of them were still active.

59 / 324 = 18.2% meetups were alive

The ones that are still alive, are

urlname
0https://www.meetup.com/Cape-Town-Python-Users-Group-CTPUG/Cape Town Python Users Group
1https://www.meetup.com/python-ghana/Python Ghana
2http://www.pymug.compymug
3http://www.meetup.com/BangPypers/BangPypers Meetup Group
4http://www.meetup.com/Hyderabad-Python-Meetup-Group/Hyderabad Python Meetup Group
5https://www.meetup.com/kovaipyKovaiPy (Kovai/Coimbatore Python User Group)
6http://www.meetup.com/Python-IDMeetup.com
7http://tehpug.irWeb Site
8http://www.meetup.com/PythonNepal/DN: Python Users Group Nepal Meetups
9http://www.meetup.com/pythonhug/PyHUG Meetups
10http://www.meetup.com/Taipei-py/Taipei.py Meetups
11http://www.meetup.com/Tainan-py-Python-Tainan-User-Group/Tainan.py Meetups
12http://www.meetup.com/ThaiPy-Bangkok-Python-Meetup/ThaiPy - Bangkong Python Meetup Group
13http://www.meetup.com/Brisbane-Python-User-Group/Brisbane
14https://www.meetup.com/dev_nq/DevNQ - North Queensland Software Development Community
15http://www.meetup.com/Perth-Django-Users-Group/Perth Django Users Group
16https://www.meetup.com/PyGRAZ/events/291837521/pyGraz
17https://www.meetup.com/pyworkingpython.cz
18http://www.meetup.com/Python-Users-Berlin-PUB/PUB
19https://www.meetup.com/Leipzig-Python-User-Group/Leipzig Python User Group
20https://www.meetup.com/Python-Meeting-Dusseldorf/Python Meeting Düsseldorf
21http://www.meetup.com/Python-User-Group-Freiburg/Python User Group Freiburg
22https://www.meetup.com/pythonireland/Python Ireland
23http://www.meetup.com/python-lv/Python User Group Latvia
24https://www.meetup.com/pykonikPykonik
25https://www.meetup.com/PyWaw-Python-Warsaw-User-Group/PyWaw
26https://www.meetup.com/pyporto/Python Porto
27http://www.moscowpython.ru/MoscowPython
28http://www.meetup.com/Python-Sevilla/Python Sevilla
29http://www.meetup.com/Python-Valencia-Meetup/Python Valencia
30https://www.meetup.com/grupy-sanca/grupy-sanca
31https://www.meetup.com/pythonbaq/Website
32http://www.meetup.com/Phoenix-Python-Meetup-Group/DesertPy Meetup
33https://www.meetup.com/PHXGeo/http://phxgeo.org
34https://www.meetup.com/baypiggies/BayPiggies
35http://www.meetup.com/san-diego-python-users-groupSan Diego Python Users Group
36http://www.meetup.com/Orange-County-CA-Python-User-Group/OCPUG
37http://www.meetup.com/iepython/IEPUG
38http://www.meetup.com/fresnopython/Fresno.py
39https://www.meetup.com/python-atlanta/PyAtl
40https://www.meetup.com/_ChiPy_/ChiPy - The Chicago Python Users Group
41http://www.meetup.com/derbypyDerbyPy
42http://www.meetup.com/derbypyDerbyPy
43http://www.meetup.com/python-frederick/Python Frederick
44https://www.meetup.com/grpython/GRPUG
45http://meetup.com/STL-PythonSTL Python
46https://www.meetup.com/nycpython/NYC Python
47http://www.meetup.com/Central-Ohio-Python-Users-GroupCentral Ohio Python User Group
48http://www.meetup.com/phillypug/The Philadelphia Python Users Group (PhillyPUG)
49http://www.meetup.com/Chattanooga-Python-User-Group/Chattanooga, TN
50https://www.meetup.com/memphis-technology-user-groups/MEMpy
51http://www.meetup.com/SLCPython/Salt Lake City
52http://www.meetup.com/PythonAtThePoint/Draper, Sandy
53http://www.meetup.com/757-Python-Users-Group/757 Python User Group
54http://www.meetup.com/PyRVA-Meetup/PyRVA
55https://www.meetup.com/PyRVAUserGroup/PyRVA.org
56http://www.meetup.com/DCPython/DC Python
57http://www.meetup.com/Spokane-Python-Meetup/Python Spokane
58http://www.meetup.com/PythonTriCities-Meetup/Python Tri-Cities

As you can observe, the majority of these groups utilize meetup.com as their platform for organizing and coordinating events. While this choice offers easier discoverability, it presents a significant barrier for hobbyist PUGs. Not only do they have to find speakers, arrange a venue, and engage in basic promotion, but now they are also expected to bear the financial burden? That’s certainly discouraging.

I’m delighted to introduce you to pythonuser.group. This platform is designed exclusively for the requirements of local Python user groups, and it’s completely free to use. The best part is that even if you decide to discontinue you local PUG, your data will remain intact.

If you have any questions, please don’t hesitate to reach out to me via email at pug [at] tomwojcik.com.


The data was fetched with

from bs4 import BeautifulSoup
import requests
import pandas as pd
import sqlite3

URL = "https://wiki.python.org/moin/LocalUserGroups"

response = requests.get(URL)

soup = BeautifulSoup(response.content, "html.parser")
pug_tags = soup.find_all('a', {'class': 'http'})
d = [
    {'url': tag.attrs['href'], 'name': tag.text, 'is_alive': False}
    for tag in pug_tags
]
df = pd.DataFrame(d)
df.to_csv('data.csv', index=False)

database = "data.sqlite"
conn = sqlite3.connect(database)
df.to_sql(name='data', con=conn)
conn.close()

and is available at https://tomwojcik.com/pug_data.csv