本文整理匯總了Python中sys.version_info方法的典型用法代碼示例。如果您正苦於以下問題:Python sys.version_info方法的具體用法?Python sys.version_info怎麽用?Python sys.version_info使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類sys
的用法示例。
在下文中一共展示了sys.version_info方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_syntax
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def test_syntax(self):
if sys.version_info < (3,):
return self.skip('skipped (Python 3 only)')
code = textwrap.dedent("""
class Root:
@cherrypy.expose
@cherrypy.tools.params()
def resource(self, limit: int):
return type(limit).__name__
conf = {'/': {'tools.params.on': True}}
cherrypy.tree.mount(Root(), config=conf)
""")
exec(code)
self.getPage('/resource?limit=0')
self.assertStatus(200)
self.assertBody('int')
示例2: isUpdatesAvailable
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def isUpdatesAvailable(cls, path):
if sys.version_info < (3, 0):
return False
# pylint: disable=broad-except
if not os.path.isfile(os.path.join(path, "files.xml")):
return True
try:
available = dict()
for it in ET.parse(os.path.join(path, "files.xml")).iter():
if it.tag == "File":
available[it.text] = datetime.datetime.strptime(it.attrib["Modified"], "%d-%m-%Y")
path = NamedTemporaryFile()
path.close()
urllib.request.urlretrieve("https://www.gurux.fi/obis/files.xml", path.name)
for it in ET.parse(path.name).iter():
if it.tag == "File":
tmp = datetime.datetime.strptime(it.attrib["Modified"], "%d-%m-%Y")
if not it.text in available or available[it.text] != tmp:
return True
except Exception as e:
print(e)
return True
return False
示例3: updateManufactureSettings
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def updateManufactureSettings(cls, directory):
#
# Update manufacturer settings from the Gurux www server.
#
# directory: Target directory.
#
if sys.version_info >= (3, 0):
return
if not os.path.isdir(directory):
os.mkdir(directory)
if not os.path.isdir(directory):
return
path = os.path.join(directory, "files.xml")
urllib.request.urlretrieve("https://www.gurux.fi/obis/files.xml", path)
for it in ET.parse(path).iter():
if it.tag == "File":
path = os.path.join(directory, it.text)
urllib.request.urlretrieve("https://www.gurux.fi/obis/" + it.text, path)
示例4: hex
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def hex(cls, value, addSpace=True, index=0, count=None):
"""
Convert byte array to hex string.
"""
#Return empty string if array is empty.
if not value:
return ""
hexChars = ""
#Python 2.7 handles bytes as a string array. It's changed to bytearray.
if sys.version_info < (3, 0) and not isinstance(value, bytearray):
value = bytearray(value)
if count is None:
count = len(value)
for it in value[index:count]:
hexChars += GXByteBuffer.__HEX_ARRAY[it >> GXByteBuffer.__NIBBLE]
hexChars += GXByteBuffer.__HEX_ARRAY[it & GXByteBuffer.__LOW_BYTE_PART]
if addSpace:
hexChars += ' '
return hexChars.strip()
示例5: write_cov_file
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def write_cov_file(line_data: Dict[str, List[int]], fname: str) -> None:
"""Write a coverage file supporting both Coverage v4 and v5.
Args:
line_data: Dictionary of line data for the coverage file.
fname: string filename for output location (absolute path)
Returns:
None
"""
if coverage.version_info[0] == 4:
covdata = coverage.CoverageData()
covdata.add_lines(line_data)
covdata.write_file(fname)
else:
# assume coverage v 5
covdata = coverage.CoverageData(basename=fname)
covdata.add_lines(line_data)
covdata.write()
####################################################################################################
# CLI: MOCK ARGS
####################################################################################################
示例6: stats
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def stats(self, filename, sortby='cumulative'):
""":rtype stats(index): output of print_stats() for the given profile.
"""
sio = io.StringIO()
if sys.version_info >= (2, 5):
s = pstats.Stats(os.path.join(self.path, filename), stream=sio)
s.strip_dirs()
s.sort_stats(sortby)
s.print_stats()
else:
# pstats.Stats before Python 2.5 didn't take a 'stream' arg,
# but just printed to stdout. So re-route stdout.
s = pstats.Stats(os.path.join(self.path, filename))
s.strip_dirs()
s.sort_stats(sortby)
oldout = sys.stdout
try:
sys.stdout = sio
s.print_stats()
finally:
sys.stdout = oldout
response = sio.getvalue()
sio.close()
return response
示例7: build_Call
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def build_Call(self, o):
if sys.version_info >= (3, 5):
return self._build_call35(o)
callee = self.build(o.func)
if o.args is None:
args = ()
else:
args = tuple([self.build(a) for a in o.args])
if o.starargs is None:
starargs = ()
else:
starargs = tuple(self.build(o.starargs))
if o.kwargs is None:
kwargs = {}
else:
kwargs = self.build(o.kwargs)
if o.keywords is not None: # direct a=b keywords
for kw in o.keywords:
# preference because is a direct keyword against **kwargs
kwargs[kw.arg] = self.build(kw.value)
return callee(*(args + starargs), **kwargs)
示例8: wr
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def wr( self, str ):
if ( self.debug ):
print("FT600_WR:" + str );
str = "~".join( str );# only using 8bits of 16bit FT600, so pad with ~
bytes_to_write = len( str );# str is now "~1~2~3 .. ~e~f" - Twice as long
channel = 0;
result = False;
timeout = 5;
tx_pipe = 0x02 + channel;
if sys.platform == 'linux2':
tx_pipe -= 0x02;
if ( sys.version_info.major == 3 ):
str = str.encode('latin1');
xferd = 0
while ( xferd != bytes_to_write ):
# write data to specified pipe
xferd += self.D3XX.writePipe(tx_pipe,str,bytes_to_write-xferd);
return;
示例9: get_raw
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def get_raw(stocks) -> dict:
req = requests.Session()
req.get(SESSION_URL, proxies=get_proxies())
r = req.get(
STOCKINFO_URL.format(
stock_id=_join_stock_id(stocks),
time=int(time.time()) * 1000))
if sys.version_info < (3, 5):
try:
return r.json()
except ValueError:
return {'rtmessage': 'json decode error', 'rtcode': '5000'}
else:
try:
return r.json()
except json.decoder.JSONDecodeError:
return {'rtmessage': 'json decode error', 'rtcode': '5000'}
示例10: test_recordio
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def test_recordio():
frec = tempfile.mktemp()
N = 255
writer = mx.recordio.MXRecordIO(frec, 'w')
for i in range(N):
if sys.version_info[0] < 3:
writer.write(str(chr(i)))
else:
writer.write(bytes(str(chr(i)), 'utf-8'))
del writer
reader = mx.recordio.MXRecordIO(frec, 'r')
for i in range(N):
res = reader.read()
if sys.version_info[0] < 3:
assert res == str(chr(i))
else:
assert res == bytes(str(chr(i)), 'utf-8')
示例11: test_indexed_recordio
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def test_indexed_recordio():
fidx = tempfile.mktemp()
frec = tempfile.mktemp()
N = 255
writer = mx.recordio.MXIndexedRecordIO(fidx, frec, 'w')
for i in range(N):
if sys.version_info[0] < 3:
writer.write_idx(i, str(chr(i)))
else:
writer.write_idx(i, bytes(str(chr(i)), 'utf-8'))
del writer
reader = mx.recordio.MXIndexedRecordIO(fidx, frec, 'r')
keys = reader.keys
assert sorted(keys) == [i for i in range(N)]
random.shuffle(keys)
for i in keys:
res = reader.read_idx(i)
if sys.version_info[0] < 3:
assert res == str(chr(i))
else:
assert res == bytes(str(chr(i)), 'utf-8')
示例12: test_kernel_error_checking
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def test_kernel_error_checking():
# Running tests that may throw exceptions out of worker threads will stop CI testing
# if not run in a separate process (with its own address space for CUDA compatibility).
try:
mpctx = mp.get_context('spawn')
except:
print('SKIP: python%s.%s lacks the required process fork-exec support ... ' %
sys.version_info[0:2], file=sys.stderr, end='')
else:
with discard_stderr():
for f in [kernel_error_check_imperative, kernel_error_check_symbolic]:
p = mpctx.Process(target=f)
p.start()
p.join()
assert p.exitcode != 0,\
"Expected a synchronous kernel error from %s(), none seen." % f.__name__
示例13: download_dataset
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def download_dataset(path, source='https://www.cs.toronto.edu/~kriz/'
'cifar-10-python.tar.gz'):
"""
Downloads and extracts the dataset, if needed.
"""
files = ['data_batch_%d' % (i + 1) for i in range(5)] + ['test_batch']
for fn in files:
if not os.path.exists(os.path.join(path, 'cifar-10-batches-py', fn)):
break # at least one file is missing
else:
return # dataset is already complete
print("Downloading and extracting %s into %s..." % (source, path))
if sys.version_info[0] == 2:
from urllib import urlopen
else:
from urllib.request import urlopen
import tarfile
if not os.path.exists(path):
os.makedirs(path)
u = urlopen(source)
with tarfile.open(fileobj=u, mode='r|gz') as f:
f.extractall(path=path)
u.close()
示例14: is_payfast_ip_address
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def is_payfast_ip_address(ip_address_str):
"""
Return True if ip_address_str matches one of PayFast's server IP addresses.
Setting: `PAYFAST_IP_ADDRESSES`
:type ip_address_str: str
:rtype: bool
"""
# TODO: Django system check for validity?
payfast_ip_addresses = getattr(settings, 'PAYFAST_IP_ADDRESSES',
conf.DEFAULT_PAYFAST_IP_ADDRESSES)
if sys.version_info < (3,):
# Python 2 usability: Coerce str to unicode, to avoid very common TypeErrors.
# (On Python 3, this should generally not happen:
# let unexpected bytes values fail as expected.)
ip_address_str = unicode(ip_address_str) # noqa: F821
payfast_ip_addresses = [unicode(address) for address in payfast_ip_addresses] # noqa: F821
return any(ip_address(ip_address_str) in ip_network(payfast_address)
for payfast_address in payfast_ip_addresses)
示例15: _prepare_signable_fields
# 需要導入模塊: import sys [as 別名]
# 或者: from sys import version_info [as 別名]
def _prepare_signable_fields(
valid_field_order, # type: Sequence[str]
data_fields, # type: Mapping[str, str]
): # type: (...) -> SignableFields
"""
Prepare PayFast submission variables for signing, using the given field order.
:raise ValueError:
If `data_fields` contains any unexpected field names not in `valid_field_order`.
"""
present_fields = (set(data_fields.keys()) if sys.version_info < (3,) else
data_fields.keys())
extra_fields = present_fields - set(valid_field_order)
if extra_fields:
raise ValueError('Data contains unexpected fields: {!r}'.format(extra_fields))
return [
(name, data_fields[name]) for name in valid_field_order
if name in data_fields
]