python.snippets (6150B)
1 snippet #! "#!/usr/bin/env python" b 2 #!/usr/bin/env python 3 $0 4 endsnippet 5 6 7 snippet ifmain "ifmain" b 8 if __name__ == "__main__": 9 ${1:${VISUAL:main()}} 10 endsnippet 11 12 13 snippet with "with" b 14 with ${1:expr}`!p snip.rv = " as " if t[2] else ""`${2:var}: 15 ${3:${VISUAL:pass}} 16 $0 17 endsnippet 18 19 20 snippet for "for loop" b 21 for ${1:item} in ${2:iterable}: 22 ${3:${VISUAL:pass}} 23 $0 24 endsnippet 25 26 # --------------------------------------------- # 27 28 snippet sized "Sized" b 29 def __len__(self): 30 ${2:pass} 31 endsnippet 32 33 34 snippet sequence "Sequence" b 35 def __getitem__(self, index): 36 ${1:pass} 37 38 def __len__(self): 39 ${2:pass} 40 endsnippet 41 42 43 snippet contextmanager "AbstractContextManager" b 44 def __enter__(self): 45 ${1:pass} 46 47 def __exit__(self, exc_type, exc_value, traceback): 48 ${2:pass} 49 endsnippet 50 51 52 snippet descriptor "Descriptor" b 53 def __get__(self, instance, owner): 54 ${1:pass} 55 56 def __set__(self, instance, value): 57 ${2:pass} 58 59 def __delete__(self, instance): 60 ${3:pass} 61 endsnippet 62 63 64 snippet repr "__repr__" b 65 def __repr__(self): 66 ${1:pass} 67 endsnippet 68 69 # --------------------------------------------- # 70 71 global !p 72 73 class Arg: 74 def __init__(self, arg): 75 self.arg = arg 76 name_and_type = arg.split('=')[0].split(':') 77 self.name = name_and_type[0].strip() 78 self.type = name_and_type[1].strip() if len(name_and_type) == 2 else None 79 80 def get_args(arglist): 81 args = [] 82 n = len(arglist) 83 i = 0 84 while i < n: 85 l_bracket = 0 86 start = i 87 while i < n and (l_bracket > 0 or arglist[i] != ','): 88 if arglist[i] == '[': 89 l_bracket += 1 90 elif arglist[i] == ']' and l_bracket > 0: 91 l_bracket -= 1 92 i += 1 93 arg = arglist[start:i] 94 if arg: 95 args.append(Arg(arg)) 96 i += 1 97 98 args = [arg for arg in args if arg.name != 'self'] 99 100 return args 101 endglobal 102 103 104 snippet def "function with docstrings" b 105 def ${1:function}(`!p 106 if snip.indent: 107 snip.rv = 'self' + (", " if len(t[2]) else "")`${2:arg1: Type1}) -> ${3:None}:`!p 108 snip.rv = "" 109 if t[4]: 110 snip >> 1 111 snip += '"""' 112 snip += "" 113 `${4:TODO: Docstring for $1.}`!p 114 snip.rv = "" 115 if t[4]: 116 snip >> 1 117 118 args = get_args(t[2]) 119 for arg in args: 120 snip += ":param {}: TODO".format(arg.name) 121 122 if t[3] != "None": 123 snip += ":returns: TODO" 124 125 snip += '"""' 126 ` 127 ${5:${VISUAL:pass}} 128 endsnippet 129 130 131 snippet defc "class method with docstrings" b 132 @classmethod 133 def ${1:function}(`!p 134 if snip.indent: 135 snip.rv = 'cls' + (", " if len(t[2]) else "")`${2:arg1}) -> ${3:None}: 136 """${4:TODO: Docstring for $1.}`!p 137 138 snip.rv = "" 139 snip >> 1 140 141 args = get_args(t[2]) 142 for arg in args: 143 snip += ":param {}: TODO".format(arg.name) 144 145 if t[3] != "None": 146 snip += ":returns: TODO" 147 ` 148 """ 149 ${5:${VISUAL:pass}} 150 endsnippet 151 152 153 snippet defs "static method with docstrings" b 154 @staticmethod 155 def ${1:function}(${2:arg1}) -> ${3:None}: 156 """${4:TODO: Docstring for $1.}`!p 157 snip.rv = "" 158 snip >> 1 159 160 args = get_args(t[2]) 161 for arg in args: 162 snip += ":param {}: TODO".format(arg.name) 163 164 if t[3] != "None": 165 snip += ":returns: TODO" 166 ` 167 """ 168 169 ${5:${VISUAL:pass}} 170 endsnippet 171 172 173 snippet class "class with docstrings" b 174 class ${1:MyClass}`!p snip.rv = "(" if t[2] else ""`${2:Parent}`!p snip.rv = ")" if t[2] else ""`: 175 """${3:Docstring for $1.}`!p 176 snip.rv = "" 177 snip >> 1 178 args = get_args(t[4]) 179 if args: 180 snip.rv += "\n" + snip.mkline("") 181 for arg in args: 182 snip += ":param {}: TODO".format(arg.name) 183 ` 184 """ 185 def __init__(self`!p snip.rv = ", " if t[4] else ""`${4:arg1: Type1}) -> None:`!p 186 snip >> 2 187 snip.rv = "" 188 if t[2]: 189 # If has parent class 190 snip += "super().__init__()" 191 192 if args and t[2]: 193 snip.rv += '\n' + snip.mkline("") 194 195 for arg in args: 196 # Initialize attributes 197 snip += "self._{} = {}".format(arg.name, arg.name) 198 ` 199 200 $5 201 endsnippet 202 203 204 snippet dcl "dataclass" b 205 @dataclass`!p snip.rv = "(" if t[1] or t[2] else ""`${1/(.+)/(?1:frozen=)/}${1:True}`!p snip.rv = ', ' if t[1] and t[2] else ""`${2/(.+)/(?1:order=)/}${2:True}`!p snip.rv = ")" if t[1] or t[2] else ""` 206 class ${3:MyClass}: 207 """${4:Docstring for $3.} 208 """ 209 var_1: int 210 var_2: float 211 var_3: str 212 endsnippet 213 214 215 snippet namedtuple "namedtuple" b 216 ${1:MyNamedTuple} = namedtuple("$1", (${2:"attr1", "attr2"})) 217 $0 218 219 endsnippet 220 221 222 snippet if "If" b 223 if ${1:condition}: 224 ${2:${VISUAL:pass}} 225 endsnippet 226 227 228 snippet ife "If / Else" b 229 if ${1:condition}: 230 ${2:${VISUAL:pass}} 231 else: 232 ${3:pass} 233 endsnippet 234 235 236 snippet ifee "If / Elif / Else" b 237 if ${1:condition}: 238 ${2:${VISUAL:pass}} 239 elif ${3:condition}: 240 ${4:pass} 241 else: 242 ${5:pass} 243 endsnippet 244 245 246 snippet initpkg "Init file for package" b 247 """${1:project_name} 248 249 ${2:project_description} 250 """ 251 252 __version__ = "${3:0.1}" 253 endsnippet 254 255 256 snippet ppe "ProcessPoolExecutor" b 257 with concurrent.futures.ProcessPoolExecutor(max_workers=${1:4}) as executor: 258 ${0:emap or cfac} 259 endsnippet 260 261 262 snippet tpe "ThreadPoolExecutor" b 263 with concurrent.futures.ThreadPoolExecutor(max_workers=${1:4}) as executor: 264 ${0:emap or cfac} 265 endsnippet 266 267 268 snippet emap "executor.map" b 269 ${1:results} = executor.map(${2:func}, ${3:iterable}) 270 $0 271 endsnippet 272 273 274 snippet cfac "concurrent.futures.as_completed" b 275 futures = (executor.submit(${1:func}, ${2:args}) for $2 in ${3:iterable}) 276 277 for future in concurrent.futures.as_completed(futures): 278 result = future.result() 279 $0 280 endsnippet 281 282 283 snippet perf_counter "time.perf_counter()" b 284 start_time = time.perf_counter() 285 print("Start: ${1:name}") 286 287 ${2:${VISUAL:pass}} 288 289 end_time = time.perf_counter() 290 print(f"End: $1 ({end_time - start_time:.2f}s)") 291 $0 292 endsnippet 293 294 295 snippet tempdir "tempfile.TemporaryDirectory()" b 296 with tempfile.TemporaryDirectory() as ${1:tmpdirname}: 297 ${2:${VISUAL:pass}} 298 endsnippet 299 300 301 snippet zipfile "zipfile.ZipFile" b 302 with zipfile.ZipFile(${1:zip_path},"r") as zip_ref: 303 zip_ref.extract(member, target_dir) 304 zip_ref.extractall(target_dir) 305 $0 306 endsnippet 307 308 309 snippet ET "xml.etree.ElementTree" b 310 tree = ET.parse(${1:path}) 311 ${2:root} = tree.getroot() 312 endsnippet 313 314 315 snippet printf "print(f'{value=}')" b 316 print(f"{${1:value}=}") 317 endsnippet 318 319 320 snippet importlib "import file" b 321 spec = importlib.util.spec_from_file_location(${1:module_name}, ${2:file_path}) 322 ${3:module} = importlib.util.module_from_spec(spec) 323 spec.loader.exec_module($3) 324 $0 325 endsnippet 326 327 328 snippet argparse "argparse" b 329 parser = argparse.ArgumentParser() 330 parser.add_argument(${1:"arg1"}) 331 args = parser.parse_args() 332 endsnippet