CPython
The Python programming language (by python)
ipython
Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc. (by ipython)
| CPython | ipython | |
|---|---|---|
| 1,555 | 36 | |
| 70,429 | 16,636 | |
| 1.1% | 0.2% | |
| 10.0 | 9.9 | |
| about 6 hours ago | 3 days ago | |
| Python | Python | |
| GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CPython
Posts with mentions or reviews of CPython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-12-13.
- What's New in Python 3.15
Here's the relevant diff: https://github.com/python/cpython/pull/137968/files#diff-966...
Search is limited to 20 attributes and non-descriptors only to avoid arbitrary code execution.
I assume constructing AttributeErrors isn't highly performance sensitive.
- Ask HN: How do you handle release notes for multiple audiences?
If there is an audience for release notes I haven't seen anything better than just committing entries to pre-release folder as you change things and have release automation compile the folder into the actual release notes. Python and many other large projects handle it like this: https://github.com/python/cpython/tree/main/Misc/NEWS.d/next (The release notes for major releases are crafted manually)
- Guide - Audio Modding of "Arena of Valor"
Python Software Foundation. Python Programming Language. https://www.python.org/
- How to Send an Email in Python
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders # SMTP Server details port = 587 smtp_server = "smtp.sendlayer.net" username = "paulie" # Your username generated by SendLayer password = "sendlayer_smtp_password" # Your password generated by SendLayer sender_email = "paulie@example.com" receiver_email = "johndoe@example.com" # Email content subject = "Email Example with Attachment" html_message = """\ Hi, This is a test email sent from "https://www.python.org">Python using "https://sendlayer.com">SendLayer's SMTP server The email also includes an attachment """ # Create a multipart message and set headers message = MIMEMultipart() message["From"] = sender_email message["Subject"] = subject message["To"] = receiver_email # Attach the HTML part message.attach(MIMEText(html_message, "html")) # Specify the file path for the attachment filename = "./path/to/attachment/file.pdf" # Change this to the correct path # Open the file in binary mode with open(filename, "rb") as attachment: part = MIMEBase("application", "octet-stream") part.set_payload(attachment.read()) # Encode file in ASCII characters to send by email encoders.encode_base64(part) # Add header as key/value pair to attachment part part.add_header("Content-Disposition", f"attachment; filename= {filename}") # Add attachment to message message.attach(part) # Send the email with smtplib.SMTP(smtp_server, port) as server: server.starttls() server.login(username, password) server.sendmail(sender_email, receiver_email, message.as_string()) print('Email sent successfully')
- Python Concurrency: A Guide to Threads, Processes, and Asyncio
import requests from concurrent.futures import ThreadPoolExecutor URLS = [ "https://www.python.org/", "https://www.djangoproject.com/", "https://flask.palletsprojects.com/", ] def fetch_url(url: str): print(f"Fetching {url}...") response = requests.get(url) print(f"Fetched {url} with status {response.status_code}") return len(response.content) with ThreadPoolExecutor(max_workers=5) as executor: # The map function runs `fetch_url` for each item in URLS results = executor.map(fetch_url, URLS) for url, length in zip(URLS, results): print(f"URL: {url}, Length: {length}")
- Type hints in Python (4)
Use KeysView and ValuesView instead of dict_keys and dict_values respectively because type checkers don't support dict_keys and dict_values in _collections_abc.
- Optimize Python Sorting with One Little Trick
According to the benchmark in the PR that introduced this optimization, sorting a list that consists only of floats rather than a list of floats with even a single integer at the end is almost twice as fast.
- How to Use UUIDv7 in Python, Django and PostgreSQL
If you want to a UUIDv7 key for partitioning your table by date (e.g., one partition per day or month), you need to be able to compute the partition range via the minimal UUIDv7 for a given date.
There is some discussion whether or not to add helpers for this to Python‘s uuid7 module: https://github.com/python/cpython/issues/130843#issuecomment...
- How often does Python allocate?
With respect to tagged pointers, there seems to be some recent movements on that front in CPython: https://github.com/python/cpython/issues/132509
- Python: Is_dir() returns False when called from a path.relative_to(root) result
ipython
Posts with mentions or reviews of ipython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-09-28.
- Reloading Classes in Python
Pickling + unpickling the object is a neat trick to update objects to point to the new methods, but it's even more straightforward to just patch `obj.__class__ = reloaded_module.NewClass`. This is what ipython's autoreload extension used to do, though nowadays it's had some improvements over this approach: https://github.com/ipython/ipython/pull/14500
- REPL for Dart: supporting 3rd party packages, hot reload, and full grammar
- The new pdbp (Pdb+) Python debugger!
If you’re already using ipython, this isn’t a problem because you’ll already need to download most of these dependencies anyway. But if you’re not using ipython… you’ll still need to download those dependencies.
- Pandas 1.5 released
!pip install is error-prone, it is better to use %pip install, ipython even warns about this, https://github.com/ipython/ipython/pull/12954/
- Why deprecate loading unpackaged extensions?
The git history (here is the git blame) shows it has not been updated in 9 year. Looks like a documentation issue that you should open an issue against.
- Debugging Python programs without an IDE
Do you know IPython? It is a modern Python console that extends the capabilities of the classic builtin Python shell by offering introspection, tab completion, syntaxing coloring, as well as history. If you don't know it, I can't recommend it enough. More information can be found in its GitHub page.
- External variables in lambda functions in Python
There is an IPython ticket on GitHub on the topic, but it's unclear if the problem has been solved.
- Pipx: A python package consumption tool for CLI packages
For further documentation on ipython using the CLI, you can refer to the GitHub link or the documentation page.
- Workflow-killing crash from strange added characters.
- No_color
There’s one I’ve come across recently here where you’re fighting against syntax highlighting with extra error context. https://github.com/ipython/ipython/issues/13446#issuecomment...
What are some alternatives?
When comparing CPython and ipython you can also consider the following projects:
git - A fork of Git containing Windows-specific patches.
bpython - bpython - A fancy curses interface to the Python interactive interpreter
RustPython - A Python Interpreter written in Rust
ptpython - A better Python REPL
node - Node.js JavaScript runtime ✨🐢🚀✨
xonsh - 🐚 Python-powered shell. Full-featured and cross-platform.