-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_hover.py
More file actions
124 lines (90 loc) · 4.72 KB
/
Copy pathtest_hover.py
File metadata and controls
124 lines (90 loc) · 4.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
"""PyHover test file — hover over any of the symbols below to see the improved UI."""
import asyncio
import os
import os.path
from dataclasses import dataclass
from pathlib import Path
import click
import fastapi
import numpy as np
import pandas as pd
# ── Builtins ──────────────────────────────────────────────────────────────────
x = [1, 2, 3] # hover over [ → list
y = {"a": 1} # hover over { → dict
z = "hello" # hover over " → str
template = f"value={z}" # hover over the leading f / opening quote → f-string docs
n = None # hover over None
e = ... # hover over ... → Ellipsis
_ = click.File
_ = fastapi.FastAPI().middleware # hover over FastAPI
_ = fastapi.FastAPI().add_middleware # hover over add_middleware
_ = fastapi.FastAPI().get # hover over get
result = len(x) # hover over len
items = list(range(10)) # hover over list, range
pairs = zip(x, x) # hover over zip
evens = filter(None, x) # hover over filter
mapped = map(str, x) # hover over map
found = isinstance(x, list) # hover over isinstance
joined_text = "a, b" # hover over string literal
lookup = {"name": "atlas"}.get("name") # hover over get
appended = x.copy() # hover over copy
appended.append(4) # hover over append
# ── stdlib ────────────────────────────────────────────────────────────────────
joined = os.path.join("a", "b", "c") # hover over join
exists = os.path.exists("/tmp") # hover over exists
expanded = os.path.expanduser("~") # hover over expanduser
listed = os.listdir(".") # hover over listdir
path_exists = Path(".").exists() # hover over exists
path_name = Path("file.txt").with_suffix(".md") # hover over with_suffix
# ── Keywords ──────────────────────────────────────────────────────────────────
for i in range(3): # hover over for
if i > 1: # hover over if
pass # hover over pass
match x: # hover over match
case [first, *rest]: # hover over case
matched = first, rest
value = 1 if x else 0 # hover over if / else
nums = [item for item in x if item % 2 == 0] # hover over for / if
mapping = {item: item * 2 for item in x} # hover over for
frozen = {item for item in x} # hover over for
generator = (item * 2 for item in x) # hover over for
with open(__file__, "r", encoding="utf-8") as handle: # hover over with / as / open
preview = handle.readline() # hover over readline
async def fetch(): # hover over async
await asyncio.sleep(0) # hover over await
def gen():
yield 42 # hover over yield
# ── Third-party ───────────────────────────────────────────────────────────────
arr = np.array([1, 2, 3]) # hover over array
mean = np.mean(arr) # hover over mean
df = pd.DataFrame({"a": [1]}) # hover over DataFrame
agg = df.agg("sum") # hover over agg
grouped = df.groupby("a") # hover over groupby
renamed = df.rename(columns={"a": "value"}) # hover over rename
series_text = df["a"].astype(str) # hover over astype
# ── Typing ────────────────────────────────────────────────────────────────────
def greet(name: str | None) -> str: # hover over |
return f"Hello {name}"
debug_label = f"{x=} {joined_text}" # hover over the f-string prefix / opening quote
def process(items: list[int | str]) -> None: # hover over |
pass
# ── Local code ────────────────────────────────────────────────────────────────
@dataclass
class EmployeeCard:
name: str
age: int
class Person:
"""A simple person class."""
def __init__(self, name: str, age: int):
self.name = name
self.age = age
def greet(self) -> str:
"""Return a greeting."""
return f"Hi, I'm {self.name}"
def __str__(self) -> str: # hover over __str__
return f"Person(name={self.name}, age={self.age})"
p = Person("Alice", 30)
msg = p.greet() # hover over greet
person_name = p.name.upper() # hover over upper
person_badge = f"{p.name=} ({p.age})" # hover over the f-string prefix / opening quote
card = EmployeeCard("Alice", 30) # hover over dataclass / EmployeeCard