33rd Week of 2021
Computer Science⚑
GNULinux⚑
Bash⚑
-
New: Remove an environment variable.
To remove an exported environment variable use:
unset VARIABLE
Programming⚑
Basics⚑
-
New: Abstract base classes.
abstract base classes (ABCs) in Python, as outlined in PEP 3119.
-
New: Enum.
An enumeration is a set of symbolic names (members) bound to unique, constant values. Within an enumeration, the members can be compared by identity, and the enumeration itself can be iterated over.
-
New: Custom exceptions.
To provide more insightful error messages related to our code, we can create custom exceptions. For example:
class ColorError(ValueError): def __init__(self, color): message = f"Invalid color {color}." super().__init__(message) -
New: String remove prefix suffix methods.
str.removeprefix(prefix): If the string starts with the prefix string, returnstr[len(prefix):]. Otherwise, return a copy of the original string.str.removesuffix(suffix): If the string ends with the suffix string and that suffix is not empty, returnstr[:-len(suffix)]. Otherwise, return a copy of the original string.
-
New: Current local date and time.
-
New: TypedDict.
Special construct to add type hints to a dictionary. At runtime it is a plain
dict.Example:
class Point2D(TypedDict): x: int y: int label: str a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check
Docstrings⚑
-
New: Python docstrings.
A docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. Such a docstring becomes the
__doc__special attribute of that object. See PEP 257
mypy⚑
-
New: Mypy.
mypyis a static type checker for Python. -
New: Ignore line for type checking.
To ignore type checking in one particular line of the code, add the comment
# type: ignoreat the end of that line
pydantic⚑
-
New: Pydantic.
pydantic: data validation and settings management using python type annotations.
Enforces type hints at runtime, and provides user friendly errors when data is invalid.
-
New: Validators.
Custom validation and complex relationships between objects can be achieved using the
validatordecorator. -
New: Validators advanced use.
-
New: Root_validator.
Validation can also be performed on the entire model's data.
pytest⚑
-
New: Coverage.py.
To see which parts of your code are executed when running the tests, you can use Coverage.py.
requests⚑
-
New: Python requests library.
Requests is an elegant and simple HTTP library for Python, built for human beings.
Snippets⚑
-
New: Find in dictionary.
Find first element in dictionary that satisfies a condition:
next(item for item in {dict} if {{ condition }})
Other⚑
-
New: Breakpoint().
Since Python 3.7, we can just call
breakpoint()and this will importpdb(or the debugger defined in the environment variablePYTHONBREAKPOINT) and set the breakpoint in that part of the code. This will stop the program execution once the breakpoint is reached. Then, an interactive console while appear. -
New: Order of abstractmethod classmethod.
Use
@abstractmethodbeforeclassmethod. See Issue 16267.