Your IP : 216.73.216.224


Current Path : /opt/rh/rh-python35/root/lib64/python3.5/__pycache__/
Upload File :
Current File : //opt/rh/rh-python35/root/lib64/python3.5/__pycache__/platform.cpython-35.pyc



���\5��@s�dZdZdZddlZddlZddlZddlZddlZddlZy
ej	Z
Wn0ek
r�ejd�kr�dZ
nd	Z
YnXd
Z
ejdej�Zejddd
dd�Zdd�Zejdej�Zejdej�Zejdej�Zd�Zd$d%�Zddded&d'd(�Zd)d*�Zddded+d,�Zd-d�d.d/�Zdd0d1�Zejd2�Zdddd�d3d4�Zd�d6d�d7d�d9d�d:d�d<d�d=d�d>d�d@d�dAd�dCd�dDiZ d�d9d�dEd�dFd�dGd�dHd�dIiZ!dJdK�Z"dddddLdM�Z#dNdO�Z$dd�ddPdQ�Z%dRdS�Z&ddd�d�dTdU�Z'dVdW�Z(dXdY�Z)ddZd[�Z*d\d]�Z+dd^d_�Z,dd`da�Z-dd�dd�dd�iZ.ejdddedf�Z/ej0dgdh�Z1da2didj�Z3dkdl�Z4dmdn�Z5dodp�Z6dqdr�Z7dsdt�Z8dudv�Z9ejdwej�Z:ejdxej�Z;ejdy�Z<ejdz�Z=iZ>dd{d|�Z?d}d~�Z@dd��ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFiZGddd�d��ZeHd�kr�d�ejIkpld�ejIkZJd�ejIko�d�ejIkZKeLeeKeJ��ejMd�dS)�a8 This module tries to retrieve as much platform-identifying data as
    possible. It makes this information available via function APIs.

    If called from the command line, it prints the platform
    information concatenated as single string to stdout. The output
    format is useable as part of a filename.

a
    Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
    Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com

    Permission to use, copy, modify, and distribute this software and its
    documentation for any purpose and without fee or royalty is hereby granted,
    provided that the above copyright notice appear in all copies and that
    both that copyright notice and this permission notice appear in
    supporting documentation or portions thereof, including modifications,
    that you make.

    EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO
    THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
    INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
    FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
    NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !

z1.0.7�N�dos�win32�win16ZNULz	/dev/nullz/etcsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)�i@c
Cs�ttjd�r$tjj|�}t|d��[}|j|�}d}x<d|ksfd|kr{tj||�}nd}|s�|j|�}|s�Pd}qNdd�|j�D�\}}	}
}}}
|r�|r�d	}n�|	r|d
krd
}|
}qz|
|krz|
}n]|rz|d
krzd	}|
rM|
|krM|
}|rz|t	|�d�|krz||}|j
�}qNWWdQRX||fS)a Tries to determine the libc version that the file executable
        (which defaults to the Python interpreter) is linked against.

        Returns a tuple of strings (lib,version) which default to the
        given parameters in case the lookup fails.

        Note that the function has intimate knowledge of how different
        libc versions add symbols to the executable and thus is probably
        only useable for executables compiled using gcc.

        The file is read and scanned in chunks of chunksize bytes.

    �realpath�rbrslibcsGLIBCNcSs1g|]'}|dk	r'|jd�n|�qS)N�latin1)�decode)�.0�s�r�8/opt/rh/rh-python35/root/usr/lib64/python3.5/platform.py�
<listcomp>�s	zlibc_ver.<locals>.<listcomp>Zlibc�glibc)�hasattr�os�pathr�open�read�_libc_search�search�groups�len�end)�
executable�lib�versionZ	chunksize�fZbinary�pos�mZlibcinitrZglibcversionZsoZthreadsZ	soversionrrr
�libc_ver�sD	"
			#
r cCs�tjjd�r�d}x�td�D]v}|j�}t|�dkr%|\}}nq%|dkrv|j�}q%|dkr%|jd�}|d}q%W|||fStjjd�rxVtd�D]H}|jd�}t|�dkr�|dd	kr�d	|d
|fSq�Wtjjd�r�tjd�}	xEt	t|	�d
dd�D]'}
|	|
dd
�dkrU|	|
=qUW|	r�|	j
�d}|	dd
d�}|||fS|||fS)z� Tries some special tricks to get the distribution
        information in case the default method fails.

        Currently supports older SuSE Linux, Caldera OpenLinux and
        Slackware Linux distributions.

    z/var/adm/inst-log/info�SuSE�ZMIN_DIST_VERSIONZ
DIST_IDENT�-z/etc/.installedrZ	OpenLinux�z/usr/lib/setupN�zslack-version-�	slackware���r'r')rr�existsr�splitr�strip�isdir�listdir�range�sort)�distnamer�id�lineZtv�tag�value�valuesZpkgZverfiles�nrrr
�_dist_try_harder�s:	
"#

r6z(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?r!�debian�fedora�redhat�centos�mandrake�mandriva�rocksr&�	yellowdog�gentoo�UnitedLinux�
turbolinux�arch�mageiacCs�d}d}tj|�}|dk	r7t|j��Stj|�}|dk	rbt|j��S|j�j�}|r�|d}t|�dkr�|d}d||fS)Nrrr$)�_lsb_release_version�match�tupler�_release_versionr*r)r)�	firstlinerr0r�lrrr
�_parse_release_files

rJr$cCs8ddl}|jdtdd�t|||||�S)Nrzhdist() and linux_distribution() functions are deprecated in Python 3.5 and will be removed in Python 3.7�
stacklevelr")�warnings�warn�PendingDeprecationWarning�_linux_distribution)r/rr0�supported_dists�full_distribution_namerLrrr
�linux_distribution,s
	
rRcCs,ytjt�}Wntk
r4|||fSYnX|j�x^|D]F}tj|�}|dk	rF|j�\}}	||krF|}PqFWt|||�St	tj
jt|�ddddd��}
|
j�}WdQRXt
|�\}}}
|r|r|}|r|}|
r|
}|||fS)a� Tries to determine the name of the Linux OS distribution name.

        The function first looks for a distribution release file in
        /etc and then reverts to _dist_try_harder() in case no
        suitable files are found.

        supported_dists may be given to define the set of Linux
        distributions to look for. It defaults to a list of currently
        supported Linux distributions identified by their release file
        name.

        If full_distribution_name is true (default), the full
        distribution read from the OS is returned. Otherwise the short
        name taken from supported_dists is used.

        Returns a tuple (distname, version, id) which default to the
        args given as parameters.

    N�r�encodingzutf-8�errors�surrogateescape)rr,�_UNIXCONFDIR�OSErrorr.�_release_filenamerErr6rr�join�readlinerJ)r/rr0rPrQZetc�filerZ	_distnameZdummyrrHZ_versionZ_idrrr
rO7s0


rOcCs>ddl}|jdtdd�t|||d|dd�S)aS Tries to determine the name of the Linux OS distribution name.

        The function first looks for a distribution release file in
        /etc and then reverts to _dist_try_harder() in case no
        suitable files are found.

        Returns a tuple (distname, version, id) which default to the
        args given as parameters.

    rNzhdist() and linux_distribution() functions are deprecated in Python 3.5 and will be removed in Python 3.7rKr"rPrQ)rLrMrNrO)r/rr0rPrLrrr
�distms	
r]rScCs5ddl}|jdtdd�tj|||�S)z! Portable popen() interface.
    rNzuse os.popen insteadrKr")rLrM�DeprecationWarningr�popen)�cmd�mode�bufsizerLrrr
r_�sr_cCs�|jd�}|r"|j|�ytt|�}Wntk
rO|}YnXttt|��}dj|dd��}|S)z� Normalize the version and build strings and return a single
        version string using the format major.minor.build (or patchlevel).
    �.N�)r)�append�map�int�
ValueError�list�strrZ)r�buildrIZintsZstringsrrr
�
_norm_version�s

rlz'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])c	Cs2tj|kr|||fSx~dD]i}y7tj|�}|j�}|j�r_td��Wn(tk
r�}zw#WYdd}~Xq#XPq#W|||fS|j�}tj	|�}|dk	r%|j
�\}}}|d	dkr�|dd
�}|ddkr|dd�}t|�}|||fS)
a+ Tries to figure out the OS version used and returns
        a tuple (system, release, version).

        It uses the "ver" shell command for this which is known
        to exists on Windows, DOS. XXX Others too ?

        In case this fails, the given parameters are used as
        defaults.

    �ver�command /c ver�
cmd /c verzcommand failedNr$rc)rmrnror'r'r'r')�sys�platformrr_r�closerXr*�_ver_outputrErrl)	�system�releaserZsupported_platformsr`�pipe�infoZwhyrrrr
�_syscmd_ver�s,


