Skip to content

Instantly share code, notes, and snippets.

@tonybaloney
Last active February 3, 2025 23:59
Show Gist options
  • Save tonybaloney/88c121e6762b81cef0a1b8673e1da7cf to your computer and use it in GitHub Desktop.
Save tonybaloney/88c121e6762b81cef0a1b8673e1da7cf to your computer and use it in GitHub Desktop.
Ant's pedantic Python Copilot instructions

Python Rules

  • Where possible, prefer duck-typing tests than isinstance, e.g. hasattr(x, attr) not isinstance(x, SpecificClass)
  • Use modern Python 3.9+ syntax
  • Prefer f-strings for formatting strings rather than .format or % formatting
  • When creating log statements, never use runtime string formatting. Use the extra argument and % placeholders in the log message
  • When generating union types, use the union operator, | , not the typing.Union type
  • When merging dictionaries, use the union operator
  • When writing type hints for standard generics like dict, list, tuple, use the PEP-585 spec, not typing.Dict, typing.List, etc.
  • Use type annotations in function and method signatures, unless the rest of the code base does not have type signatures
  • Do not add inline type annotations for local variables when they are declared and assigned in the same statement.
  • Prefer pathlib over os.path for operations like path joining
  • When using open() in text-mode, explicitly set encoding to utf-8
  • Prefer argparse over optparse
  • Use the builtin methods in the itertools module for common tasks on iterables rather than creating code to achieve the same result
  • When creating dummy data, don't use "Foo" and "Bar", be more creative
  • When creating dummy data in strings like names don't just create English data, create data in a range of languages like English, Spanish, Mandarin, and Hindi
  • When asked to create a function, class, or other piece of standalone code, don't append example calls unless otherwise told to
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment