This file is indexed.

/usr/lib/python3/dist-packages/scrapy/log.py is in python3-scrapy 1.5.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""
This module is kept to provide a helpful warning about its removal.
"""
import logging
import warnings

from twisted.python.failure import Failure

from scrapy.exceptions import ScrapyDeprecationWarning
from scrapy.utils.log import failure_to_exc_info

logger = logging.getLogger(__name__)

warnings.warn("Module `scrapy.log` has been deprecated, Scrapy now relies on "
              "the builtin Python library for logging. Read the updated "
              "logging entry in the documentation to learn more.",
              ScrapyDeprecationWarning, stacklevel=2)


# Imports and level_names variable kept for backwards-compatibility

DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
ERROR = logging.ERROR
CRITICAL = logging.CRITICAL
SILENT = CRITICAL + 1

level_names = {
    logging.DEBUG: "DEBUG",
    logging.INFO: "INFO",
    logging.WARNING: "WARNING",
    logging.ERROR: "ERROR",
    logging.CRITICAL: "CRITICAL",
    SILENT: "SILENT",
}


def msg(message=None, _level=logging.INFO, **kw):
    warnings.warn('log.msg has been deprecated, create a python logger and '
                  'log through it instead',
                  ScrapyDeprecationWarning, stacklevel=2)

    level = kw.pop('level', _level)
    message = kw.pop('format', message)
    # NOTE: logger.log doesn't handle well passing empty dictionaries with format
    # arguments because of some weird use-case:
    # https://hg.python.org/cpython/file/648dcafa7e5f/Lib/logging/__init__.py#l269
    logger.log(level, message, *[kw] if kw else [])


def err(_stuff=None, _why=None, **kw):
    warnings.warn('log.err has been deprecated, create a python logger and '
                  'use its error method instead',
                  ScrapyDeprecationWarning, stacklevel=2)

    level = kw.pop('level', logging.ERROR)
    failure = kw.pop('failure', _stuff) or Failure()
    message = kw.pop('why', _why) or failure.value
    logger.log(level, message, *[kw] if kw else [], exc_info=failure_to_exc_info(failure))