rx�Z2000ZXPr"Z
2003ServerZpost2003��Vista�7�8rdz8.1zpost8.1�
Z10Zpost10Z
2008ServerZ2008ServerR2Z
2012ServerZ2012ServerR2Zpost2012ServerR2cs�|dks$|dkr1|dkr1|||fSddlm}m}m}m}m}m}ddlm�m	}	G�fdd�d|�}
|d�}|d	�}d
}
}x]||
kr|
d9}
||
�}|j
|	|j�|t|��}|s�|||fSq�W|j
|d�}|s8|||fS||�}|j|d||�sd|rq|||fS||
��}|j|d||�|����s�|||fS|jjd?}|jjd
@}|jjd?}|||fS)Nrzr"r)�c_buffer�POINTER�byref�create_unicode_buffer�	Structure�WinDLL)�DWORD�HANDLEcs�eZdZd�fd�fd�fd�fd�fd�fd�fd�fd	�fd
�fd�fd�fd
�fg
ZdS)z*_get_real_winver.<locals>.VS_FIXEDFILEINFOZdwSignatureZdwStrucVersionZdwFileVersionMSZdwFileVersionLS�dwProductVersionMS�dwProductVersionLSZdwFileFlagsMaskZdwFileFlagsZdwFileOSZ
dwFileTypeZ
dwFileSubtypeZdwFileDateMSZdwFileDateLSN)�__name__�
__module__�__qualname__Z_fields_r)r�rr
�VS_FIXEDFILEINFO�s												r��kernel32r�r�i��)Zctypesrr�r�r�r�r�Zctypes.wintypesr�r�ZGetModuleFileNameWZ_handlerZGetFileVersionInfoSizeWZGetFileVersionInfoWZVerQueryValueW�contentsr�r�)�maj�minrkrr�r�r�r�r�r�r�r�rZname_lenZ
actual_len�name�sizeZ	ver_blockZpvir)r�r
�_get_real_winver�s:$
.



'
r�c(Csyddlm}Wn"tk
r8||||fSYnXy&ddlm}m}m}m}Wn4tk
r�ddlm}m}m}m}YnX|�}	t	|	dd��\}
}}dj
|
||�}tj|
|f�ptj|
df�p|}|	dd�|
|fkrtydj
|	j
�}Wn<tk
rs|dd�d	krod
|dd�}YnXt|	dd�dkr�tj|
|f�p�tj|
df�p�|}d}
z5y&||d�}
||
d
�d}WnYnXWd|
r
||
�X||||fS)Nr)�getwindowsversion)�	OpenKeyEx�QueryValueEx�CloseKey�HKEY_LOCAL_MACHINErdz{0}.{1}.{2}r"zSP{}�
z
Service Pack ZSPZproduct_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZCurrentType)rpr��ImportError�winregr�r�r�r��_winregr��format�_WIN32_CLIENT_RELEASES�getZservice_pack_major�AttributeError�getattr�_WIN32_SERVER_RELEASES)rur�csd�ptyper�r�r�r�r�Zwinverr�r�rk�keyrrr
�	win32_ver2sD
&
'	
		r�cCs�d}tjj|�sdSyddl}Wntk
rDdSYnXt|d��}|j|�}WdQRX|d}d	}tj�j}|d
kr�d}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrrZProductVersionr�ppc�Power MacintoshZPowerPC)rrr)r�r�)	rrr(�plistlibr�r�load�uname�machine)�fnr�rZplru�versioninfor�rrr
�_mac_ver_xmlbs
	
