Server IP : 103.119.228.120 / Your IP : 3.145.112.23 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/mysqlsh/lib/python3.9/site-packages/setuptools/ |
Upload File : |
"""Provide basic warnings used by setuptools modules. Using custom classes (other than ``UserWarning``) allow users to set ``PYTHONWARNINGS`` filters to run tests and prepare for upcoming changes in setuptools. """ from __future__ import annotations import os import warnings from datetime import date from inspect import cleandoc from textwrap import indent from typing import Tuple _DueDate = Tuple[int, int, int] # time tuple _INDENT = 8 * " " _TEMPLATE = f"""{80 * '*'}\n{{details}}\n{80 * '*'}""" class SetuptoolsWarning(UserWarning): """Base class in ``setuptools`` warning hierarchy.""" @classmethod def emit( cls, summary: str | None = None, details: str | None = None, due_date: _DueDate | None = None, see_docs: str | None = None, see_url: str | None = None, stacklevel: int = 2, **kwargs, ) -> None: """Private: reserved for ``setuptools`` internal use only""" # Default values: summary_ = summary or getattr(cls, "_SUMMARY", None) or "" details_ = details or getattr(cls, "_DETAILS", None) or "" due_date = due_date or getattr(cls, "_DUE_DATE", None) docs_ref = see_docs or getattr(cls, "_SEE_DOCS", None) docs_url = docs_ref and f"https://setuptools.pypa.io/en/latest/{docs_ref}" see_url = see_url or getattr(cls, "_SEE_URL", None) due = date(*due_date) if due_date else None text = cls._format(summary_, details_, due, see_url or docs_url, kwargs) if due and due < date.today() and _should_enforce(): raise cls(text) warnings.warn(text, cls, stacklevel=stacklevel + 1) @classmethod def _format( cls, summary: str, details: str, due_date: date | None = None, see_url: str | None = None, format_args: dict | None = None, ) -> str: """Private: reserved for ``setuptools`` internal use only""" today = date.today() summary = cleandoc(summary).format_map(format_args or {}) possible_parts = [ cleandoc(details).format_map(format_args or {}), ( f"\nBy {due_date:%Y-%b-%d}, you need to update your project and remove " "deprecated calls\nor your builds will no longer be supported." if due_date and due_date > today else None ), ( "\nThis deprecation is overdue, please update your project and remove " "deprecated\ncalls to avoid build errors in the future." if due_date and due_date < today else None ), (f"\nSee {see_url} for details." if see_url else None), ] parts = [x for x in possible_parts if x] if parts: body = indent(_TEMPLATE.format(details="\n".join(parts)), _INDENT) return "\n".join([summary, "!!\n", body, "\n!!"]) return summary class InformationOnly(SetuptoolsWarning): """Currently there is no clear way of displaying messages to the users that use the setuptools backend directly via ``pip``. The only thing that might work is a warning, although it is not the most appropriate tool for the job... See pypa/packaging-problems#558. """ class SetuptoolsDeprecationWarning(SetuptoolsWarning): """ Base class for warning deprecations in ``setuptools`` This class is not derived from ``DeprecationWarning``, and as such is visible by default. """ def _should_enforce(): enforce = os.getenv("SETUPTOOLS_ENFORCE_DEPRECATION", "false").lower() return enforce in ("true", "on", "ok", "1")