Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
1e88f3fa
Commit
1e88f3fa
authored
Mar 05, 2012
by
Stefan Krah
Browse files
Options
Browse Files
Download
Plain Diff
Merge.
parents
1649c1b3
c53d6242
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
72 additions
and
31 deletions
+72
-31
Doc/howto/advocacy.rst
Doc/howto/advocacy.rst
+1
-2
Doc/howto/cporting.rst
Doc/howto/cporting.rst
+2
-2
Doc/howto/regex.rst
Doc/howto/regex.rst
+2
-2
Doc/library/markup.rst
Doc/library/markup.rst
+2
-2
Doc/library/packaging.database.rst
Doc/library/packaging.database.rst
+33
-12
Lib/distutils/command/bdist_msi.py
Lib/distutils/command/bdist_msi.py
+1
-1
Lib/distutils/tests/test_bdist_msi.py
Lib/distutils/tests/test_bdist_msi.py
+14
-5
Lib/packaging/command/bdist_msi.py
Lib/packaging/command/bdist_msi.py
+1
-1
Lib/packaging/database.py
Lib/packaging/database.py
+1
-0
Lib/packaging/tests/test_command_bdist_msi.py
Lib/packaging/tests/test_command_bdist_msi.py
+11
-2
Lib/xmlrpc/server.py
Lib/xmlrpc/server.py
+1
-1
Misc/NEWS
Misc/NEWS
+3
-0
Objects/frameobject.c
Objects/frameobject.c
+0
-1
No files found.
Doc/howto/advocacy.rst
View file @
1e88f3fa
...
...
@@ -264,8 +264,7 @@ the organizations that use Python.
**What are the restrictions on Python's use?**
They're practically nonexistent. Consult the :file:`Misc/COPYRIGHT` file in the
source distribution, or the section :ref:`history-and-license` for the full
They're practically nonexistent. Consult :ref:`history-and-license` for the full
language, but it boils down to three conditions:
* You have to leave the copyright notice on the software; if you don't include
...
...
Doc/howto/cporting.rst
View file @
1e88f3fa
...
...
@@ -261,8 +261,8 @@ behave slightly differently from real Capsules. Specifically:
copy as you see fit.)
You can find :file:`capsulethunk.h` in the Python source distribution
in the :file:`Doc/includes` directory
. We also include it here for
your
reference; here is :file:`capsulethunk.h`
:
as :source:`Doc/includes/capsulethunk.h`
. We also include it here for
your
convenience
:
.. literalinclude:: ../includes/capsulethunk.h
...
...
Doc/howto/regex.rst
View file @
1e88f3fa
...
...
@@ -360,7 +360,7 @@ and more.
You can learn about this by interactively experimenting with the :mod:`re`
module. If you have :mod:`tkinter` available, you may also want to look at
:
fil
e:`Tools/demo/redemo.py`, a demonstration program included with the
:
sourc
e:`Tools/demo/redemo.py`, a demonstration program included with the
Python distribution. It allows you to enter REs and strings, and displays
whether the RE matches or fails. :file:`redemo.py` can be quite useful when
trying to debug a complicated RE. Phil Schwartz's `Kodos
...
...
@@ -495,7 +495,7 @@ more convenient. If a program contains a lot of regular expressions, or re-uses
the same ones in several locations, then it might be worthwhile to collect all
the definitions in one place, in a section of code that compiles all the REs
ahead of time. To take an example from the standard library, here's an extract
from the now
deprecated :file:`xmllib.py`
::
from the now
-defunct Python 2 standard :mod:`xmllib` module
::
ref = re.compile( ... )
entityref = re.compile( ... )
...
...
Doc/library/markup.rst
View file @
1e88f3fa
...
...
@@ -23,7 +23,7 @@ definition of the Python bindings for the DOM and SAX interfaces.
html.rst
html.parser.rst
html.entities.rst
pyexpat
.rst
xml.etree.elementtree
.rst
xml.dom.rst
xml.dom.minidom.rst
xml.dom.pulldom.rst
...
...
@@ -31,4 +31,4 @@ definition of the Python bindings for the DOM and SAX interfaces.
xml.sax.handler.rst
xml.sax.utils.rst
xml.sax.reader.rst
xml.etree.elementtree
.rst
pyexpat
.rst
Doc/library/packaging.database.rst
View file @
1e88f3fa
...
...
@@ -15,6 +15,11 @@ Installed Python distributions are represented by instances of
Most functions also provide an extra argument ``use_egg_info`` to take legacy
distributions into account.
For the purpose of this module, "installed" means that the distribution's
:file:`.dist-info`, :file:`.egg-info` or :file:`egg` directory or file is found
on :data:`sys.path`. For example, if the parent directory of a
:file:`dist-info` directory is added to :envvar:`PYTHONPATH`, then it will be
available in the database.
Classes representing installed distributions
--------------------------------------------
...
...
@@ -128,7 +133,7 @@ Functions to work with the database
for the first installed distribution matching *name*. Egg distributions are
considered only if *use_egg_info* is true; if both a dist-info and an egg
file are found, the dist-info prevails. The directories to be searched are
given in *paths*, which defaults to :data:`sys.path`. Return ``None`` if no
given in *paths*, which defaults to :data:`sys.path`. Return
s
``None`` if no
matching distribution is found.
.. FIXME param should be named use_egg
...
...
@@ -200,20 +205,23 @@ functions:
Examples
--------
Print all information about a distribution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Print
ing
all information about a distribution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^
Given
a path to a ``.dist-info``
distribution, we shall print out all
Given
the name of an installed
distribution, we shall print out all
information that can be obtained using functions provided in this module::
import sys
import packaging.database
path = input()
# first create the Distribution instance
try:
dist = packaging.database.Distribution(path)
except FileNotFoundError:
name = sys.argv[1]
except ValueError:
sys.exit('Not enough arguments')
# first create the Distribution instance
dist = packaging.database.Distribution(path)
if dist is None:
sys.exit('No such distribution')
print('Information about %r' % dist.name)
...
...
@@ -244,7 +252,7 @@ information from a :file:`.dist-info` directory. By typing in the console:
.. code-block:: sh
$ echo /tmp/choxie/choxie-2.0.0.9.dist-info | python3 print_info.py
python print_info.py choxie
we get the following output:
...
...
@@ -299,10 +307,23 @@ we get the following output:
* It was installed as a dependency
Find out obsoleted distributions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Getting metadata about a distribution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sometimes you're not interested about the packaging information contained in a
full :class:`Distribution` object but just want to do something with its
:attr:`~Distribution.metadata`::
>>> from packaging.database import get_distribution
>>> info = get_distribution('chocolate').metadata
>>> info['Keywords']
['cooking', 'happiness']
Finding out obsoleted distributions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Now, we ta
ke ta
ckle a different problem, we are interested in finding out
Now, we tackle a different problem, we are interested in finding out
which distributions have been obsoleted. This can be easily done as follows::
import packaging.database
...
...
Lib/distutils/command/bdist_msi.py
View file @
1e88f3fa
...
...
@@ -260,7 +260,7 @@ class bdist_msi(Command):
self
.
db
.
Commit
()
if
hasattr
(
self
.
distribution
,
'dist_files'
):
tup
=
'bdist_msi'
,
self
.
target_version
or
'any'
,
full
name
tup
=
'bdist_msi'
,
self
.
target_version
or
'any'
,
installer_
name
self
.
distribution
.
dist_files
.
append
(
tup
)
if
not
self
.
keep_temp
:
...
...
Lib/distutils/tests/test_bdist_msi.py
View file @
1e88f3fa
"""Tests for distutils.command.bdist_msi."""
import
unittest
import
os
import
sys
import
unittest
from
test.support
import
run_unittest
from
distutils.tests
import
support
@
unittest
.
skipUnless
(
sys
.
platform
==
"win32"
,
"These tests are only for win32"
)
@
unittest
.
skipUnless
(
sys
.
platform
==
'win32'
,
'these tests require Windows'
)
class
BDistMSITestCase
(
support
.
TempdirManager
,
support
.
LoggingSilencer
,
unittest
.
TestCase
):
...
...
@@ -14,9 +14,18 @@ class BDistMSITestCase(support.TempdirManager,
def
test_minimal
(
self
):
# minimal test XXX need more tests
from
distutils.command.bdist_msi
import
bdist_msi
p
kg_pth
,
dist
=
self
.
create_dist
()
p
roject_dir
,
dist
=
self
.
create_dist
()
cmd
=
bdist_msi
(
dist
)
cmd
.
ensure_finalized
()
cmd
.
run
()
bdists
=
os
.
listdir
(
os
.
path
.
join
(
project_dir
,
'dist'
))
self
.
assertEqual
(
bdists
,
[
'foo-0.1.msi'
])
# bug #13719: upload ignores bdist_msi files
self
.
assertEqual
(
dist
.
dist_files
,
[(
'bdist_msi'
,
'any'
,
'dist/foo-0.1.msi'
)])
def
test_suite
():
return
unittest
.
makeSuite
(
BDistMSITestCase
)
...
...
Lib/packaging/command/bdist_msi.py
View file @
1e88f3fa
...
...
@@ -261,7 +261,7 @@ class bdist_msi(Command):
self
.
db
.
Commit
()
if
hasattr
(
self
.
distribution
,
'dist_files'
):
tup
=
'bdist_msi'
,
self
.
target_version
or
'any'
,
full
name
tup
=
'bdist_msi'
,
self
.
target_version
or
'any'
,
installer_
name
self
.
distribution
.
dist_files
.
append
(
tup
)
if
not
self
.
keep_temp
:
...
...
Lib/packaging/database.py
View file @
1e88f3fa
...
...
@@ -19,6 +19,7 @@ __all__ = [
'get_distributions'
,
'get_distribution'
,
'get_file_users'
,
'provides_distribution'
,
'obsoletes_distribution'
,
'enable_cache'
,
'disable_cache'
,
'clear_cache'
,
# XXX these functions' names look like get_file_users but are not related
'get_file_path'
,
'get_file'
]
...
...
Lib/packaging/tests/test_command_bdist_msi.py
View file @
1e88f3fa
"""Tests for distutils.command.bdist_msi."""
import
os
import
sys
from
packaging.tests
import
unittest
,
support
@
unittest
.
skipUnless
(
sys
.
platform
==
'win32'
,
'these tests require Windows'
)
class
BDistMSITestCase
(
support
.
TempdirManager
,
support
.
LoggingCatcher
,
unittest
.
TestCase
):
@
unittest
.
skipUnless
(
sys
.
platform
==
"win32"
,
"runs only on win32"
)
def
test_minimal
(
self
):
# minimal test XXX need more tests
from
packaging.command.bdist_msi
import
bdist_msi
p
kg_pth
,
dist
=
self
.
create_dist
()
p
roject_dir
,
dist
=
self
.
create_dist
()
cmd
=
bdist_msi
(
dist
)
cmd
.
ensure_finalized
()
cmd
.
run
()
bdists
=
os
.
listdir
(
os
.
path
.
join
(
project_dir
,
'dist'
))
self
.
assertEqual
(
bdists
,
[
'foo-0.1.msi'
])
# bug #13719: upload ignores bdist_msi files
self
.
assertEqual
(
dist
.
dist_files
,
[(
'bdist_msi'
,
'any'
,
'dist/foo-0.1.msi'
)])
def
test_suite
():
...
...
Lib/xmlrpc/server.py
View file @
1e88f3fa
"""XML-RPC Servers.
r
"""XML-RPC Servers.
This module can be used to create simple XML-RPC servers
by creating a server and either installing functions, a
...
...
Misc/NEWS
View file @
1e88f3fa
...
...
@@ -13,6 +13,9 @@ Core and Builtins
Library
-------
- Issue #13719: Make the distutils and packaging upload commands aware of
bdist_msi products.
- Issue #14007: Accept incomplete TreeBuilder objects (missing start, end,
data or close method) for the Python implementation as well.
Drop the no-op TreeBuilder().xml() method from the C implementation.
...
...
Objects/frameobject.c
View file @
1e88f3fa
...
...
@@ -20,7 +20,6 @@ static PyMemberDef frame_memberlist[] = {
{
"f_builtins"
,
T_OBJECT
,
OFF
(
f_builtins
),
READONLY
},
{
"f_globals"
,
T_OBJECT
,
OFF
(
f_globals
),
READONLY
},
{
"f_lasti"
,
T_INT
,
OFF
(
f_lasti
),
READONLY
},
{
"f_yieldfrom"
,
T_OBJECT
,
OFF
(
f_yieldfrom
),
READONLY
},
{
NULL
}
/* Sentinel */
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment