warnings

    
      
diff --git a/pythonetc/README.md b/pythonetc/README.md
index 756182e..f53bf60 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -24,6 +24,7 @@ You don't need telegram to read the channel using the link above. If neither of
 + del
 + del2
 + gc_is_finalized
++ warnings
 
 ## To write
 
diff --git a/pythonetc/warnings.md b/pythonetc/warnings.md
new file mode 100644
index 0000000..79a78a3
--- /dev/null
+++ b/pythonetc/warnings.md
@@ -0,0 +1,41 @@
+# warnings
+
+The module [warnings](https://docs.python.org/3/library/warnings.html) allows to print, well, warnings. Most often, it is used to warn users of a library that the module, function, or argument they use is deprecated.
+
+```python
+import warnings
+
+def g():
+  return 2
+
+def f():
+  warnings.warn(
+    "f is deprecated, use g instead",
+    DeprecationWarning,
+  )
+  return g()
+
+f()
+```
+
+The output:
+
+```python
+example.py:7: DeprecationWarning: function f is deprecated, use g instead
+  warnings.warn(
+```
+
+Note that `DeprecationWarning`, as well as [other warning categories](https://docs.python.org/3/library/warnings.html#warning-categories), is a built-in and doesn't need to be imported from anywhere.
+
+When running tests, pytest will collect all warnings and report them at the end. If you want to get the full traceback to the warning or enter there with a debugger, the easiest way to do so is to turn all warnings into exceptions:
+
+```python
+warnings.filterwarnings("error")
+```
+
+On the production, you can suppress warnings. Or, better, turn them into proper log records, so it will collected wherever you collect logs:
+
+```python
+import logging
+logging.captureWarnings(True)
+```