r�cCs&t�}|dk	r|S|||fS)a< Get MacOS version information and return it as tuple (release,
        versioninfo, machine) with versioninfo being a tuple (version,
        dev_stage, non_release_version).

        Entries which cannot be determined are set to the parameter values
        which default to ''. All tuple entries are strings.
    N)r�)rur�r�rwrrr
�mac_verxs	r�cCsTddlm}y'|j|�}|dkr2|S|SWntk
rO|SYnXdS)Nr)�System)�	java.langr�ZgetPropertyr�)r��defaultr�r3rrr
�
_java_getprop�s
r�cCs�yddl}Wn"tk
r4||||fSYnXtd|�}td|�}|\}}}td|�}td|�}td|�}|||f}|\}}	}
td|
�}
td	|�}td
|	�}	||	|
f}||||fS)a] Version interface for Jython.

        Returns a tuple (release, vendor, vminfo, osinfo) with vminfo being
        a tuple (vm_name, vm_release, vm_vendor) and osinfo being a
        tuple (os_name, os_version, os_arch).

        Values which cannot be determined are set to the defaults
        given as parameters (which all default to '').

    rNzjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r�r�r�)ru�vendor�vminfo�osinfo�javaZvm_nameZ
vm_releaseZ	vm_vendor�os_name�
os_version�os_archrrr
�java_ver�s"

r�cCs|dkrd|||fS|dkr�|dkrB|||fS|jd�}|r�yt|d�}Wntk
rYn*X|d}t|�|d<dj|�}|dkr�d	}qd	}n@|d
kr�d}|r�|d}qd
}n|dkrd}|||fS)z� Returns (system, release, version) aliased to common
        marketing names used for some systems.

        It also does some reordering of the information in some cases
        where it would otherwise cause confusion.

    ZRhapsodyzMacOS X ServerZSunOS�5rcrrd�6ZSolarisZIRIX64ZIRIXz (64bit)�64bitrr�Windows)zwin32r)r)rgrhrjrZ)rtrurrI�majorrrr
�system_alias�s2	


		
	r�cGsdjdd�tt|�D��}|jdd�}|jdd�}|jdd�}|jdd�}|jd	d�}|jd
d�}|jdd�}|jdd�}|jd
d�}x)|jdd�}||kr�P|}q�Wx$|ddkr|dd�}q�W|S)zq Helper to format the platform string in a filename
        compatible format e.g. "system-version-machine".
    r#css|]}|j�VqdS)N)r*)r
�xrrr
�	<genexpr>�sz_platform.<locals>.<genexpr>� �_�/�\�:�;�"�(�)�unknownrz--r$Nr'r')rZ�filterr�replace)�argsrqZcleanedrrr
�	_platform�s$%
r�cCsTyddl}Wntk
r(|SYnXy|j�SWntk
rO|SYnXdS)z8 Helper to determine the node name of this machine.
    rN)�socketr�ZgethostnamerX)r�r�rrr
�_nodes
	
r�cCsetjj|�}xLtjj|�r`tjjtjjtjj|�tj|���}qW|S)zT In case filepath is a symlink, follow it until a
        real file is reached.
    )rr�abspath�islink�normpathrZ�dirname�readlink)�filepathrrr
�_follow_symlinkss
	1r�cCs�tjdkr|Sytjd|tf�}Wnttfk
rN|SYnX|j�j�}|j	�}|sz|r~|S|SdS)z. Interface to the system's uname command.
    rrrzuname %s 2> %sN)rzwin32zwin16)
rprqrr_�DEV_NULLr�rXrr*rr)Zoptionr�r�output�rcrrr
�
_syscmd_uname)s	
r�cCs�tjd
kr|St|�}y+tjd|gdtjdtj�}Wnttfk
rh|SYnX|j	�dj
d�}|j�}|s�|r�|S|Sd	S)z� Interface to the system's file command.

        The function uses the -b option of the file command to have it
        omit the filename in its output. Follow the symlinks. It returns
        default in case the command should fail.

    rrrr\�stdout�stderrrzlatin-1N)zdoszwin32zwin16)rprqr��
subprocess�Popen�PIPEZSTDOUTr�rXZcommunicater	�wait)�targetr��procr�r�rrr
�_syscmd_file;s		
r��	WindowsPEr��MSDOScCs�|s`ddl}y|jd�}Wn$|jk
rK|jd�}YnXt|d�d}|rxt|d�}nd}|r�|tjkr�tjtkr�ttj\}}|r�|}|r�|}||fSd|kr�||fSd	|krd
}n'd|krd}nd
|kr*d}d|kr?d}nTd|krid|kr`d}q�d}n*d|kr~d}nd|kr�d}n||fS)a� Queries the given executable (defaults to the Python interpreter
        binary) for various architecture information.

        Returns a tuple (bits, linkage) which contains information about
        the bit architecture and the linkage format used for the
        executable. Both values are returned as strings.

        Values that cannot be determined are returned as given by the
        parameter presets. If bits is given as '', the sizeof(pointer)
        (or sizeof(long) on Python version < 1.5.2) is used as
        indicator for the supported pointer size.

        The function relies on the system's "file" command to do the
        actual work. This is available on most if not all Unix
        platforms. On some non-Unix platforms where the "file" command
        does not exist and the executable is set to the Python interpreter
        binary defaults from _default_architecture are used.

    rN�PrI�Zbitrrz32-bit�32bitZN32Zn32bitz64-bitr�ZELFZPEr�r�ZCOFFzMS-DOSr�)	�structZcalcsize�errorrjr�rprrq�_default_architecture)r�bits�linkager�r�Zfileout�brIrrr
�architecture_sL

							r��uname_resultz-system node release version machine processorcCs}d}tdk	rtSd}ytj�\}}}}}Wntk
rUd}YnX|s�ttd|||||f��r6|r�tj}d}d}t�}d}d}|dkrAt	�\}}}}	|r�|r�d}|s&dtj
krtj
jdd�}ntj
jdd�}|sAtj
jd|�}|r�t|�\}}}|d	krqd
}nC|dkr�|d
kr�d
}d|dd
�kr�d}nd}|dkr�|s�|dkr�d}nd}d
}nL|dd�dkr6t
�\}}
}}d}dj|�}|s6|
}|dkr�|sU|dkra|}d}yddl}
Wntk
r�Yn4X|
jdd�\}}|dkr�d}nd}|s�tdd�}|dkr�d}|dkr�d}|dkrd}|dkrd}|dkr(d}|dkr:d}|dkr^|d
kr^d
}d}t||||||�atS)an Fairly portable uname interface. Returns a tuple
        of strings (system, node, release, version, machine, processor)
        identifying the underlying platform.

        Note that unlike the os.uname function this also returns
        possible processor information as an additional tuple entry.

        Entries which cannot be determined are set to ''.

    rNrr$rZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr�Z	Microsoftz6.0rdr{rr�Z16bit�r��Javaz, ZOpenVMS�0zSYI$_CPU�ZAlphaZVAXz-pr�)zwin32zwin16)�_uname_cacherr�r�rir�rprqr�r��environr�rxr�rZ�vms_libr�Zgetsyir�r�)Zno_os_uname�	processorrt�noderurr�Zuse_syscmd_verr�r�r�r�r�r�ZcsidZ
cpu_numberrrr
r��s�

+						
	r�cCs
t�jS)z� Returns the system/OS name, e.g. 'Linux', 'Windows' or 'Java'.

        An empty string is returned if the value cannot be determined.

    )r�rtrrrr
rtBsrtcCs
t�jS)z� Returns the computer's network name (which may not be fully
        qualified)

        An empty string is returned if the value cannot be determined.

    )r�rrrrr
rKsrcCs
t�jS)z� Returns the system's release, e.g. '2.2.0' or 'NT'

        An empty string is returned if the value cannot be determined.

    )r�rurrrr
ruUsrucCs
t�jS)z� Returns the system's release version, e.g. '#3 on degas'

        An empty string is returned if the value cannot be determined.

    )r�rrrrr
r^srcCs
t�jS)zt Returns the machine type, e.g. 'i386'

        An empty string is returned if the value cannot be determined.

    )r�r�rrrr
r�gsr�cCs
t�jS)a Returns the (true) processor name, e.g. 'amdk6'

        An empty string is returned if the value cannot be
        determined. Note that many platforms do not provide this
        information or simply return the same value as for machine(),
        e.g.  NetBSD does this.

    )r�r�rrrr
r�ps
r�zB([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?cCs�|dkrtj}tj|d�}|dk	r7|Sd|kr�d}|jd�rjtj|�}ntj|�}|dkr�tdt	|���|j
�\}}}d}d}n4tjjd�r/d}tj|�}|dkrtdt	|���|j
�\}}}}	}
tj}n�d|kr�d}t
j|�}|dkrrtd	t	|���|j
�\}}}}	d}n`tj|�}|dkr�td
t	|���|j
�\}}}}	}d}|d|	}ttd
�rtj\}
}}n0ttd�r;tj\}
}}nd}d}|jd�}
t|
�dkr�|
jd�dj|
�}|||||||f}|t|<|S)a� Returns a parsed version of Python's sys.version as tuple
        (name, version, branch, revision, buildno, builddate, compiler)
        referring to the Python implementation name, version, branch,
        revision, build number, build date/time as string and the compiler
        identification string.

        Note that unlike the Python sys.version, the returned value
        for the Python version will always include the patchlevel (it
        defaults to '.0').

        The function returns empty strings for tuple entries that
        cannot be determined.

        sys_version may be given to parse an alternative version
        string, e.g. if the version was read from a different Python
        interpreter.

    NZ
