externals: avoid importing requests in jsonschema

Spack doesn't need `requests`, and neither does `jsonschema`, but
`jsonschema` tries to import it, and it'll succeed if `requests` is on
your machine (which is likely, given how popular it is).  This commit
removes the import to improve Spack's startup time a bit.

On a mac with SSD, the import of requests is ~28% of Spack's startup time
when run as `spack --print-shell-vars sh,modules` (.069 / .25 seconds),
which is what `setup-env.sh` runs.

On a Linux cluster where Python is mounted from NFS, this reduces
`setup-env.sh` source time from ~1s to .75s.

Note: This issue will be eliminated if we upgrade to a newer `jsonschema`
(we'd need to drop Python 2.6 for that).  See
https://github.com/Julian/jsonschema/pull/388.
This commit is contained in:
Todd Gamblin 2019-09-21 15:47:34 -07:00
parent ef652ee42a
commit 7a1dd517b8

View file

@ -4,10 +4,7 @@
import json
import numbers
try:
import requests
except ImportError:
requests = None
requests = None
from jsonschema import _utils, _validators
from jsonschema.compat import (