mirror of https://github.com/python/cpython
commit
2527796a22
|
@ -14,6 +14,7 @@ platform
|
|||
pybuilddir.txt
|
||||
pyconfig.h
|
||||
libpython*.a
|
||||
libpython*.so*
|
||||
python.exe
|
||||
python-gdb.py
|
||||
reflog.txt
|
||||
|
|
|
@ -37,6 +37,7 @@ build/
|
|||
config.log
|
||||
config.status
|
||||
libpython*.a
|
||||
libpython*.so*
|
||||
pybuilddir.txt
|
||||
pyconfig.h
|
||||
python
|
||||
|
|
|
@ -41,14 +41,13 @@ PCbuild/amd64/
|
|||
|
||||
syntax: glob
|
||||
libpython*.a
|
||||
libpython*.so*
|
||||
*.swp
|
||||
*.o
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.cover
|
||||
*.orig
|
||||
*.rej
|
||||
*~
|
||||
Lib/lib2to3/*.pickle
|
||||
Lib/test/data/*
|
||||
|
|
|
@ -203,6 +203,7 @@ docs@python.org), and we'll be glad to correct the problem.
|
|||
* Kalle Svensson
|
||||
* Jim Tittsler
|
||||
* David Turner
|
||||
* Sandro Tosi
|
||||
* Ville Vainio
|
||||
* Nadeem Vawda
|
||||
* Martijn Vries
|
||||
|
|
|
@ -72,8 +72,8 @@ setup script). Indirectly provides the :class:`distutils.dist.Distribution` and
|
|||
| | be built | :class:`distutils.core.Extension` |
|
||||
+--------------------+--------------------------------+-------------------------------------------------------------+
|
||||
| *classifiers* | A list of categories for the | The list of available |
|
||||
| | package | categorizations is at |
|
||||
| | | http://pypi.python.org/pypi?:action=list_classifiers. |
|
||||
| | package | categorizations is available on `PyPI |
|
||||
| | | <http://pypi.python.org/pypi?:action=list_classifiers>`_. |
|
||||
+--------------------+--------------------------------+-------------------------------------------------------------+
|
||||
| *distclass* | the :class:`Distribution` | A subclass of |
|
||||
| | class to use | :class:`distutils.core.Distribution` |
|
||||
|
|
|
@ -72,7 +72,7 @@ In that case, you would download the installer appropriate to your platform and
|
|||
do the obvious thing with it: run it if it's an executable installer, ``rpm
|
||||
--install`` it if it's an RPM, etc. You don't need to run Python or a setup
|
||||
script, you don't need to compile anything---you might not even need to read any
|
||||
instructions (although it's always a good idea to do so anyways).
|
||||
instructions (although it's always a good idea to do so anyway).
|
||||
|
||||
Of course, things will not always be that easy. You might be interested in a
|
||||
module distribution that doesn't have an easy-to-use installer for your
|
||||
|
|
|
@ -431,7 +431,8 @@ Glossary
|
|||
|
||||
mapping
|
||||
A container object that supports arbitrary key lookups and implements the
|
||||
methods specified in the :class:`Mapping` or :class:`MutableMapping`
|
||||
methods specified in the :class:`~collections.Mapping` or
|
||||
:class:`~collections.MutableMapping`
|
||||
:ref:`abstract base classes <collections-abstract-base-classes>`. Examples
|
||||
include :class:`dict`, :class:`collections.defaultdict`,
|
||||
:class:`collections.OrderedDict` and :class:`collections.Counter`.
|
||||
|
|
|
@ -14,7 +14,7 @@ the standard audio interface for Linux and recent versions of FreeBSD.
|
|||
ALSA is in the standard kernel as of 2.5.x. Presumably if you
|
||||
use ALSA, you'll have to make sure its OSS compatibility layer
|
||||
is active to use ossaudiodev, but you're gonna need it for the vast
|
||||
majority of Linux audio apps anyways.
|
||||
majority of Linux audio apps anyway.
|
||||
|
||||
Sounds like things are also complicated for other BSDs. In response
|
||||
to my python-dev query, Thomas Wouters said:
|
||||
|
|
|
@ -67,8 +67,8 @@ module distribution being built/packaged/distributed/installed.
|
|||
| | be built | :class:`packaging.compiler.extension.Extension` |
|
||||
+--------------------+--------------------------------+-------------------------------------------------------------+
|
||||
| *classifiers* | A list of categories for the | The list of available |
|
||||
| | distribution | categorizations is at |
|
||||
| | | http://pypi.python.org/pypi?:action=list_classifiers. |
|
||||
| | distribution | categorizations is available on `PyPI |
|
||||
| | | <http://pypi.python.org/pypi?:action=list_classifiers>`_. |
|
||||
+--------------------+--------------------------------+-------------------------------------------------------------+
|
||||
| *distclass* | the :class:`Distribution` | A subclass of |
|
||||
| | class to use | :class:`packaging.dist.Distribution` |
|
||||
|
|
|
@ -39,7 +39,7 @@ The Python standard library provides two different profilers:
|
|||
2. :mod:`profile`, a pure Python module whose interface is imitated by
|
||||
:mod:`cProfile`. Adds significant overhead to profiled programs. If you're
|
||||
trying to extend the profiler in some way, the task might be easier with this
|
||||
module. Copyright © 1994, by InfoSeek Corporation.
|
||||
module.
|
||||
|
||||
The :mod:`profile` and :mod:`cProfile` modules export the same interface, so
|
||||
they are mostly interchangeable; :mod:`cProfile` has a much lower overhead but
|
||||
|
@ -592,27 +592,3 @@ The resulting profiler will then call :func:`your_time_func`.
|
|||
functions should be used with care and should be as fast as possible. For the
|
||||
best results with a custom timer, it might be necessary to hard-code it in the C
|
||||
source of the internal :mod:`_lsprof` module.
|
||||
|
||||
|
||||
Copyright and License Notices
|
||||
=============================
|
||||
|
||||
Copyright © 1994, by InfoSeek Corporation, all rights reserved.
|
||||
|
||||
Permission to use, copy, modify, and distribute this Python software and its
|
||||
associated documentation for any purpose (subject to the restriction in the
|
||||
following sentence) without fee is hereby granted, provided that the above
|
||||
copyright notice appears in all copies, and that both that copyright notice and
|
||||
this permission notice appear in supporting documentation, and that the name of
|
||||
InfoSeek not be used in advertising or publicity pertaining to distribution of
|
||||
the software without specific, written prior permission. This permission is
|
||||
explicitly restricted to the copying and modification of the software to remain
|
||||
in Python, compiled Python, or other languages (such as C) wherein the modified
|
||||
or derived code is exclusively imported into a Python module.
|
||||
|
||||
INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT
|
||||
SHALL INFOSEEK CORPORATION 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.
|
||||
|
|
|
@ -159,12 +159,18 @@ Directory and files operations
|
|||
|
||||
.. function:: move(src, dst)
|
||||
|
||||
Recursively move a file or directory to another location.
|
||||
Recursively move a file or directory (*src*) to another location (*dst*).
|
||||
|
||||
Uses :func:`os.rename` to perform the move. If it fails, for reasons such as
|
||||
when *src* and *dst* are on different filesystems or in case of windows where
|
||||
rename is not supported when *dst* exists, fallback to copying *src* (with
|
||||
:func:`copy2`) to the *dst* and then remove *src*.
|
||||
If the destination is a directory or a symlink to a directory, then *src* is
|
||||
moved inside that directory.
|
||||
|
||||
The destination directory must not already exist. If the destination already
|
||||
exists but is not a directory, it may be overwritten depending on
|
||||
:func:`os.rename` semantics.
|
||||
|
||||
If the destination is on the current filesystem, then :func:`os.rename` is
|
||||
used. Otherwise, *src* is copied (using :func:`copy2`) to *dst* and then
|
||||
removed.
|
||||
|
||||
.. function:: disk_usage(path)
|
||||
|
||||
|
@ -177,9 +183,9 @@ Directory and files operations
|
|||
|
||||
.. exception:: Error
|
||||
|
||||
This exception collects exceptions that raised during a multi-file operation. For
|
||||
:func:`copytree`, the exception argument is a list of 3-tuples (*srcname*,
|
||||
*dstname*, *exception*).
|
||||
This exception collects exceptions that are raised during a multi-file
|
||||
operation. For :func:`copytree`, the exception argument is a list of 3-tuples
|
||||
(*srcname*, *dstname*, *exception*).
|
||||
|
||||
|
||||
.. _shutil-example:
|
||||
|
@ -277,7 +283,7 @@ Archiving operations
|
|||
|
||||
.. function:: get_archive_formats()
|
||||
|
||||
Returns a list of supported formats for archiving.
|
||||
Return a list of supported formats for archiving.
|
||||
Each element of the returned sequence is a tuple ``(name, description)``
|
||||
|
||||
By default :mod:`shutil` provides these formats:
|
||||
|
@ -295,7 +301,7 @@ Archiving operations
|
|||
|
||||
.. function:: register_archive_format(name, function, [extra_args, [description]])
|
||||
|
||||
Registers an archiver for the format *name*. *function* is a callable that
|
||||
Register an archiver for the format *name*. *function* is a callable that
|
||||
will be used to invoke the archiver.
|
||||
|
||||
If given, *extra_args* is a sequence of ``(name, value)`` pairs that will be
|
||||
|
|
|
@ -494,36 +494,6 @@ The :mod:`http.cookies` module contains the following notice::
|
|||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
Profiling
|
||||
---------
|
||||
|
||||
The :mod:`profile` and :mod:`pstats` modules contain the following notice::
|
||||
|
||||
Copyright 1994, by InfoSeek Corporation, all rights reserved.
|
||||
Written by James Roskind
|
||||
|
||||
Permission to use, copy, modify, and distribute this Python software
|
||||
and its associated documentation for any purpose (subject to the
|
||||
restriction in the following sentence) without fee is hereby granted,
|
||||
provided that the above copyright notice appears in all copies, and
|
||||
that both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of InfoSeek not be used in
|
||||
advertising or publicity pertaining to distribution of the software
|
||||
without specific, written prior permission. This permission is
|
||||
explicitly restricted to the copying and modification of the software
|
||||
to remain in Python, compiled Python, or other languages (such as C)
|
||||
wherein the modified or derived code is exclusively imported into a
|
||||
Python module.
|
||||
|
||||
INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS. IN NO EVENT SHALL INFOSEEK CORPORATION 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.
|
||||
|
||||
|
||||
Execution tracing
|
||||
-----------------
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ c-api/sequence,,:i2,o[i1:i2]
|
|||
c-api/sequence,,:i2,o[i1:i2] = v
|
||||
c-api/sequence,,:i2,del o[i1:i2]
|
||||
c-api/unicode,,:end,str[start:end]
|
||||
distutils/apiref,,:action,http://pypi.python.org/pypi?:action=list_classifiers
|
||||
distutils/setupscript,,::,
|
||||
extending/embedding,,:numargs,"if(!PyArg_ParseTuple(args, "":numargs""))"
|
||||
extending/extending,,:set,"if (PyArg_ParseTuple(args, ""O:set_callback"", &temp)) {"
|
||||
|
@ -495,7 +494,6 @@ library/pprint,209,::,"'Programming Language :: Python :: 2.6',"
|
|||
library/pprint,209,::,"'Programming Language :: Python :: 2.7',"
|
||||
library/pprint,209,::,"'Topic :: Software Development :: Libraries',"
|
||||
library/pprint,209,::,"'Topic :: Software Development :: Libraries :: Python Modules'],"
|
||||
library/packaging.dist,,:action,http://pypi.python.org/pypi?:action=list_classifiers
|
||||
packaging/examples,,`,This is the description of the ``foobar`` project.
|
||||
packaging/setupcfg,,::,Development Status :: 3 - Alpha
|
||||
packaging/setupcfg,,::,License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
|
||||
|
|
|
|
@ -598,24 +598,24 @@ occurs within the definition of a class.
|
|||
Name mangling is helpful for letting subclasses override methods without
|
||||
breaking intraclass method calls. For example::
|
||||
|
||||
class Mapping:
|
||||
def __init__(self, iterable):
|
||||
self.items_list = []
|
||||
self.__update(iterable)
|
||||
class Mapping:
|
||||
def __init__(self, iterable):
|
||||
self.items_list = []
|
||||
self.__update(iterable)
|
||||
|
||||
def update(self, iterable):
|
||||
for item in iterable:
|
||||
self.items_list.append(item)
|
||||
def update(self, iterable):
|
||||
for item in iterable:
|
||||
self.items_list.append(item)
|
||||
|
||||
__update = update # private copy of original update() method
|
||||
__update = update # private copy of original update() method
|
||||
|
||||
class MappingSubclass(Mapping):
|
||||
class MappingSubclass(Mapping):
|
||||
|
||||
def update(self, keys, values):
|
||||
# provides new signature for update()
|
||||
# but does not break __init__()
|
||||
for item in zip(keys, values):
|
||||
self.items_list.append(item)
|
||||
def update(self, keys, values):
|
||||
# provides new signature for update()
|
||||
# but does not break __init__()
|
||||
for item in zip(keys, values):
|
||||
self.items_list.append(item)
|
||||
|
||||
Note that the mangling rules are designed mostly to avoid accidents; it still is
|
||||
possible to access or modify a variable that is considered private. This can
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
"""Class for printing reports on profiled python code."""
|
||||
|
||||
# Class for printing reports on profiled python code. rev 1.0 4/1/94
|
||||
#
|
||||
# Written by James Roskind
|
||||
# Based on prior profile module by Sjoerd Mullender...
|
||||
# which was hacked somewhat by: Guido van Rossum
|
||||
|
||||
"""Class for profiling Python code."""
|
||||
|
||||
# Copyright Disney Enterprises, Inc. All Rights Reserved.
|
||||
# Licensed to PSF under a Contributor Agreement
|
||||
#
|
||||
|
|
|
@ -4,17 +4,10 @@ Tests common to list and UserList.UserList
|
|||
|
||||
import sys
|
||||
import os
|
||||
from functools import cmp_to_key
|
||||
|
||||
from test import support, seq_tests
|
||||
|
||||
def CmpToKey(mycmp):
|
||||
'Convert a cmp= function into a key= function'
|
||||
class K(object):
|
||||
def __init__(self, obj):
|
||||
self.obj = obj
|
||||
def __lt__(self, other):
|
||||
return mycmp(self.obj, other.obj) == -1
|
||||
return K
|
||||
|
||||
class CommonTest(seq_tests.CommonTest):
|
||||
|
||||
|
@ -484,7 +477,7 @@ class CommonTest(seq_tests.CommonTest):
|
|||
return 1
|
||||
else: # a > b
|
||||
return -1
|
||||
u.sort(key=CmpToKey(revcmp))
|
||||
u.sort(key=cmp_to_key(revcmp))
|
||||
self.assertEqual(u, self.type2test([2,1,0,-1,-2]))
|
||||
|
||||
# The following dumps core in unpatched Python 1.5:
|
||||
|
@ -497,7 +490,7 @@ class CommonTest(seq_tests.CommonTest):
|
|||
else: # xmod > ymod
|
||||
return 1
|
||||
z = self.type2test(range(12))
|
||||
z.sort(key=CmpToKey(myComparison))
|
||||
z.sort(key=cmp_to_key(myComparison))
|
||||
|
||||
self.assertRaises(TypeError, z.sort, 2)
|
||||
|
||||
|
@ -509,7 +502,8 @@ class CommonTest(seq_tests.CommonTest):
|
|||
return -1
|
||||
else: # x > y
|
||||
return 1
|
||||
self.assertRaises(ValueError, z.sort, key=CmpToKey(selfmodifyingComparison))
|
||||
self.assertRaises(ValueError, z.sort,
|
||||
key=cmp_to_key(selfmodifyingComparison))
|
||||
|
||||
self.assertRaises(TypeError, z.sort, 42, 42, 42, 42)
|
||||
|
||||
|
|
|
@ -2,18 +2,11 @@ from test import support
|
|||
import random
|
||||
import sys
|
||||
import unittest
|
||||
from functools import cmp_to_key
|
||||
|
||||
verbose = support.verbose
|
||||
nerrors = 0
|
||||
|
||||
def CmpToKey(mycmp):
|
||||
'Convert a cmp= function into a key= function'
|
||||
class K(object):
|
||||
def __init__(self, obj):
|
||||
self.obj = obj
|
||||
def __lt__(self, other):
|
||||
return mycmp(self.obj, other.obj) == -1
|
||||
return K
|
||||
|
||||
def check(tag, expected, raw, compare=None):
|
||||
global nerrors
|
||||
|
@ -23,7 +16,7 @@ def check(tag, expected, raw, compare=None):
|
|||
|
||||
orig = raw[:] # save input in case of error
|
||||
if compare:
|
||||
raw.sort(key=CmpToKey(compare))
|
||||
raw.sort(key=cmp_to_key(compare))
|
||||
else:
|
||||
raw.sort()
|
||||
|
||||
|
@ -108,7 +101,7 @@ class TestBase(unittest.TestCase):
|
|||
print(" Checking against an insane comparison function.")
|
||||
print(" If the implementation isn't careful, this may segfault.")
|
||||
s = x[:]
|
||||
s.sort(key=CmpToKey(lambda a, b: int(random.random() * 3) - 1))
|
||||
s.sort(key=cmp_to_key(lambda a, b: int(random.random() * 3) - 1))
|
||||
check("an insane function left some permutation", x, s)
|
||||
|
||||
if len(x) >= 2:
|
||||
|
@ -165,12 +158,12 @@ class TestBugs(unittest.TestCase):
|
|||
L.pop()
|
||||
return (x > y) - (x < y)
|
||||
L = [1,2]
|
||||
self.assertRaises(ValueError, L.sort, key=CmpToKey(mutating_cmp))
|
||||
self.assertRaises(ValueError, L.sort, key=cmp_to_key(mutating_cmp))
|
||||
def mutating_cmp(x, y):
|
||||
L.append(3)
|
||||
del L[:]
|
||||
return (x > y) - (x < y)
|
||||
self.assertRaises(ValueError, L.sort, key=CmpToKey(mutating_cmp))
|
||||
self.assertRaises(ValueError, L.sort, key=cmp_to_key(mutating_cmp))
|
||||
memorywaster = [memorywaster]
|
||||
|
||||
#==============================================================================
|
||||
|
@ -185,7 +178,7 @@ class TestDecorateSortUndecorate(unittest.TestCase):
|
|||
def my_cmp(x, y):
|
||||
xlower, ylower = x.lower(), y.lower()
|
||||
return (xlower > ylower) - (xlower < ylower)
|
||||
copy.sort(key=CmpToKey(my_cmp))
|
||||
copy.sort(key=cmp_to_key(my_cmp))
|
||||
|
||||
def test_baddecorator(self):
|
||||
data = 'The quick Brown fox Jumped over The lazy Dog'.split()
|
||||
|
@ -261,8 +254,8 @@ class TestDecorateSortUndecorate(unittest.TestCase):
|
|||
def my_cmp_reversed(x, y):
|
||||
x0, y0 = x[0], y[0]
|
||||
return (y0 > x0) - (y0 < x0)
|
||||
data.sort(key=CmpToKey(my_cmp), reverse=True)
|
||||
copy1.sort(key=CmpToKey(my_cmp_reversed))
|
||||
data.sort(key=cmp_to_key(my_cmp), reverse=True)
|
||||
copy1.sort(key=cmp_to_key(my_cmp_reversed))
|
||||
self.assertEqual(data, copy1)
|
||||
copy2.sort(key=lambda x: x[0], reverse=True)
|
||||
self.assertEqual(data, copy2)
|
||||
|
|
|
@ -57,7 +57,7 @@ typedef struct {
|
|||
int error; /* see WFERR_* values */
|
||||
int depth;
|
||||
/* If fp == NULL, the following are valid: */
|
||||
PyObject * readable; /* Stream-like object being read from */
|
||||
PyObject *readable; /* Stream-like object being read from */
|
||||
PyObject *str;
|
||||
PyObject *current_filename;
|
||||
char *ptr;
|
||||
|
@ -467,7 +467,7 @@ typedef WFILE RFILE; /* Same struct with different invariants */
|
|||
static int
|
||||
r_string(char *s, int n, RFILE *p)
|
||||
{
|
||||
char * ptr;
|
||||
char *ptr;
|
||||
int read, left;
|
||||
|
||||
if (!p->readable) {
|
||||
|
@ -566,7 +566,7 @@ r_long(RFILE *p)
|
|||
static PyObject *
|
||||
r_long64(RFILE *p)
|
||||
{
|
||||
PyObject * result = NULL;
|
||||
PyObject *result = NULL;
|
||||
long lo4 = r_long(p);
|
||||
long hi4 = r_long(p);
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
# This script converts a C file to use the PEP 384 type definition API
|
||||
# Usage: abitype.py < old_code > new_code
|
||||
import re, sys
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
""" Command line interface to difflib.py providing diffs in four formats:
|
||||
|
||||
* ndiff: lists every line and highlights interline changes.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
"""mailerdaemon - classes to parse mailer-daemon messages"""
|
||||
#!/usr/bin/env python3
|
||||
"""Classes to parse mailer-daemon messages."""
|
||||
|
||||
import calendar
|
||||
import email.message
|
||||
|
@ -6,7 +7,10 @@ import re
|
|||
import os
|
||||
import sys
|
||||
|
||||
Unparseable = 'mailerdaemon.Unparseable'
|
||||
|
||||
class Unparseable(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class ErrorMessage(email.message.Message):
|
||||
def __init__(self):
|
||||
|
@ -18,8 +22,10 @@ class ErrorMessage(email.message.Message):
|
|||
if not sub:
|
||||
return 0
|
||||
sub = sub.lower()
|
||||
if sub.startswith('waiting mail'): return 1
|
||||
if 'warning' in sub: return 1
|
||||
if sub.startswith('waiting mail'):
|
||||
return 1
|
||||
if 'warning' in sub:
|
||||
return 1
|
||||
self.sub = sub
|
||||
return 0
|
||||
|
||||
|
@ -145,14 +151,17 @@ def emparse_list(fp, sub):
|
|||
errors.append(' '.join((email.strip()+': '+reason).split()))
|
||||
return errors
|
||||
|
||||
EMPARSERS = [emparse_list, ]
|
||||
EMPARSERS = [emparse_list]
|
||||
|
||||
def sort_numeric(a, b):
|
||||
a = int(a)
|
||||
b = int(b)
|
||||
if a < b: return -1
|
||||
elif a > b: return 1
|
||||
else: return 0
|
||||
if a < b:
|
||||
return -1
|
||||
elif a > b:
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
def parsedir(dir, modify):
|
||||
os.chdir(dir)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Script that generates the ctype.h-replacement in stringobject.c."""
|
||||
|
||||
NAMES = ("LOWER", "UPPER", "ALPHA", "DIGIT", "XDIGIT", "ALNUM", "SPACE")
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/usr/bin/env python3
|
||||
import re
|
||||
import sys
|
||||
import shutil
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Make a reST file compliant to our pre-commit hook.
|
||||
# Currently just remove trailing whitespace.
|
||||
|
|
Loading…
Reference in New Issue