IronPythonz*failed to parse IronPython sys.version: %srr�ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr��
_mercurial�
subversionrcr"r�)rpr�_sys_version_cacher��
startswith�_ironpython_sys_version_parserrE� _ironpython26_sys_version_parserrh�reprrrq�_sys_version_parser�_pypy_sys_version_parserrrrr)rrerZ)�sys_version�resultr�rErZalt_versionZcompilerZbuildnoZ	builddateZ	buildtimer�ZbranchZrevisionrIrrr
�_sys_version�sn			

rcCst�dS)aR Returns a string identifying the Python implementation.

        Currently, the following implementations are identified:
          'CPython' (C implementation of Python),
          'IronPython' (.NET implementation of Python),
          'Jython' (Java implementation of Python),
          'PyPy' (Python implementation of Python).

    r)rrrrr
�python_implementation�sr
cCst�dS)z� Returns the Python version as string 'major.minor.patchlevel'

        Note that unlike the Python sys.version, the returned value
        will always include the patchlevel (it defaults to 0).

    r$)rrrrr
�python_version	srcCstt�djd��S)z� Returns the Python version as tuple (major, minor, patchlevel)
        of strings.

        Note that unlike the Python sys.version, the returned value
        will always include the patchlevel (it defaults to 0).

    r$rc)rFrr)rrrr
�python_version_tuples	rcCst�dS)z� Returns a string identifying the Python implementation
        branch.

        For CPython this is the Subversion branch from which the
        Python binary was built.

        If not available, an empty string is returned.

    r")rrrrr
�
python_branchsrcCst�dS)z� Returns a string identifying the Python implementation
        revision.

        For CPython this is the Subversion revision from which the
        Python binary was built.

        If not available, an empty string is returned.

    rd)rrrrr
�python_revision,srcCst�dd�S)zh Returns a tuple (buildno, builddate) stating the Python
        build number and date as strings.

    r�rz)rrrrr
�python_build9srcCst�dS)zS Returns a string identifying the compiler used for compiling
        Python.

    rz)rrrrr
�python_compilerAsrcCs|tj||fd�}|dk	r(|St�\}}}}}}||krUd}|rvt|||�\}}}|dkr�t|�\}	}
}}|r�t||�}
qht||||�}
n�|dkrztj��-tjddt	�t
d�\}}}WdQRX|rC|rCt||||d|||�}
qhttj
�\}}t||||d||�}
n�|dkr�t�\}}}\}}}|s�|r�t|||�}
qht|||d	|||�}
n�|d
kr |rt||�}
qht|||�}
nH|r8t||�}
n0ttj
�\}}t||||||�}
|
t||f<|
S)a� Returns a single string identifying the underlying platform
        with as much useful information as possible (but no more :).

        The output is intended to be human readable rather than
        machine parseable. It may look different on different
        platforms and this is intended.

        If "aliased" is true, the function will use aliases for
        various platforms that report system names which differ from
        their common names, e.g. SunOS will be reported as
        Solaris. The system_alias() function is used to implement
        this.

        Setting terse to true causes the function to return only the
        absolute minimum information needed to identify the platform.

    Nrr��Linux�ignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*�withr�ZonZMacOS)r)�_platform_cacher�r�r�r�r�rL�catch_warnings�filterwarningsrNr]r rprr�r�)�aliased�terserrtrrurr�r�ZrelZversr�r�rqr/ZdistversionZdistidZlibcnameZlibcversionrS�vr�r�r�r�r�r�rrr
