summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorMatti Picus <matti.picus@gmail.com>2022-08-04 08:19:07 +0300
committerGitHub <noreply@github.com>2022-08-04 08:19:07 +0300
commit807e4076730f926804ef68b5b048f075b4310543 (patch)
tree254c3f6ccfc2ee7a93357ced4659e75ac6528609 /numpy
parent7c8e1134ae86f8a8c002e1068337bec63ddf7f0d (diff)
parent88466d22b64b665b080d703067b0ce8a0e20181b (diff)
downloadnumpy-807e4076730f926804ef68b5b048f075b4310543.tar.gz
Merge pull request #22060 from eendebakpt/performance/import_time
PERF: Improve import time of numpy
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/_add_newdocs_scalars.py37
1 files changed, 29 insertions, 8 deletions
diff --git a/numpy/core/_add_newdocs_scalars.py b/numpy/core/_add_newdocs_scalars.py
index 94859a9d5..491052fae 100644
--- a/numpy/core/_add_newdocs_scalars.py
+++ b/numpy/core/_add_newdocs_scalars.py
@@ -3,10 +3,11 @@ This file is separate from ``_add_newdocs.py`` so that it can be mocked out by
our sphinx ``conf.py`` during doc builds, where we want to avoid showing
platform-dependent information.
"""
+import sys
+import os
from numpy.core import dtype
from numpy.core import numerictypes as _numerictypes
from numpy.core.function_base import add_newdoc
-import platform
##############################################################################
#
@@ -50,6 +51,21 @@ possible_aliases = numeric_type_aliases([
])
+def _get_platform_and_machine():
+ try:
+ system, _, _, _, machine = os.uname()
+ except AttributeError:
+ system = sys.platform
+ if system == 'win32':
+ machine = os.environ.get('PROCESSOR_ARCHITEW6432', '') \
+ or os.environ.get('PROCESSOR_ARCHITECTURE', '')
+ else:
+ machine = 'unknown'
+ return system, machine
+
+
+_system, _machine = _get_platform_and_machine()
+_doc_alias_string = f":Alias on this platform ({_system} {_machine}):"
def add_newdoc_for_scalar_type(obj, fixed_aliases, doc):
@@ -57,17 +73,22 @@ def add_newdoc_for_scalar_type(obj, fixed_aliases, doc):
o = getattr(_numerictypes, obj)
character_code = dtype(o).char
- canonical_name_doc = "" if obj == o.__name__ else ":Canonical name: `numpy.{}`\n ".format(obj)
- alias_doc = ''.join(":Alias: `numpy.{}`\n ".format(alias) for alias in fixed_aliases)
- alias_doc += ''.join(":Alias on this platform ({} {}): `numpy.{}`: {}.\n ".format(platform.system(), platform.machine(), alias, doc)
+ canonical_name_doc = "" if obj == o.__name__ else \
+ f":Canonical name: `numpy.{obj}`\n "
+ if fixed_aliases:
+ alias_doc = ''.join(f":Alias: `numpy.{alias}`\n "
+ for alias in fixed_aliases)
+ else:
+ alias_doc = ''
+ alias_doc += ''.join(f"{_doc_alias_string} `numpy.{alias}`: {doc}.\n "
for (alias_type, alias, doc) in possible_aliases if alias_type is o)
- docstring = """
- {doc}
+
+ docstring = f"""
+ {doc.strip()}
:Character code: ``'{character_code}'``
{canonical_name_doc}{alias_doc}
- """.format(doc=doc.strip(), character_code=character_code,
- canonical_name_doc=canonical_name_doc, alias_doc=alias_doc)
+ """
add_newdoc('numpy.core.numerictypes', obj, docstring)