Python Cloud Studio
The enterprise-ready, browser-based Python notebook and data analysis studio. Zero local setup, instant kernel execution, real-time code intelligence, and isolated multi-tenant workspaces.
Welcome to Python Cloud Studio
Learn what Python Cloud Studio is, why it eliminates traditional Python configuration headaches, and how it compares to local Jupyter and Google Colab.
What is Python Cloud Studio?
Python Cloud Studio is a modern, enterprise-grade cloud workspace for writing, executing, and sharing Python code.
Unlike traditional Python workflows that require installing Python interpreters, configuring virtualenv or Anaconda, and debugging environment path collisions on your local computer, Python Cloud Studio runs entirely inside your web browser.
Under the hood, Python Cloud Studio pairs a high-performance frontend editor powered by Monaco (the engine behind Visual Studio Code) with a containerized Python kernel communicating over high-speed ZeroMQ and WebSocket connections.
Traditional local Python setups frequently break due to conflicting C-libraries, missing dependencies, or OS permission limits. With Python Cloud Studio:
- Zero Local Installation: Open your browser to
http://localhost:8765(or your organization's URL) and start coding instantly. - Consistent Hardware & Environment: Every session runs with a verified Python runtime, pre-configured data science libraries, and allocated system resources.
- Cross-Platform Parity: Windows, macOS, Linux, and Chromebook users receive the exact same intuitive interface and execution environment.
How Python Cloud Studio Compares to Other Tools
| Capability | Python Cloud Studio | Traditional Jupyter Lab | Google Colab |
|---|---|---|---|
| Setup Time | Instant (0 sec) | Requires Terminal, pip, conda (10-30 min) | Instant with Google Account |
| Multi-Tenant Isolation | Strict Tenant & Guest Sandbox | Single-user / Local file access only | Single Google Drive boundary |
| Pandas Table Viewer | Interactive DataTableView (Filter, Sort, Export) | Static HTML table | Basic interactive filter (extension required) |
| Autocomplete & Signature Help | Monaco Engine + Viewport-Aware Dropdowns | Standard CodeMirror completions | Custom autocomplete popup |
| Institutional / LMS Integration | Built-in Classrooms & SuperAdmin Console | Requires JupyterHub setup | No native classroom gradebook |
First 5 Minutes Tutorial: Zero to Running Code
Follow this fast-track guide to launch Python Cloud Studio, write your first code cell, execute it, and see your output in under five minutes.
Open the Application in Your Browser
Navigate to http://localhost:8765 (or the web address provided by your administrator). The Studio opens immediately in Guest Mode, with a clean workspace ready for coding.
Notice the top navigation bar displays Guest Mode — Private Workspace and the kernel indicator shows Python 3 (idle).
Locate the Active Code Cell
In the central notebook area, you will see a rectangular block bordered in subtle gray with a left gutter showing [ ] and a circular ▶ Run button. This is a Code Cell.
Click inside the dark editor box to place your cursor. A thin colored border highlights the active cell.
Type Your First Python Command
Type the following greeting code inside the cell:
name = "Python Explorer"
greeting = f"Welcome to Python Cloud Studio, {name}!"
print(greeting)
Execute the Cell
To run your code, you have two options:
- Mouse: Click the circular ▶ button on the left gutter of the code cell.
- Keyboard (Recommended): Press Shift + Enter (or Ctrl + Enter).
While executing, the gutter button shows a spinning indicator. Within milliseconds, the execution counter changes to [1] and your output appears directly below the cell:
Welcome to Python Cloud Studio, Python Explorer!
Add a Second Cell and Reuse Variables
Click the + Code button on the notebook toolbar or press Alt + Enter in your first cell. In the new cell, type:
# Notice that 'name' is remembered from the previous cell!
print(f"Character count in your name: {len(name)}")
Press Shift + Enter to run it. You have successfully created, connected, and executed your first multi-cell notebook!
Logging In, Logging Out, and Guest Mode
Understand how workspace isolation works, the difference between Public Guest Mode and Private Tenant Workspaces, and how your data remains strictly protected.
The Two Workspace Modes
Python Cloud Studio provides a dual-tier workspace architecture designed for both friction-free experimentation and high-security enterprise isolation:
Private, No Login
- No Login Required: Anyone who opens the application starts here immediately, with a few starter files.
- Private to This Browser: Your files, notebooks and Python kernel are your own. Other guests (another browser, another person, a private window) cannot see or change them.
- Kept in This Browser: A copy of your files and notebooks is saved in this browser, so they are still there after a refresh or when you come back. If the server removed an unused guest workspace, it is restored from this copy. Variables in Python are not kept: re-run your cells after a long break.
- Limits: Clearing site data, or a private window once closed, removes the browser copy. The banner tells you when this browser cannot keep one. Sign in to keep your work on the server and use it on other devices.
Isolated Multi-Tenant Security
- Secured by JWT Authentication: Accessible only after logging in with your email and password.
- Strict Tenant Isolation: Stored in
storage/workspaces/user_{id}/default/. No other user can view or alter your files. - Persistent Storage: Your notebooks, CSV datasets, and environment secrets remain saved indefinitely.
- SuperAdmin Oversight: Instructors and administrators can audit and manage workspaces without compromising tenant privacy.
How to Log In
- Click the Sign In button located at the top-right corner of the navigation bar.
- An authentication modal appears over your current screen.
- Enter your registered Email and Password, then click Sign In.
- If you are a new student or team member, click Create an account, enter your full name, email, desired password, and click Register.
- Upon successful authentication, the top navbar instantly updates to display your name and a green Signed In — Private Workspace badge.
When you click the red Sign out button in the top navbar:
- Your JWT session token is instantly destroyed from browser memory.
- All active file editor tabs and notebook handles associated with your private account are closed immediately.
- The left file explorer automatically switches back to this browser's private guest workspace.
- Your private files are NEVER visible to anyone who uses the browser after you log out.
Understanding the Studio Interface
An in-depth visual breakdown of every toolbar, sidebar, panel, and indicator across Python Cloud Studio.
Python Cloud Studio uses a cohesive, high-density layout inspired by Google Colab and Visual Studio Code. The interface is organized into five primary regions:
df = pd.read_csv('data/sales.csv')
df
Detailed Region Breakdown
1. Top Navigation Bar (Navbar)
Always Visible- Brand & Workspace Badge: Shows the active mode (Guest Mode or Private Workspace).
- Notebooks Button (): Opens the Notebooks Manager dialog to switch, download, duplicate, or delete notebooks.
- Run All (): Sequentially executes all code cells from top to bottom.
- Restart Kernel (): Wipes kernel memory and starts a fresh Python interpreter session. Rotates with an animation while restarting.
- Kernel Status Pill: Live color-coded indicator:
- Python 3 (idle) — Kernel is ready to receive commands.
- Python 3 (busy) — Currently executing code.
- Python 3 (restarting) — Kernel process is rebooting.
- Disconnected — Network connection lost.
- Secrets (): Configures workspace environment variables and API keys (e.g., OpenAI, Gemini, HuggingFace).
- Theme Toggle: Switches seamlessly between System, Dark, and Light themes.
2. Left Sidebar (Files Explorer)
Collapsible (Ctrl+B)- Toolbar Actions:
+ Filecreates a new file;+ Foldercreates a subfolder;Uploaduploads files from your computer;Refreshreloads the tree. - Drag-and-Drop: You can drag files directly from your computer's desktop into the sidebar to upload them.
- Context Menu: Right-clicking any file or folder reveals: Rename, Download, and Delete.
- Double-Click to Edit: Double-clicking any non-notebook file (like
.py,.csv,.txt,.md) opens it directly in the Right Panel Tabbed Editor.
3. Central Notebook Canvas & Resizable Cells
Core Work Area- Code Cells: Monaco-based editor with syntax highlighting, line numbers, autocomplete, and diagnostics.
- Execution Counter: Shows
[ ]before execution and[n]after, displaying the order in which cells were run. - Drag-to-Resize Handle: Every code cell features an ergonomic drag handle at the bottom edge. Click and drag vertically to resize the editor height anywhere from 80px to 800px. Cell heights are automatically saved in notebook metadata!
4. Right Side Panel
Auxiliary Tools- Files Tab: Tabbed editor for working with companion scripts, configuration files, or viewing raw CSV text.
- AI Assistant Tab: Built-in intelligent programming assistant to generate code, explain errors, and insert snippets directly into your notebook.
- Variables Tab: Inspect active Python variables stored in kernel memory.
- Metrics Tab: Monitor real-time CPU, RAM, and Disk allocation.
Your First Notebook: Creation, Structure & Cells
Learn how Jupyter notebooks are organized, how to create and rename notebooks, and the fundamental anatomy of code cells.
What is a Jupyter Notebook (`.ipynb`)?
A notebook is an interactive computational document that combines runnable code, formatted text, equations, and rich visualizations into a single file. Under the hood, notebooks are saved in standard Jupyter Notebook Format v4 (JSON structure), which means your work is 100% portable and can be opened in VS Code, JupyterLab, or Google Colab.
Creating and Managing Notebooks
You can create a new notebook in two simple ways:
- Click the Notebooks button in the top navbar and click + New Notebook.
- Click the + File button in the left sidebar and enter a filename ending with
.ipynb(e.g.,data_analysis.ipynb).
Cell Anatomy: Code vs. Markdown
Code Cells
Used to write executable Python code. They feature:
- Left execution gutter with run button ▶
- Execution order number:
[1],[2], etc. - Output area below the editor for text, tables, and images.
- Monaco editor with full IntelliSense and diagnostics.
Markdown (Text) Cells
Used to document your work, explain methodology, and create headers:
- Supports standard Markdown:
# Headers,**bold**,*italics*. - Rendered automatically when you click outside or press Shift + Enter.
- Supports lists, links, tables, and LaTeX math equations.
Cell Action Toolbar
When you hover over or select a cell, an action toolbar appears allowing you to:
- Run Cell: Execute the cell immediately.
- Move Up / Down: Reorder cells within the notebook document.
- Duplicate Cell: Create an exact copy of the cell directly below.
- Delete Cell: Remove the cell (with an undo safety buffer).
How to Write Python Code & IntelliSense
Master the code editor and its shortcuts, smart autocomplete suggestions, parameter signature hints, and real-time syntax diagnostics.
The Code Editor
Every code cell is a Python-aware editor with line numbers, automatic indentation, auto-closing brackets and quotes, comment toggling, and IntelliSense. The .py file editor in the right panel supports the same indentation and comment shortcuts.
- Comment / uncomment: Ctrl + / (⌘ + / on macOS) adds or removes
#on the current line, or on every selected line. Comments are aligned with the block's indentation, blank lines are left alone, and your selection is kept so you can press it again to undo. - Indent: Tab inserts four spaces, or indents every selected line.
- Outdent: Shift + Tab removes one level (up to four spaces) from the current or selected lines.
- Auto-indent: Enter keeps the current indentation and adds one level after a line ending in
:(for example afterdef,if,for).
1. Python IntelliSense Autocomplete
As you type Python code, Cloud Studio actively inspects both the Python Abstract Syntax Tree (AST) and the live runtime kernel namespace to offer context-aware suggestions:
- Intelligent Placement: The autocomplete suggestion dropdown appears directly below your typing cursor. If there is insufficient room at the bottom of the viewport (<260px), it smoothly flips above the cursor.
- Keyboard Navigation: Use Arrow Down and Arrow Up to move through candidate functions, methods, and variables. The list scrolls smoothly to ensure the highlighted item is always in view.
- Accepting Suggestions: Press Tab or Enter to insert the exact matched token.
- Dismissing: Press Escape to close the autocomplete dropdown without altering your text.
2. Parameter Signature Help
When you type an opening parenthesis ( after a function name (e.g., pd.read_csv( or plt.plot(), a dedicated Parameter Signature Help box appears.
- Displays parameter names, default values, and the function's documentation.
- Always visible: The box sits on the opposite side of the line from the autocomplete dropdown, and otherwise on whichever side has more room. It is sized to fit the visible part of the notebook (below the toolbar) and repositions as you scroll.
- Interactive: Move the mouse into the box to scroll long documentation with the wheel, touchpad or scrollbar, and select text to copy it with Ctrl + C. After clicking inside it, ↑/↓ and Page Up/Page Down scroll it too.
- Close and reopen: Escape closes the autocomplete dropdown first, then the signature box, and returns the cursor to your code. Press Ctrl + Space inside the parentheses to bring it back.
3. Real-Time Code Diagnostics
Python Cloud Studio continually checks your code for syntax mistakes, unclosed parentheses, and unresolved imports:
- Red Squiggly Underlines: Highlight the exact error token in your code. Hover your mouse over the red line to view a clear explanation of what needs to be fixed.
- Typing Suppression: To avoid distracting you while actively typing, diagnostics are automatically suppressed until you pause or finish your statement.
- Automatic Refresh: When you run a cell, restart the kernel, or install a new package via
%pip, diagnostics automatically re-evaluate and clear immediately.
Executing Code & Execution Controls
Learn all the ways to run code, understand the cell execution counter, run the entire notebook at once, and cancel stuck calculations.
The Three Execution Shortcuts
Mastering keyboard shortcuts is the single most effective way to accelerate your Python workflow. Python Cloud Studio provides three distinct execution actions:
Run & Stay in Current Cell
Runs the active cell without moving focus. Perfect when iteratively testing adjustments to the same function or chart.
Focus PreservedRun & Advance to Next Cell
Runs the active cell and automatically advances cursor focus to the next cell. If you are on the last cell, it creates a new empty cell!
Primary WorkflowRun & Insert New Cell Below
Runs the active cell and immediately inserts a brand-new blank cell directly below, moving your cursor into it.
Rapid ExpansionRunning a Python (.py) File
You can keep code in .py files and run them from your notebook:
- In the Files panel on the left (open it with the top-left panel button or Ctrl + B), click + File, type a name ending in
.py(for examplehello.py) and confirm. The file opens in the editor on the right. - Write your code, for example
print('Hello!'). - Click the green ▷ Run button above the editor. The file is saved, and a new cell
%run hello.pyis added at the end of your notebook and run. Its output appears under that cell.
You can also right-click a .py file in the Files panel and choose Run in notebook, or type %run hello.py in any code cell yourself. Variables and functions defined in the file are available in later cells (for example, call a function from the file in the next cell). Paths are relative to your workspace folder, so a file in a folder runs as %run "my scripts/report.py".
Formatting Text Cells (No Markdown Needed)
Text cells hold your notes and explanations. Click + Text (or double-click an existing text cell) and a formatting toolbar appears above the text, with a live preview beside it. Select some words and click a button, just like in a word processor:
- Style menu: Heading 1, 2, 3 or normal text.
- B, I, strikethrough, inline code, highlight and text colour.
- Bulleted list, numbered list and checklist. Press Enter to add the next item; Enter on an empty item ends the list; Tab / Shift + Tab nest or un-nest an item.
- Link and image: type the web address in the small form (or choose an image from your computer, up to 1.5 MB; it is stored inside the notebook). Quote and divider.
- Code block (choose the language) and maths: inline
$x^2$or a maths block, shown with proper mathematical typesetting.
Shortcuts: Ctrl + B bold, Ctrl + I italic, Ctrl + Shift + S strikethrough, Ctrl + Shift + H highlight, Ctrl + E inline code, Ctrl + K link, Ctrl + Shift + 7 / 8 / 9 numbered list / bulleted list / checklist, Ctrl + Alt + 1–3 headings (0 normal text), and Ctrl + Z / Ctrl + Shift + Z to undo and redo. On macOS use ⌘.
Press Esc, Shift + Enter or click another cell to see the text formatted. The toolbar writes standard Markdown, so your notebooks look the same in Jupyter and Google Colab, and text you wrote in Markdown yourself is kept exactly as written. Hide or show the live preview with the button at the right of the toolbar.
Understanding Errors
- While you type: a problem Python would refuse to run (for example an
IndentationErroror a missing module) is underlined in red, with a red dot next to the line number. Hover over the underline or the dot to see Python's exact message, the error type and the line and column. Click the red note at the bottom of the cell to jump to the problem. - After running: the line that raised an error (
NameError,TypeError,ValueError…) is marked the same way; hover over it for the details. The complete traceback stays in the output. Under the error, Where: lists the places the traceback points at: click one to go to that line in the notebook, or to open a.pyfile of your workspace at that line.
Editor Font and Indentation
Code uses JetBrains Mono at 14 px. Change the size from the ⋯ menu in the top bar (Editor font size); your choice is remembered in this browser and applies to notebook cells and the file editor. Indentation is four spaces: Enter indents after a line ending in : and inside brackets, and goes back a level after return, pass, break, continue and raise; Backspace in the spaces at the start of a line removes a whole level; typing else:, elif, except or finally: lines it up with its if or try.
Command Mode (Keyboard Cell Editing)
As in Google Colab and Jupyter, a cell is either being edited (the caret is in its code, accent border) or selected (accent bar on its left, no caret). Press Esc in a cell, or click its header, to select it; press Enter to edit it again. While a cell is selected:
- ↑ / ↓ (or K / J): select the cell above / below.
- A / B: insert a code cell above / below.
- D D (press D twice): delete the cell; the next one is selected.
- M / Y: change the cell to Markdown text / code.
- Shift + Enter and Ctrl + Enter run it as usual.
Ctrl + F8 runs all cells above the current one, and Ctrl + F10 runs the current cell and all below; both are also in each cell's ⋯ menu. Clicking a cell's buttons (Run, Move, Duplicate) never takes the caret out of your code.
Understanding the Execution Gutter
On the left side of every code cell is the execution gutter. It communicates three distinct states:
[ ]Not Yet Executed: The cell has not run in the current kernel session.- Spinning Circle Running: The code is currently executing on the cloud kernel and the cell shows
[*]. The run button turns into a red Stop square inside the spinner: click it to stop the cell. The top navbar displaysPython 3 (busy). Running the same cell again while it is still running is ignored, so its output is never mixed with a second run. [1]Executed: The number indicates the exact sequential order in which this cell was executed in the current session.
Using "Run All"
Located on the top navbar, the Run All button (▶) sequentially executes every code cell in your notebook from the first to the last. This is standard practice before sharing your notebook or generating final reports, ensuring all variables and results are computed in top-to-bottom order.
Stopping a Long-Running or Infinite Loop
If your code runs too long or gets stuck in an infinite loop (for example, while True: pass), stop it without reloading the page. Any of these does the same thing:
- Click Stop in the top navbar. It turns red while code is running.
- Click the red Stop square on the running cell's run button.
- Press Ctrl + C (⌃ + C on macOS) while a cell is running. If text is selected, Ctrl + C copies it instead, as usual.
The cell ends with a KeyboardInterrupt message. Your variables are kept, so you can fix the code and run it again. Cells still waiting from Run All are cancelled. Programs the cell started, such as a web server launched with !uvicorn or subprocess, are stopped too. Clear Outputs only clears what is displayed; it does not stop running code.
Some code cannot be interrupted, for example code stuck inside a native library call or code that ignores interrupts. If a cell is still running about 8 seconds after you press Stop, a yellow banner offers Restart kernel. Restarting always stops the code, but it clears all variables and imports, so you will need to run your cells again. Choose Keep waiting to give it more time. You can also click Restart in the top navbar at any time.
Understanding Output
Learn how Python Cloud Studio captures, formats, and renders different types of cell output, from basic print statements to rich multimedia.
Standard Output vs. Expression Return Values
In Python notebooks, there is an important difference between printing something and evaluating an expression on the last line:
1. Standard Output (`print()`)
Text sent to Python's sys.stdout stream. Rendered in a clean monospace font below the cell:
print("Calculating results...")
print("Step 1 complete.")
Calculating results... Step 1 complete.
2. Last-Line Expression Value
If the final line of your code cell evaluates to an object or expression, the notebook displays it automatically without needing print():
score = 95
score * 1.05 # Automatically rendered!
99.75
Rich Output Types Supported
Python Cloud Studio automatically detects and renders rich MIME types:
- Pandas DataFrames: Automatically transformed into interactive, searchable, sortable tables (see Chapter 10).
- Matplotlib & Seaborn Charts: High-resolution PNG images rendered inline with crystal-clear vector sharpness.
- HTML & Markdown: Rendered directly using safe DOM sanitization.
- ANSI Error Tracebacks: Python exceptions and stack traces are color-coded in high-visibility red, amber, and cyan, making errors effortless to diagnose.
Multi-Cell & Kernel State
Understand how memory persists across different cells, the golden rules of notebook execution order, and how to avoid hidden state bugs.
The Shared Global Namespace
In a Python Cloud Studio notebook, all code cells share a single running Python kernel process. When you define a variable, import a library, or declare a function in one cell, it remains stored in the kernel's memory and is immediately accessible to all other cells.
total_revenue = 450000total_revenue: 450000tax_rate: 0.15
net = total_revenue * (1 - tax_rate)The Out-of-Order Execution Pitfall
Because you can run cells in any order you choose, you might run Cell 3 before Cell 2. While flexible, this can lead to confusing bugs where code works on your screen but fails when someone else runs the notebook from top to bottom.
Before saving your final work or turning in an assignment, always do this quick two-step check:
- Click the Restart button in the top navbar to clear all kernel variables.
- Click Run All to verify that every cell executes cleanly from top to bottom with zero errors.
If all cells pass, your notebook is 100% reproducible and ready for production or grading!
NumPy & Pandas DataFrames (Interactive DataTableView)
Learn how to manipulate tabular data with Pandas and leverage Python Cloud Studio's upgraded interactive table viewer.
The Power of Pandas in Cloud Studio
Pandas is Python's premier data manipulation library. Whenever you display a Pandas DataFrame (for example, by typing df on the last line of a code cell), Python Cloud Studio automatically intercepts the HTML table output and upgrades it into a rich, interactive DataTableView component.
| # | Employee Name | Department | Salary ($) | Performance |
|---|---|---|---|---|
| 1 | Alex Rivera | Engineering | $124,500 | Excellent |
| 2 | Elena Rostova | Engineering | $138,200 | Exceptional |
| 3 | Marcus Vance | Engineering | $115,000 | Good |
Key Capabilities of DataTableView
1. Instant Column Sorting
Click any column header to sort in ascending order (▲). Click again to sort in descending order (▼). Works seamlessly on text, numbers, dates, and currency.
2. Live Real-Time Filtering
Type into the filter bar to immediately isolate rows matching your search query across all columns simultaneously—no code modification needed.
3. Customizable Page Sizes
Choose from 10, 25, 50, 100, or "All" rows per page. High-density virtualization ensures smooth scrolling even on massive datasets.
4. One-Click TSV Copy & CSV Export
Click Copy TSV to paste directly into Microsoft Excel or Google Sheets. Click Download CSV to save the table to your local hard drive.
Example Code: Creating an Interactive DataFrame
import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {
"Employee": ["Alex Rivera", "Sarah Chen", "Elena Rostova", "Marcus Vance", "Priya Patel"],
"Department": ["Engineering", "Product", "Engineering", "Engineering", "Marketing"],
"Salary": [124500, 132000, 138200, 115000, 98000],
"Tenure_Years": [3.5, 4.0, 5.2, 2.1, 1.8]
}
df = pd.DataFrame(data)
df # Simply evaluate 'df' on the last line to activate DataTableView
Charts & Visualizations
Create publication-quality charts using Matplotlib and Seaborn, rendered directly inside your notebook output.
Built-in Visualization Libraries
Python Cloud Studio comes with Matplotlib and Seaborn pre-configured. When you call plt.show(), the chart is captured as a high-density PNG graphic and embedded directly beneath your code cell.
import matplotlib.pyplot as plt
import numpy as np
# Generate sample trend data
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure(figsize=(9, 4), dpi=100)
plt.plot(x, y1, label="Sine Wave", color="#2563eb", linewidth=2.5)
plt.plot(x, y2, label="Cosine Wave", color="#10b981", linewidth=2.5, linestyle="--")
plt.title("Trigonometric Signal Analysis", fontsize=14, fontweight="bold", pad=12)
plt.xlabel("Time (seconds)", fontsize=11)
plt.ylabel("Signal Amplitude", fontsize=11)
plt.legend(frameon=True, loc="upper right")
plt.grid(True, linestyle=":", alpha=0.6)
plt.tight_layout()
plt.show()
Uploading & Using Datasets
Step-by-step instructions for uploading CSV, Excel, and JSON files, inspecting them in the Tabbed Editor, and loading them into your code.
Uploading Files to Your Workspace
Python Cloud Studio makes uploading datasets effortless. You can use either the file toolbar or direct drag-and-drop:
Click the Upload Button in the Left Sidebar
In the Left Files Sidebar, click the Upload button (or drag files from your computer folder directly into the sidebar panel). Select your dataset (e.g., housing_data.csv).
Verify in the Files Tree
The file appears immediately in your file tree. If you are logged in, it is securely stored in your private workspace. If you are a guest, it is stored in the public workspace.
Optional: Inspect in the Tabbed File Editor
Double-click the CSV file in the sidebar. A new tab opens in the Right Panel displaying the raw data with row numbers. You can make quick edits, save changes, or close the tab.
Load into Pandas with Relative File Paths
Because the Python kernel runs with its working directory set to your workspace root, you can read the file directly without typing complex system paths:
import pandas as pd
# Load the uploaded file directly
df = pd.read_csv("housing_data.csv")
# Display the first 5 records
df.head()
Using the Python Debugger
Learn how to pause execution, inspect local variables, and step through complex functions using Python's built-in debugger.
breakpoint() hook and the pdb engine, paired with ANSI-color tracebacks. A visual DAP (Debug Adapter Protocol) gutter breakpoint tool with step-over/step-into buttons is actively on our development roadmap.
How to Set Breakpoints in a Code Cell
To pause code execution at a specific line and inspect variables, insert breakpoint() where you want Python to pause:
def calculate_discount(price, customer_tier):
rate = 0.05
if customer_tier == "vip":
rate = 0.20
# Pause execution here to inspect variables
breakpoint()
final_price = price * (1 - rate)
return final_price
result = calculate_discount(150.0, "vip")
Essential Debugger Commands
| Command | Name | What It Does |
|---|---|---|
| p variable | Print Variable | Evaluates and prints the current value of variable (e.g., p rate). |
| n | Next | Executes the current line and advances to the next line in the function. |
| s | Step In | Steps inside the function call on the current line. |
| c | Continue | Resumes normal program execution until the next breakpoint. |
| q | Quit | Terminates the debugger immediately. |
Python Errors & How to Fix Them
A beginner's visual field guide to understanding common Python exceptions, identifying the root cause, and applying the permanent fix.
Errors are an expected part of every programmer's journey. When Python encounters an issue, Cloud Studio prints an ANSI-formatted error traceback showing the file, line number, and exact reason.
Cause: Python cannot understand the structure of your code—often a missing colon :, unclosed quotation mark, or mismatched bracket.
if age >= 18 # Missing colon!
print("Eligible")
if age >= 18: # Added colon
print("Eligible")
Cause: You are trying to use a variable or function that has not been defined yet, misspelled the name, or forgot to run the cell above where it was declared.
user_name = "Jordan"
print(username) # Misspelled underscore!
user_name = "Jordan"
print(user_name) # Exact match
Cause: Combining incompatible data types, such as adding a string to an integer.
age = 25
print("Your age is: " + age)
age = 25
print(f"Your age is: {age}") # Use f-strings
Cause: Attempting to import a package that is not yet installed in your runtime environment.
import rich
# Fails if 'rich' is not installed
# Run in a cell first:
%pip install rich
import rich # Now succeeds immediately!
Saving & Managing Your Work
Learn how to save notebooks, download `.ipynb` files to your computer, duplicate templates, and organize workspace files.
Saving Notebooks (`Ctrl+S`)
Whenever you edit code or generate new cell outputs, press Ctrl + S (or ⌘ + S on macOS). A toast notification confirms the save, and the file is written to your workspace storage in valid Jupyter Notebook format v4 JSON.
Using the Notebooks Manager Modal
Click the Notebooks button () in the top navbar to open the comprehensive Notebooks Management Dialog:
| Action | Button | Description |
|---|---|---|
| Switch Active | Click Notebook Card | Switches your active editor canvas to the selected notebook without page reload. |
| Download | Download .ipynb | Downloads the raw notebook directly to your computer's Downloads folder. |
| Duplicate | Duplicate | Creates an exact clone of the notebook (e.g., analysis_copy.ipynb) for safe experimentation. |
| Delete | Delete | Deletes the notebook after a confirmation prompt. |
Python Runtime & Kernel Management
Understand the underlying IPyKernel architecture, how ZeroMQ channels handle code execution, and how to safely reboot the runtime.
Kernel Architecture & Execution Pipeline
When you click Run or press Shift + Enter, your browser does not execute Python directly. Instead:
- The code string is packaged into a JSON execution message and sent via WebSocket to the FastAPI backend.
- The backend relays the request through high-performance ZeroMQ sockets to an isolated IPyKernel process.
- Output streams (stdout, stderr, display_data) stream back in real-time to your notebook canvas.
Restarting the Kernel
If your kernel becomes unresponsive or you want to wipe all variables from memory to start fresh:
- Click the Restart button () in the top navbar.
- The icon spins (
animate-spin) and the status pill turns pulsing blue (restarting). - A toast banner announces "Kernel restarted successfully".
- All active variables are wiped, and diagnostics refresh automatically.
Installing Packages with %pip
Learn how to install third-party Python libraries using magic commands, understand isolated user site-packages, and why restart is no longer required.
Installing Libraries Directly in a Code Cell
Need a package that isn't pre-installed? You can install it on-the-fly directly inside your notebook using the standard %pip magic command:
# Install any PyPI package into your workspace
%pip install rich polars scikit-learn
- Automatic User Isolation: When you run
%pip install, Cloud Studio automatically injects--userbehind the scenes. Packages are placed into your personal.local/lib/python3.x/site-packages. - No Kernel Restart Needed: Cloud Studio immediately invalidates Python's
sys.path_importer_cache. You can import your newly installed library in the very next cell without restarting the kernel! - Guest Protection: Guest accounts are restricted from altering the system environment. Sign in to install custom libraries.
Terminal & Shell Magics
Execute operating system shell commands safely using the `!` prefix, run IPython line magics, and understand security restrictions.
! and %). An embedded, full-featured web terminal (PTY / xterm.js) is on our development roadmap for enterprise deployment.
Running Shell Commands with `!`
Prefix any line in a code cell with an exclamation mark (!) to execute it in the underlying operating system environment:
# Inspect files in the current workspace directory
!dir
# Check active Python interpreter version
!python --version
Common IPython Magics
| Magic | Purpose | Example |
|---|---|---|
%time |
Measures execution time of a single statement. | %time sum(range(1000000)) |
%timeit |
Runs code multiple times to compute average benchmark. | %timeit [x**2 for x in range(1000)] |
%who |
Lists all defined variables in the kernel namespace. | %who |
%pip |
Installs packages into user site-packages. | %pip install rich |
Profile, Secrets & Themes
Manage API keys with the Secrets Modal, configure environment variables, and switch between System, Dark, and Light visual themes.
Managing API Keys with SecretsModal
Never hardcode sensitive API keys or database passwords in your notebook code! Python Cloud Studio includes a dedicated Secrets Manager:
- Click the Secrets button () in the top navbar.
- Choose from preset templates (
OPENAI_API_KEY,GEMINI_API_KEY,ANTHROPIC_API_KEY,HUGGINGFACE_API_KEY) or click + Add Custom Secret. - Secrets are stored securely in your private workspace
.envfile and automatically injected into Python'sos.environ.
import os
# Safely read secrets from environment variables
api_key = os.environ.get("OPENAI_API_KEY")
print("Key configured:", bool(api_key))
Switching Visual Themes
Click the Theme dropdown in the top navbar to choose:
- System: Automatically matches your operating system's light or dark mode setting.
- Dark: High-contrast modern dark palette engineered for low eye fatigue.
- Light: Crisp, clean high-contrast light theme ideal for classroom presentations and daytime work.
Sharing & Collaboration
Export your notebooks for colleagues, give new guests starter files, and present findings cleanly.
Ways to Share Your Work
1. Export as `.ipynb`
In the Notebooks Modal, click Download .ipynb. The file can be uploaded to GitHub, emailed to colleagues, or imported into Google Colab.
2. Starter Files for Guests
Guest workspaces are private, so guests cannot share files with each other. An administrator can place notebooks and data in the server's storage/workspaces/public/ folder: every new guest workspace starts with a copy of them.
3. Classroom Assignments
Instructors can publish assignment templates to classrooms where students can complete and submit their solutions.
Student Features & Assignments
How students join classrooms, complete coding assignments, run automated test cells, and submit their coursework.
Joining a Classroom
Instructors provide an enrollment join code (e.g., CS101-FALL). When enrolled as a student:
- Sign in to your private account using your student email.
- Assignments appear in your workspace under the
assignments/directory. - Open the assigned
.ipynbnotebook to begin your coursework.
Working with Autograded Test Cells
Many courses include validation cells containing assert statements:
# Exercise: Define a function 'celsius_to_fahrenheit'
def celsius_to_fahrenheit(c):
return (c * 9/5) + 32
# Automated Test Cell:
assert celsius_to_fahrenheit(0) == 32.0, "Test failed for 0°C"
assert celsius_to_fahrenheit(100) == 212.0, "Test failed for 100°C"
print("✔ All tests passed!")
If all assert statements execute without an AssertionError, your solution is verified!
Instructor & SuperAdmin Console
Comprehensive administration guide for managing users, installing system-wide packages, auditing workspaces, and reviewing security logs.
Users with super_admin or admin roles see an amber shield Admin button in the top navbar. Clicking it opens the SuperAdmin Dashboard:
1. System Overview
Live health metrics, active kernel process counts, memory utilization, and real-time user session activity.
2. User & Role Management
Manage users, assign roles (student, instructor, admin), suspend accounts, or reset user access.
3. System Packages Manager
Install or uninstall Python packages across the entire server environment with authorized package governance.
4. Workspaces & File Audit
Inspect tenant file trees, check quota allocations, and enforce organizational data retention policies.
5. Runtime & Kernel Controls
View running kernel sessions across all containers and force-restart hung kernels to reclaim server RAM.
6. Security Audit Logs
Immutable event log recording all logins, privilege escalations, package installations, and system configuration changes.
AI Coding Assistant
Harness the built-in AI assistant to generate Python code, explain tricky tracebacks, and insert working code directly into your notebook.
Accessing the AI Assistant
- Click the AI Assistant tab located in the Right Collapsible Panel.
- Type your question or coding request into the chat box (e.g., "How do I filter rows with missing values in Pandas?").
- The AI streams an explanation alongside a tested code snippet.
- Click Insert in Notebook to automatically append the code into a new cell on your active notebook canvas!
Keyboard Shortcuts Matrix
Every keyboard shortcut in Python Cloud Studio, for Windows, Linux, and macOS. The same list is available in the app: click Shortcuts in the notebook toolbar.
Run & control
| Action | Windows / Linux | macOS | Where |
|---|---|---|---|
| Run cell and stay on it | Ctrl + Enter | ⌘ + Enter | Code cell |
| Run cell and move to the next one (adds a cell at the end) | Shift + Enter | Shift + Enter | Code cell |
| Run cell and insert a new code cell below | Alt + Enter | ⌥ Option + Enter | Code cell |
| Render a Markdown cell | Ctrl + Enter or Shift + Enter | ⌘ + Enter or Shift + Enter | Markdown cell |
| Stop running code | Ctrl + C | ⌃ Control + C | While a cell runs and no text is selected (otherwise it copies) |
Submit a value typed into an input() box |
Enter | Enter | Input box under a running cell |
Editing code
| Action | Windows / Linux | macOS | Where |
|---|---|---|---|
| Comment / uncomment the current or selected lines | Ctrl + / | ⌘ + / | Code cell, .py file editor |
| Indent (insert 4 spaces, or indent the selected lines) | Tab | Tab | Code cell, file editor |
| Outdent the current or selected lines | Shift + Tab | Shift + Tab | Code cell, file editor |
New line keeping indentation (one level deeper after :) |
Enter | Enter | Code cell, .py file editor |
Suggestions & function help
| Action | Windows / Linux | macOS | Where |
|---|---|---|---|
| Show suggestions and function help | Ctrl + Space | ⌃ Control + Space | Code cell |
| Move through suggestions | ↑ / ↓ | ↑ / ↓ | Suggestion list open |
| Accept the highlighted suggestion | Enter or Tab | Enter or Tab | Suggestion list open |
| Close suggestions, then function help | Esc | Esc | Popup open |
Notebook & workspace
| Action | Windows / Linux | macOS | Where |
|---|---|---|---|
| Save the notebook (or the open file while you are editing it) | Ctrl + S | ⌘ + S | Anywhere |
| Show / hide the Files sidebar | Ctrl + B | ⌘ + B | Anywhere |
| Close dialogs and menus | Esc | Esc | Dialog or menu open |
| Search this user guide | Ctrl + K | ⌘ + K | This documentation |
Troubleshooting Knowledge Base
Step-by-step diagnostic trees and resolution procedures for common operational issues.
Symptom: The status pill in the top navbar shows red Disconnected and code cells will not run.
Solution: Check your local network or backend server. If running locally, ensure uvicorn on port 8765 is active. Refresh your browser tab. Cloud Studio automatically attempts reconnection.
Symptom: You ran pip install package in a terminal or cell, but Python says module not found.
Solution: Always use %pip install <package> (with the percent % prefix) inside a code cell. This guarantees the package is installed into the exact Python interpreter running the notebook kernel.
Symptom: The run button continuously spins and the status remains Python 3 (busy).
Solution: Click the Restart Kernel button in the top navbar. This sends a SIGTERM/SIGKILL signal to the hung process and restarts a clean kernel.
Symptom: FileNotFoundError: [Errno 2] No such file or directory: 'data.csv'
Solution: Check the Left Files Sidebar. Confirm the exact spelling and extension of the file. If inside a subfolder, include the folder path (e.g., pd.read_csv("datasets/data.csv")).
Frequently Asked Questions (FAQ)
Answers to the most common beginner, technical, and administration questions.
Q1: Do I need to install Python on my computer to use this?
No! Python Cloud Studio runs entirely in the cloud. All code execution happens on the remote server kernel.
Q2: Will my work be saved if I close the browser?
If you are signed in to a private account, your notebooks and uploaded datasets remain permanently saved in your private workspace. Remember to press Ctrl+S to save recent changes before closing.
Q3: Can I export my notebooks to run on Google Colab or VS Code?
Yes. Open the Notebooks Modal and click Download .ipynb. The downloaded file is a standard Jupyter Notebook v4 file compatible with Google Colab, VS Code, and JupyterLab.
Q4: How do I resize tall code cells?
Hover your cursor over the horizontal drag handle at the bottom of the code cell. Click and drag up or down to set any height between 80px and 800px. The height is saved automatically!
Quick Start Cheat Sheet
High-density, printable quick-reference sheet for everyday Python coding in Cloud Studio.
Python Basics
# Variables & Printing
x = 10
print(f"Value: {x}")
# Lists & Loops
items = [1, 2, 3]
for item in items:
print(item * 2)
Pandas Essentials
import pandas as pd
df = pd.read_csv("data.csv")
df.head() # View top 5 rows
df.describe() # Summary stats
df[df["col"] > 5] # Filter rows
Matplotlib Plotting
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 4))
plt.plot(x, y, label="Trend")
plt.title("Title")
plt.legend()
plt.show()
Comprehensive Glossary
Clear definitions for every core concept, architecture component, and terminology used in Python Cloud Studio.
- Kernel
- The background Python process that receives code from the web frontend, executes statements in memory, and returns stdout/outputs.
- ZeroMQ (ZMQ)
- The high-performance asynchronous messaging library used to route commands between the web server and the IPython kernel.
- Monaco Editor
- The open-source code editor component powering Visual Studio Code and Python Cloud Studio's code cells.
- DataTableView
- Cloud Studio's interactive table component for sorting, filtering, and exporting Pandas DataFrames.
- Diagnostics
- Real-time static code analysis that flags syntax errors and missing imports with red squiggly underlines.
- Guest Workspace
- The zero-login workspace each browser gets: private to that browser, with a copy kept in the browser so work survives a refresh or a return visit.
- Private Workspace
- The isolated tenant storage directory assigned to a registered user, protected by JWT authentication.
Tutorial A: Hello World & Modern String Formatting
Learn the universal first step in programming: creating variables, formatting strings using Python f-strings, and printing output.
Goal: Write a program that greets the user with their name and displays the current year using Python.
import datetime
user_name = "Alex"
current_year = datetime.datetime.now().year
# Use Python 3.6+ f-strings for clean formatting
greeting = f"Hello, {user_name}! Welcome to Python Cloud Studio in {current_year}."
print(greeting)
Hello, Alex! Welcome to Python Cloud Studio in 2026.
f"..." strings over old-style string concatenation ("Hello " + name). They prevent TypeError when embedding numbers and make your code much easier to read.
Tutorial B: Simple Calculator & Numerical Types
Explore integers, floats, arithmetic operators, and how Python handles mathematical calculations.
Goal: Calculate the monthly payment and total cost of an equipment purchase with tax and interest.
# Define base parameters
item_price = 1200.00
sales_tax_rate = 0.0825 # 8.25%
months = 12
# Calculate totals
total_tax = item_price * sales_tax_rate
total_price = item_price + total_tax
monthly_installment = total_price / months
print(f"Base Price: ${item_price:,.2f}")
print(f"Sales Tax: ${total_tax:,.2f}")
print(f"Total Purchase: ${total_price:,.2f}")
print(f"Monthly Payment: ${monthly_installment:,.2f} / month")
Base Price: $1,200.00 Sales Tax: $99.00 Total Purchase: $1,299.00 Monthly Payment: $108.25 / month
Tutorial C: Lists, Dictionaries, and Loops
Organize collections of real-world information using Python lists and dictionaries, and iterate through them with loops.
Goal: Manage student grade records and compute passing status.
# List of dictionaries representing students
students = [
{"name": "Liam", "score": 88, "major": "Computer Science"},
{"name": "Emma", "score": 94, "major": "Data Science"},
{"name": "Noah", "score": 67, "major": "Engineering"},
{"name": "Olivia", "score": 91, "major": "Mathematics"}
]
print("--- Course Grade Audit ---")
for student in students:
passed = student["score"] >= 70
status = "PASS" if passed else "RETAKE"
print(f"Student: {student['name']:<8} | Score: {student['score']} | Status: {status}")
--- Course Grade Audit --- Student: Liam | Score: 88 | Status: PASS Student: Emma | Score: 94 | Status: PASS Student: Noah | Score: 67 | Status: RETAKE Student: Olivia | Score: 91 | Status: PASS
Tutorial D: Interactive Pandas Table Exploration
Build a Pandas DataFrame and test the sorting, searching, and exporting powers of the interactive DataTableView component.
Goal: Create a multi-column dataset and use DataTableView's interactive tools.
import pandas as pd
# Create a sample sales dataset
data = {
"Region": ["North", "South", "East", "West", "North", "South", "East", "West"],
"Product": ["Laptops", "Desktops", "Tablets", "Phones", "Monitors", "Laptops", "Phones", "Tablets"],
"Units_Sold": [140, 85, 210, 340, 115, 195, 290, 180],
"Revenue": [168000, 68000, 105000, 272000, 46000, 234000, 232000, 90000]
}
df_sales = pd.DataFrame(data)
# Evaluating df_sales activates the interactive DataTableView automatically!
df_sales
- Click the Revenue column header to sort highest to lowest.
- Type
Northinto the search box to filter instantly. - Click Copy TSV and paste directly into Excel or Google Sheets.
Tutorial E: CSV Upload & Summary Statistics
Upload a comma-separated values (CSV) file, inspect missing values, and calculate statistical summaries.
Goal: Load a local file and run an automated statistical profile.
import pandas as pd
# Load dataset (upload 'customers.csv' via left sidebar first)
# For this tutorial, we will generate synthetic data:
data = {
"Age": [22, 35, 58, 41, 29, 63, 38, 47],
"Annual_Spend": [1200, 4500, 8900, 5200, 3100, 11200, 6400, 7100],
"Loyalty_Years": [1.0, 3.5, 7.0, 4.0, 2.0, 10.0, 4.5, 5.0]
}
df = pd.DataFrame(data)
# Generate 5-number statistical summary
df.describe()
Tutorial F: Matplotlib Chart Creation
Generate an attractive comparative bar chart showing quarterly business revenue.
import matplotlib.pyplot as plt
quarters = ["Q1 2025", "Q2 2025", "Q3 2025", "Q4 2025", "Q1 2026"]
revenue_millions = [3.2, 4.1, 4.8, 6.2, 6.9]
colors = ["#93c5fd", "#60a5fa", "#3b82f6", "#2563eb", "#1d4ed8"]
plt.figure(figsize=(8, 4.5), dpi=100)
bars = plt.bar(quarters, revenue_millions, color=colors, width=0.55)
plt.title("Quarterly Revenue Growth (USD Millions)", fontsize=13, fontweight="bold", pad=12)
plt.ylabel("Revenue ($M)", fontsize=11)
plt.ylim(0, 8)
plt.grid(axis="y", linestyle="--", alpha=0.5)
# Add values above each bar
for bar in bars:
height = bar.get_height()
plt.annotate(f"${height:.1f}M",
xy=(bar.get_x() + bar.get_width() / 2, height),
xytext=(0, 4), textcoords="offset points",
ha="center", va="bottom", fontweight="bold")
plt.tight_layout()
plt.show()
Tutorial G: Find & Fix Syntax Error
Experience Cloud Studio's real-time squiggly line diagnostics and learn how to resolve syntax mistakes.
Scenario: You type code with an unclosed bracket. Notice the red squiggly line appears in the editor.
# Notice how brackets must always balance in pairs () [] {}
temperatures = [72, 68, 75, 79, 81] # All brackets closed
avg_temp = sum(temperatures) / len(temperatures)
print(f"Average temperature: {avg_temp:.1f}°F")
Tutorial H: Debugging a Function with breakpoint()
Step into a running function, inspect its local parameters, and confirm variable values before they cause bugs.
def calculate_bonus(salary, performance_score):
multiplier = 0.05
if performance_score > 90:
multiplier = 0.15
elif performance_score > 80:
multiplier = 0.10
bonus = salary * multiplier
return bonus
# Test with employee record
bonus_payout = calculate_bonus(95000, 92)
print(f"Calculated Bonus: ${bonus_payout:,.2f}")
Tutorial I: Save & Download Your Work
Protect your progress with keyboard shortcuts and export your notebook to your local computer.
- Press Ctrl + S to save all recent cell additions and outputs.
- Click the Notebooks button in the top navbar.
- Find your current notebook card and click Download .ipynb.
- The file is saved to your computer, ready to submit to an instructor or open in VS Code.
Tutorial J: End-to-End Multi-Cell Data Pipeline
Connect three code cells together: Cell 1 ingests data, Cell 2 cleans and computes KPIs, and Cell 3 charts the results.
Cell 1: Ingest Raw Data
import pandas as pd
import matplotlib.pyplot as plt
raw_data = {
"Month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"Signups": [1200, 1450, 1900, 2300, 2800, 3400],
"Churn": [45, 52, 60, 71, 80, 89]
}
df_metrics = pd.DataFrame(raw_data)
print("✔ Cell 1 Complete: Raw metrics ingested.")
Cell 2: Compute Net Growth
# Notice df_metrics is shared across cells!
df_metrics["Net_Gain"] = df_metrics["Signups"] - df_metrics["Churn"]
df_metrics["Growth_Pct"] = df_metrics["Net_Gain"].pct_change() * 100
df_metrics
Cell 3: Visualize Growth Trend
plt.figure(figsize=(7.5, 3.8))
plt.plot(df_metrics["Month"], df_metrics["Net_Gain"], marker="o", color="#2563eb", linewidth=2.5)
plt.title("Net Monthly User Acquisition", fontweight="bold")
plt.ylabel("Net New Users")
plt.grid(True, linestyle=":", alpha=0.6)
plt.tight_layout()
plt.show()