rqMs\


rq�__main__rz--terseZ
nonaliasedz--nonaliased)�dos�win32�win16)zSuSEr7r8r9r:r;r<r=z	slackwarer>r?r@rArBrCr')rr r)ryr)ryr$)ryr")ryN)rzr)rzr$)rzr")rzrd)rzN)r~r)r~N)ryr")rzr)rzr$)rzr")rzrd)rzN)rrr)rrr)rrr)rz	WindowsPE)rzWindows)rzMSDOS)N�__doc__Z
__copyright__�__version__�collectionsrpr�rer�rL�devnullr�r�rqrW�compile�ASCIIrrr r6rYrDrGZ_supported_distsrJrRrOr]r_rlrsrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
namedtupler�r�r�rtrrurr�r�rrrr	rrr
rrrrrrrr��argvrr�print�exitrrrr
�<module>
s�f0

		70			6	
	0;0#6 T		�	
					d



[

Rosenblum TV: Video training, virtual workshops, classes, tutorials
logologologologo
  • About
  • What We Do
  • Our Clients
  • Case Studies
    • The BBC
    • CBS News
    • New York Times Television
    • Spectrum News
    • The Newark Star-Ledger
    • The United Nations
    • McGraw/Hill
    • Oyster Yachts
    • Scottish Environmental Protection Agency
  • The Power of Storytelling
  • Why iPhones?
  • Michael on Media
  • Books
  • Contact
  • About
  • What We Do
  • Our Clients
  • Case Studies
    • The BBC
    • CBS News
    • New York Times Television
    • Spectrum News
    • The Newark Star-Ledger
    • The United Nations
    • McGraw/Hill
    • Oyster Yachts
    • Scottish Environmental Protection Agency
  • The Power of Storytelling
  • Why iPhones?
  • Michael on Media
  • Books
  • Contact

RE-INVENTING THE TELEVISION NEWS BUSINESS*

A revolution in video storytelling

Creating entirely new & cost-effective production methods

From the world leaders in video production training and the creators of Character Driven Storytelling™

*and every other business that uses video

WHAT WE DO

Over the past 35 years, we have designed, built or restructured some of the most powerful news and journalism companies in the world.

We replace the traditional TV news ‘crew’ with one highly trained journalist, working alone with nothing but an iPhone.

No more TV news ‘crews’, no editors and no field producers.

This is television news done the way newspaper journalism is done – one reporter with their electronic pad and pencil.

In doing this, we can cut the cost of production by as much as 75% while increasing ratings and audience engagement.

In the place of conventional TV news ‘packages’ – ie, reporter stand up, interview, b-roll, man on the street, we marry great journalism with Netflix and Hollywood storytelling.

It’s a combination that works.

We have taken most of our clients to #1 in their respective markets.

And it’s not just for news. Any company, any profit, any NGO and anyone else who is online needs to tell their story in compelling yet cost-effective video. We can teach you to do that. Either in person or virtually.

EXAMPLES OF WHAT WE CAN TEACH YOUR STAFF TO PRODUCE

ITAY HOD

Itay Hod, MMJ with KPIX/CBS in San Francisco, took the 5-Day Intensive Video Storytelling Bootcamp in 2018.

Because he works alone, with only an iPhone, he was able to embed himself with a homeless family.

Here’s the story he produced in a one-day turn.

KIET DO

Kiet Do, an MMJ with KPIX/CBS in San Francisco, took the 5-Day Intensive Video Storytelling Bootcamp in 2021.

Here is a story he produced, all on his own, with only an iPhone and in a one-day turn.

TAYLOR SCHAUB

Taylor Schaub, an MMJ with Spectrum News 1 in LA, took the 5-Day Intensive Video Storytelling Bootcamp in 2023.

Here is a story he turned in only one day, using only an iPhone. It was the first video story he ever did and it was nominated for an Emmy.

THE BOOTCAMP

How do we convert stations and whole networks to working in this way?

Since 1988, we have run intensive 5-Day Video Storytelling Bootcamps

We have done these all over the world.

These are hands-on bootcamps, and participants learn an entirely new way of creating TV news stories.

-We shoot at a 3:1 ratio or lower, so turnaround times are fast.

-We go directly from camera to timelilne and edit – no written scripts.  We work in the medium of pictures and sound.

-We are entirely character-driven.

-We are driven by pictures and real events.

-We are focused almost entirely on ’the viewer experience’.

Since 1988, more than 70,000 journalists around the world have taken our bootcamps, either in person on virtualy.

Case Studies

CBS Case Study Logos
CBS News

We have started to work with CBS News, bringing our ideas of character-driven storytelling to one of the most successful and biggest networks in the United States. Since beginning to work with them ratings have climbed and more importantly, audience engagement is through the ceiling.

Learn More
NYT Case Study Logos
New York Times Television

We started New York Times Television in 1990 and it was the first paper to be brought into the world of TV. It quickly became one of the most successful non-fiction production companies in the United States. The series and documentaries we produced won many awards including multiple Emmys.

Learn More
BBC Case Study Logos
The BBC

We have been working with the BBC since the year 2000 helping to convert their national news network to our visual storytelling technique. Most recently we have trained teams from their sports, documentaries, and comedy divisions to make character-driven stories using only smartphones.

Learn More
Spectrum Case Study Logos
Spectrum News

For the past five years we have worked with Spectrum News to introduce and train their journalists on visual, character driven storytelling using smartphones helping to create a different kind of local news for their network of 24-Hour News Stations across the United States.

Learn More
UN Case Study Logos
The United Nations

In 2006, we were approached by the United Nations. Rather than rely on news outlets, it would be much easier to train the field operatives to produce their own stories. We spent two years working with the UN, training more than 100 of their staff in bootcamps in Geneva and Nairobi.

Learn More
Star Ledger Case Study Logos
The Newark Star-Ledger

We trained 50 print reporters at the paper to shoot and tell their own stories, in conjunction with their print work. We built a TV newsroom in their existing print newsroom – you could not ask for a better set and they began to live stream their stories in conjunction with their print work.

Learn More
Mcgraw Hill Case Study Logos
Mcgraw Hill

We spent two years with McGraw Hill, training more than 150 of their staffers, making them completely video literate. McGraw/Hill media properties we transit included Business Week, Aviation Week, (what was the name of the architecture magazine), and JD Power and Associates.

Learn More
VOA Case Study Logos
Voice of America

In 1990, we were approached by The Voice of America, the official broadcasting agency for the United States Government. When we met with VOA, they were only a short wave radio broadcaster, but working with them, we took them into television, launching VOA-TV.

Learn More
Oyster Case Study Logos
Oyster Yachts

British based Oyster Yachts makes some of the finest yachts in the world. Like every other company, they had to find a way to feed the never-ending video demands of social media – sites like Instagram and TikTok. We trained the Oyster staff to tell their own stories, using only iPhones.

Learn More
SEPA Case Study Logos
Scottish Environmental Protection Agency

We were approached by SEPA, the Scottish Environmental Protection Agency because they had to continually find a way to ‘feed the media beast’. The result was that SEPA was able to tell their own stories, whenever they wanted, and at almost no additional cost.

Learn More
Image 11-11-22 at 6.25 PM

Michael on Media

Michael Rosenblum has been writing about the media since 1988. His work and ideas have appeared in The Guardian, The Huffington Post, Ilkeston Life and many other publications.

He has been blogging regularly for the past 35 years on this subject. Having taught media studies at Columbia University, NYU and now the University of Oxford, he is considered an expert on this subject.

Continue reading this post or look back at previous posts.

Read More

Do You Have Questions About Learning Video Skills?

If you would like to know more about our courses contact us and one of our training advisors will be happy to call you.

Contact Us

Copyright 2024. All rights reserved.