pre-commit-hooks: python3.6+
diff --git a/pre_commit_hooks/mixed_line_ending.py b/pre_commit_hooks/mixed_line_ending.py
index 90aef03..0ef8e2c 100644
--- a/pre_commit_hooks/mixed_line_ending.py
+++ b/pre_commit_hooks/mixed_line_ending.py
@@ -1,7 +1,3 @@
-from __future__ import absolute_import
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import argparse
 import collections
 from typing import Dict
@@ -17,7 +13,7 @@
 FIX_TO_LINE_ENDING = {'cr': CR, 'crlf': CRLF, 'lf': LF}
 
 
-def _fix(filename, contents, ending):  # type: (str, bytes, bytes) -> None
+def _fix(filename: str, contents: bytes, ending: bytes) -> None:
     new_contents = b''.join(
         line.rstrip(b'\r\n') + ending for line in contents.splitlines(True)
     )
@@ -25,11 +21,11 @@
         f.write(new_contents)
 
 
-def fix_filename(filename, fix):  # type: (str, str) -> int
+def fix_filename(filename: str, fix: str) -> int:
     with open(filename, 'rb') as f:
         contents = f.read()
 
-    counts = collections.defaultdict(int)  # type: Dict[bytes, int]
+    counts: Dict[bytes, int] = collections.defaultdict(int)
 
     for line in contents.splitlines(True):
         for ending in ALL_ENDINGS:
@@ -66,7 +62,7 @@
         return other_endings
 
 
-def main(argv=None):  # type: (Optional[Sequence[str]]) -> int
+def main(argv: Optional[Sequence[str]] = None) -> int:
     parser = argparse.ArgumentParser()
     parser.add_argument(
         '-f', '--fix',
@@ -81,9 +77,9 @@
     for filename in args.filenames:
         if fix_filename(filename, args.fix):
             if args.fix == 'no':
-                print('{}: mixed line endings'.format(filename))
+                print(f'{filename}: mixed line endings')
             else:
-                print('{}: fixed mixed line endings'.format(filename))
+                print(f'{filename}: fixed mixed line endings')
             retv = 1
     return retv