KEMBAR78
Distributing | PDF | License | Python (Programming Language)
0% found this document useful (0 votes)
7 views53 pages

Distributing

The document provides guidelines for distributing Python modules, including the use of the Python Package Index (PyPI) and tools like setuptools and wheel. It outlines the necessary steps for packaging and uploading projects, as well as best practices for naming and managing Python packages. The document also includes references to various Python packaging standards and tools.

Uploaded by

youngraison
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views53 pages

Distributing

The document provides guidelines for distributing Python modules, including the use of the Python Package Index (PyPI) and tools like setuptools and wheel. It outlines the necessary steps for packaging and uploading projects, as well as best practices for naming and managing Python packages. The document also includes references to various Python packaging standards and tools.

Uploaded by

youngraison
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Distributing Python Modules

3.9.13

Guido van Rossum


and the Python development team

31, 2022

Python Software Foundation


Email: docs@python.org
Contents

1 3

2 5

3 7

4 Python 9

5 ... 11
5.1 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

A 13

B 25
B.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

C 27
C.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
C.2 Python . . . . . . . . . . . . . . . . . . . . . . . . . . 28
C.2.1 PYTHON 3.9.13 PSF . . . . . . . . . . . . . . . . . . . . . . . . . 28
C.2.2 PYTHON 2.0 BEOPEN.COM . . . . . . . . . . . . . . . . . . . . . 29
C.2.3 PYTHON 1.6.1 CNRI . . . . . . . . . . . . . . . . . . . . . . . . . 30
C.2.4 PYTHON 0.9.0 1.2 CWI . . . . . . . . . . . . . . . . . . . . . . 31
C.2.5 ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON 3.9.13 DOCUMEN-
TATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
C.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
C.3.1 Mersenne Twister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
C.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
C.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
C.3.4 Cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
C.3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
C.3.6 UUencode UUdecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
C.3.7 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
C.3.8 test_epoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
C.3.9 Select kqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
C.3.10 SipHash24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
C.3.11 strtod dtoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
C.3.12 OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
C.3.13 expat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
C.3.14 libffi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
C.3.15 zlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

i
C.3.16 cfuhash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
C.3.17 libmpdec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
C.3.18 W3C C14N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

D 45

47

ii
Distributing Python Modules, 3.9.13

distutils-sig@python.org
Python
Python
Python

Python

:
Python

Contents 1
Distributing Python Modules, 3.9.13

2 Contents
CHAPTER 1

• the Python Package Index is a public repository of open source licensed packages made available for use by
other Python users
• Python Packaging Authority
GitHub Bitbucket

• distutils 1998 Python


distutils
Python

• setuptools distutils 2004


distutils distutils
Python
• wheel bdist_wheel distutils/setuptools
PEP 427
Python

3
Distributing Python Modules, 3.9.13

4 Chapter 1.
CHAPTER 2

Python

5
Distributing Python Modules, 3.9.13

6 Chapter 2.
CHAPTER 3

Python
Python
pip :

python -m pip install setuptools wheel twine

: For POSIX users (including macOS and Linux users), these instructions assume the use of a virtual environ-
ment.
Windows Python PATH

Python

7
Distributing Python Modules, 3.9.13

8 Chapter 3.
CHAPTER 4

Python

Python


• Uploading the project to the Python Package Index
• The .pypirc file

9
Distributing Python Modules, 3.9.13

10 Chapter 4. Python
CHAPTER 5

...

5.1 ...

• check the Python Package Index to see if the name is already in use
• GitHub Bitbucket

5.2 ...

Python
:
Python

11
Distributing Python Modules, 3.9.13

12 Chapter 5. ...
APPENDIX A

>>> Python
...
• Python

• Ellipsis
2to3 Python 2.x Python 3.x

2to3 lib2to3 Tools/scripts/2to3


2to3-reference
abstract base class -- ABC duck-typing
hasattr() ABC
isinstance() issubclass()
abc Python ABC collections.abc
numbers io importlib.abc
abc ABC
annotation -- type hint

__annotations__
variable annotation function annotation PEP 484 PEP 526
argument -- function method
• : name= **
3 5 complex() :

complex(real=3, imag=5)
complex(**{'real': 3, 'imag': 5})

• : /
* iterable 3 5 :

complex(3, 5)
complex(*(3, 5))

13
Distributing Python Modules, 3.9.13

calls

parameter PEP 362


asynchronous context manager -- __aenter__()
__aexit__() async with PEP 492
asynchronous generator -- asynchronous generator iterator async
def yield async for

await async for async with


asynchronous generator iterator -- asynchronous generator
asynchronous iterator __anext__()
yield
yield ( try )
__anext__()
PEP 492 PEP 525
asynchronous iterable -- async for
__aiter__() asynchronous iterator PEP 492
asynchronous iterator -- __aiter__() __anext__() __anext__
awaitable async for __anext__()
StopAsyncIteration PEP 492
attribute -- o
a o.a
awaitable -- await coroutine __await__()
PEP 492
BDFL Guido van Rossum Python
binary file -- file object 'rb',
'wb' or 'rb+' sys.stdin.buffer sys.stdout.buffer io.BytesIO
gzip.GzipFile
text file str
bytes-like object -- bufferobjects C-contiguous
bytes bytearray array.array memoryview

bytearray bytearray memoryview


(” ”) bytes bytes memoryview
bytecode -- Python CPython Python
.pyc
” ” virtual machine
Python Python
dis
callback --
class --
class variable -- ( )

14 Appendix A.
Distributing Python Modules, 3.9.13

coercion --
int(3.15) 3 3+4.5
int, float TypeError
float(3)+4.5
3+4.5
complex number --
-1 i j Python
j 3+1j math
cmath

context manager -- with __enter__() __exit__()


PEP 343
context variable --

contextvars
contiguous -- C Fortran C Fortran

C- Fortran

coroutine --
async def PEP 492
coroutine function -- coroutine async def
await async for async with PEP 492
CPython Python python.org ”CPython”
Jython IronPython
decorator -- @wrapper
classmethod() staticmethod()
:

def f(arg):
...
f = staticmethod(f)

@staticmethod
def f(arg):
...

descriptor -- __get__(), __set__() __delete__()


a.b
a b b
Python

descriptors
dictionary -- __hash__()
__eq__() Perl hash
dictionary comprehension --
results = {n: n ** 2 for n in range(10)} n n **
2 comprehensions

15
Distributing Python Modules, 3.9.13

dictionary view -- dict.keys(), dict.values() dict.items()

list(dictview) dict-views
docstring --
__doc__

duck-typing --

type() isinstance() ( )
hasattr() EAFP
EAFP Python
try except
LBYL C
expression --

statement while

extension module -- C C++ Python C API

f-string -- f- 'f' 'F' f-


PEP 498
file object -- API read() write()

: ,
io open()
file-like object -- file object
finder -- loader
Python 3.3 : sys.meta_path path entry
finders sys.path_hooks
PEP 302, PEP 420 PEP 451
floor division -- //
11 // 4 2 2.75 (-11)
// 4 -3 -2.75 PEP 238
function --
parameter, method function
function annotation -- annotation
int int :

def sum_two_numbers(a: int, b: int) -> int:


return a + b

function
variable annotation PEP 484
__future__ future , from __future__ import <feature> Python
__future__ feature

16 Appendix A.
Distributing Python Modules, 3.9.13

>>> import __future__


>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)

garbage collection -- Python


gc
generator -- generator iterator yield
for- next()

generator iterator -- generator


yield try

generator expression --
for if
:

>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81


285

generic function --

single dispatch functools.singledispatch() PEP 443


generic type -- A type that can be parameterized; typically a container class such as list or dict.
Used for type hints and annotations.
For more details, see generic alias types, PEP 483, PEP 484, PEP 585, and the typing module.
GIL global interpreter lock
global interpreter lock -- CPython
Python bytecode dict
CPython

GIL I/O GIL

hash-based pyc -- pyc


pyc-invalidation
hashable --
__hash__() __eq__()

Python
frozenset

id()

17
Distributing Python Modules, 3.9.13

IDLE Python IDE Python

immutable --

import path -- path based finder


sys.path
__path__
importing -- Python Python
importer -- finder loader
interactive -- Python
python
help(x)
interpreted -- Python

/
interactive
interpreter shutdown -- Python

__main__
iterable -- ( list,
str tuple) dict, __iter__()
__getitem__()
for zip() map() ...
iter()
iter()
for
iterator sequence generator
iterator -- __next__()
next() StopIteration
__next__() StopIteration
__iter__()

list iter() for

typeiter
key function --
locale.strxfrm()
Python min(), max(),
sorted(), list.sort(), heapq.merge(), heapq.nsmallest(), heapq.nlargest()
itertools.groupby()
str.lower()
lambda lambda r: (r[0], r[2]) operator
attrgetter() itemgetter() methodcaller()

keyword argument -- argument

18 Appendix A.
Distributing Python Modules, 3.9.13

lambda expression lambda


lambda [parameters]: expression
LBYL
EAFP if
LBYL
if key in mapping: return mapping[key] mapping
key EAFP
list -- Python sequence
O(1)
list comprehension --
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]
0 255 0x.. if
range(256)
loader -- load_module()
finder PEP 302 abstract base class importlib.abc.Loader
magic method -- special method
mapping -- Mapping MutableMapping
dict, collections.defaultdict, collections.
OrderedDict collections.Counter
meta path finder -- sys.meta_path finder path entry
finders
importlib.abc.MetaPathFinder
metaclass --
Python

metaclasses
method --
argument ( self) function nested scope
method resolution order --
Python 2.3 2.3 Python
module -- Python Python
importing Python
package
module spec -- importlib.
machinery.ModuleSpec
MRO method resolution order
mutable -- id() immutable
named tuple --

time.localtime() os.stat()
sys.float_info:
>>> sys.float_info[1] # indexed access
1024
>>> sys.float_info.max_exp # named field access
1024
( )

19
Distributing Python Modules, 3.9.13

( )
>>> isinstance(sys.float_info, tuple) # kind of tuple
True

tuple
collections.
namedtuple()
namespace --
builtins.open
os.open()
random.seed() itertools.islice()
random itertools
namespace package -- PEP 420 package
regular package __init__.py
module
nested scope --

nonlocal

new-style class -- Python


Python __slots__
__getattribute__()
object -- object new-style class

package -- Python module __path__


Python
regular package namespace package
parameter -- function argument

• positional-or-keyword
foo bar:

def func(foo, bar=None): ...

• positional-only
/ posonly1 posonly2:

def func(posonly1, posonly2, /, positional_or_keyword): ...

• keyword-only
*
kw_only1 kw_only2:

def func(arg, *, kw_only1, kw_only2): ...

• var-positional
* args:

def func(*args, **kwargs): ...

• var-keyword
** kwargs

20 Appendix A.
Distributing Python Modules, 3.9.13

argument inspect.Parameter function


PEP 362
path entry -- import path path based finder
path entry finder -- sys.path_hooks ( path entry hook)
finder path entry
importlib.abc.PathEntryFinder
path entry hook -- path entry
sys.path_hook path entry finder
path based finder -- import path
path-like object -- str
bytes os.PathLike os.PathLike
os.fspath() str bytes os.
fsdecode() os.fsencode() str bytes
PEP 519
PEP Python PEP Python
Python PEP

PEP Python
PEP
PEP 1
portion -- zip
PEP 420
positional argument -- argument
provisional API -- API API

-- API

API

PEP
411
provisional package -- provisional API
Python 3000 Python 3.x 3
Py3k
Pythonic Python
Python for
Python
:

for i in range(len(food)):
print(food[i])

Pythonic :

for piece in food:


print(piece)

qualified name --
PEP 3155
:

21
Distributing Python Modules, 3.9.13

>>> class C:
... class D:
... def meth(self):
... pass
...
>>> C.__qualname__
'C'
>>> C.D.__qualname__
'C.D'
>>> C.D.meth.__qualname__
'C.D.meth'

email.mime.text:

>>> import email.mime.text


>>> email.mime.text.__name__
'email.mime.text'

reference count --
Python CPython sys
getrefcount()
regular package -- package __init__.py
namespace package
__slots__

sequence -- iterable __getitem__()


__len__() list str tuple
bytes dict __getitem__() __len__()
immutable
collections.abc.Sequence __getitem__()
__len__() count(), index(), __contains__() __reversed__()
register()
set comprehension --
results = {c for c in 'abracadabra' if c not in 'abc'}
{'r', 'd'} comprehensions
single dispatch -- generic function
slice -- sequence []
variable_name[1:3:5]
slice
special method -- Python
specialnames
statement -- expression
if while for
text encoding -- A string in Python is a sequence of Unicode code points (in range U+0000--
U+10FFFF). To store or transfer a string, it needs to be serialized as a sequence of bytes.
Serializing a string into a sequence of bytes is known as ”encoding”, and recreating the string from the sequence
of bytes is known as ”decoding”.
There are a variety of different text serialization codecs, which are collectively referred to as ”text encodings”.

22 Appendix A.
Distributing Python Modules, 3.9.13

text file -- str file object


text encoding 'r' 'w'
sys.stdin sys.stdout io.StringIO
binary file
triple-quoted string -- ” ’

type -- Python
__class__ type(obj)
type alias --
:

def remove_gray_shades(
colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:
pass

Color = tuple[int, int, int]

def remove_gray_shades(colors: list[Color]) -> list[Color]:


pass

typing PEP 484


type hint -- annotation
Python IDE

typing.get_type_hints()

typing PEP 484


universal newlines -- Unix
'\n' Windows '\r\n' Macintosh '\r' PEP 278 PEP
3116 bytes.splitlines()
variable annotation -- annotation
:

class C:
field: 'annotation'

int :

count: int = 0

annassign
function annotation PEP 484 PEP 526
virtual environment -- Python
Python Python
venv
virtual machine -- Python
bytecode

23
Distributing Python Modules, 3.9.13

Zen of Python -- Python Python


”import this”

24 Appendix A.
APPENDIX B

reStructuredText Sphinx Python


Python
reporting-bugs

• Fred L. Drake, Jr. Python


• Docutils reStructuredText Docutils
• Fredrik Lundh for his Alternative Python Reference project from which Sphinx got many good ideas.

B.1 Python

Python Python Python Python Misc/ACKS

Python Python -

25
Distributing Python Modules, 3.9.13

26 Appendix B.
APPENDIX C

C.1

Python CWI https://www.cwi.nl/ Guido van Rossum 1990


ABC Python Guido

1995 Guido CNRI https://www.cnri.reston.va.us/


Python
2000 Guido Python BeOpen.com BeOpen PythonLabs
PythonLabs Digital Creations ( Zope Corporation https://www.zope.org/) 2001
Python (PSF https://www.python.org/psf/) Python
Zope Corporation PSF
Python https://opensource.org/ Python
GPL

GPL
0.9.0 1.2 n/a 1991-1995 CWI
1.3 1.5.2 1.2 1995-1999 CNRI
1.6 1.5.2 2000 CNRI
2.0 1.6 2000 BeOpen.com
1.6.1 1.6 2001 CNRI
2.1 2.0+1.6.1 2001 PSF
2.0.1 2.0+1.6.1 2001 PSF
2.1.1 2.1+2.0.1 2001 PSF
2.1.2 2.1.1 2002 PSF
2.1.3 2.1.2 2002 PSF
2.2 2.1.1 2001 PSF

: GPL Python GPL GPL Python


GPL Python GPL

27
Distributing Python Modules, 3.9.13

Guido

C.2 Python

Python PSF
Python 3.8.6 PSF BSD

Python

C.2.1 PYTHON 3.9.13 PSF

1. This LICENSE AGREEMENT is between the Python Software Foundation␣


,→("PSF"), and

the Individual or Organization ("Licensee") accessing and otherwise␣


,→using Python

3.9.13 software in source or binary form and its associated␣


,→documentation.

2. Subject to the terms and conditions of this License Agreement, PSF␣


,→hereby

grants Licensee a nonexclusive, royalty-free, world-wide license to␣


,→reproduce,

analyze, test, perform and/or display publicly, prepare derivative␣


,→works,

distribute, and otherwise use Python 3.9.13 alone or in any derivative


version, provided, however, that PSF's License Agreement and PSF's␣
,→notice of

copyright, i.e., "Copyright © 2001-2022 Python Software Foundation; All␣


,→Rights

Reserved" are retained in Python 3.9.13 alone or in any derivative␣


,→version

prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on or


incorporates Python 3.9.13 or any part thereof, and wants to make the
derivative work available to others as provided herein, then Licensee␣
,→hereby

agrees to include in any such work a brief summary of the changes made␣
,→to Python

3.9.13.

4. PSF is making Python 3.9.13 available to Licensee on an "AS IS" basis.


PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY␣
,→OF

EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY␣


,→REPRESENTATION OR

WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR␣


,→THAT THE

USE OF PYTHON 3.9.13 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.9.13
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A␣
,→RESULT OF

28 Appendix C.
Distributing Python Modules, 3.9.13

MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.9.13, OR ANY␣


,→DERIVATIVE
THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material␣


,→breach of

its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any␣


,→relationship

of agency, partnership, or joint venture between PSF and Licensee. ␣


,→This License

Agreement does not grant permission to use PSF trademarks or trade name␣
,→in a

trademark sense to endorse or promote products or services of Licensee,␣


,→or any

third party.

8. By copying, installing or otherwise using Python 3.9.13, Licensee agrees


to be bound by the terms and conditions of this License Agreement.

C.2.2 PYTHON 2.0 BEOPEN.COM

BEOPEN PYTHON 1

1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at


160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization
("Licensee") accessing and otherwise using this software in source or binary
form and its associated documentation ("the Software").

2. Subject to the terms and conditions of this BeOpen Python License Agreement,
BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license
to reproduce, analyze, test, perform and/or display publicly, prepare derivative
works, distribute, and otherwise use the Software alone or in any derivative
version, provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.

3. BeOpen is making the Software available to Licensee on an "AS IS" basis.


BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF
EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.

4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR
ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING,
MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF
ADVISED OF THE POSSIBILITY THEREOF.

5. This License Agreement will automatically terminate upon a material breach of


its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all respects


by the law of the State of California, excluding conflict of law provisions.
Nothing in this License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between BeOpen and Licensee. This License
Agreement does not grant permission to use BeOpen trademarks or trade names in a
trademark sense to endorse or promote products or services of Licensee, or any
third party. As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the permissions
( )

C.2. Python 29
Distributing Python Modules, 3.9.13

( )
granted on that web page.

7. By copying, installing or otherwise using the software, Licensee agrees to be


bound by the terms and conditions of this License Agreement.

C.2.3 PYTHON 1.6.1 CNRI

1. This LICENSE AGREEMENT is between the Corporation for National Research


Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191
("CNRI"), and the Individual or Organization ("Licensee") accessing and
otherwise using Python 1.6.1 software in source or binary form and its
associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python 1.6.1 alone or in any derivative version,
provided, however, that CNRI's License Agreement and CNRI's notice of copyright,
i.e., "Copyright © 1995-2001 Corporation for National Research Initiatives; All
Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version
prepared by Licensee. Alternately, in lieu of CNRI's License Agreement,
Licensee may substitute the following text (omitting the quotes): "Python 1.6.1
is made available subject to the terms and conditions in CNRI's License
Agreement. This Agreement together with Python 1.6.1 may be located on the
Internet using the following unique, persistent identifier (known as a handle):
1895.22/1013. This Agreement may also be obtained from a proxy server on the
Internet using the following URL: http://hdl.handle.net/1895.22/1013."

3. In the event Licensee prepares a derivative work that is based on or


incorporates Python 1.6.1 or any part thereof, and wants to make the derivative
work available to others as provided herein, then Licensee hereby agrees to
include in any such work a brief summary of the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI
MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY
OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF
PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR
ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE
THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material breach of


its terms and conditions.

7. This License Agreement shall be governed by the federal intellectual property


law of the United States, including without limitation the federal copyright
law, and, to the extent such U.S. federal law does not apply, by the law of the
Commonwealth of Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based on Python
1.6.1 that incorporate non-separable material that was previously distributed
under the GNU General Public License (GPL), the law of the Commonwealth of
Virginia shall govern this License Agreement only as to issues arising under or
with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in
this License Agreement shall be deemed to create any relationship of agency,
partnership, or joint venture between CNRI and Licensee. This License Agreement
does not grant permission to use CNRI trademarks or trade name in a trademark
( )

30 Appendix C.
Distributing Python Modules, 3.9.13

( )
sense to endorse or promote products or services of Licensee, or any third
party.

8. By clicking on the "ACCEPT" button where indicated, or by copying, installing


or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and
conditions of this License Agreement.

C.2.4 PYTHON 0.9.0 1.2 CWI

Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The


Netherlands. All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee 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, and that
the name of Stichting Mathematisch Centrum or CWI not be used in advertising or
publicity pertaining to distribution of the software without specific, written
prior permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS


SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
EVENT SHALL STICHTING MATHEMATISCH CENTRUM 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.

C.2.5 ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON 3.9.13 DOCU-
MENTATION

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR 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, DIRECT,
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.

C.3

Python

C.3. 31
Distributing Python Modules, 3.9.13

C.3.1 Mersenne Twister

_random http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html

A C-program for MT19937, with initialization improved 2002/1/26.


Coded by Takuji Nishimura and Makoto Matsumoto.

Before using, initialize the state by using init_genrand(seed)


or init_by_array(init_key, key_length).

Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,


All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright


notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright


notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

3. The names of its contributors may not be used to endorse or promote


products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS


"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Any feedback is very welcome.


http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)

C.3.2

socket getaddrinfo() getnameinfo() WIDE http:


//www.wide.ad.jp/

Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.


All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
( )

32 Appendix C.
Distributing Python Modules, 3.9.13

( )
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

C.3.3

asynchat asyncore :

Copyright 1996 by Sam Rushing

All Rights Reserved

Permission to use, copy, modify, and distribute this software and


its documentation for any purpose and without fee 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, and that the name of Sam
Rushing not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,


INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
NO EVENT SHALL SAM RUSHING 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.

C.3.4 Cookie

http.cookies :

Copyright 2000 by Timothy O'Malley <timo@alum.mit.edu>

All Rights Reserved

Permission to use, copy, modify, and distribute this software


and its documentation for any purpose and without fee 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, and that the name of
Timothy O'Malley not be used in advertising or publicity
( )

C.3. 33
Distributing Python Modules, 3.9.13

( )
pertaining to distribution of the software without specific, written
prior permission.

Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS


SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS, IN NO EVENT SHALL Timothy O'Malley 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.

C.3.5

trace :

portions copyright 2001, Autonomous Zones Industries, Inc., all rights...


err... reserved and offered to the public under the terms of the
Python 2.2 license.
Author: Zooko O'Whielacronx
http://zooko.com/
mailto:zooko@zooko.com

Copyright 2000, Mojam Media, Inc., all rights reserved.


Author: Skip Montanaro

Copyright 1999, Bioreason, Inc., all rights reserved.


Author: Andrew Dalke

Copyright 1995-1997, Automatrix, Inc., all rights reserved.


Author: Skip Montanaro

Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved.

Permission to use, copy, modify, and distribute this Python software and
its associated documentation for any purpose 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 neither Automatrix,
Bioreason or Mojam Media be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.

C.3.6 UUencode UUdecode

uu :

Copyright 1994 by Lance Ellinghouse


Cathedral City, California Republic, United States of America.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee 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, and that the name of Lance Ellinghouse
not be used in advertising or publicity pertaining to distribution
of the software without specific, written prior permission.
( )

34 Appendix C.
Distributing Python Modules, 3.9.13

( )
LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE CENTRUM 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.

Modified by Jack Jansen, CWI, July 1995:


- Use binascii module to do the actual line-by-line conversion
between ascii and binary. This results in a 1000-fold speedup. The C
version is still 5 times faster, though.
- Arguments more compliant with Python standard

C.3.7 XML

xmlrpc.client :

The XML-RPC client interface is

Copyright (c) 1999-2002 by Secret Labs AB


Copyright (c) 1999-2002 by Fredrik Lundh

By obtaining, using, and/or copying this software and/or its


associated documentation, you agree that you have read, understood,
and will comply with the following terms and conditions:

Permission to use, copy, modify, and distribute this software and


its associated documentation for any purpose and 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
Secret Labs AB or the author not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission.

SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR 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.

C.3.8 test_epoll

test_epoll :

Copyright (c) 2001-2006 Twisted Matrix Laboratories.

Permission is hereby granted, free of charge, to any person obtaining


a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
( )

C.3. 35
Distributing Python Modules, 3.9.13

( )
the following conditions:

The above copyright notice and this permission notice shall be


included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

C.3.9 Select kqueue

select kqueue :

Copyright (c) 2000 Doug White, 2006 James Knight, 2007 Christian Heimes
All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

C.3.10 SipHash24

Python/pyhash.c Marek Majkowski’ Dan Bernstein SipHash24


:

<MIT License>
Copyright (c) 2013 Marek Majkowski <marek@popcount.org>

Permission is hereby granted, free of charge, to any person obtaining a copy


of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
( )

36 Appendix C.
Distributing Python Modules, 3.9.13

( )
all copies or substantial portions of the Software.
</MIT License>

Original location:
https://github.com/majek/csiphash/

Solution inspired by code from:


Samuel Neves (supercop/crypto_auth/siphash24/little)
djb (supercop/crypto_auth/siphash24/little2)
Jean-Philippe Aumasson (https://131002.net/siphash/siphash24.c)

C.3.11 strtod dtoa

Python/dtoa.c C dtoa strtod C


David M. Gay http://www.netlib.org/fp/ 2009 3 16
:

/****************************************************************
*
* The author of this software is David M. Gay.
*
* Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose without fee is hereby granted, provided that this entire notice
* is included in all copies of any software which is or includes a copy
* or modification of this software and in all copies of the supporting
* documentation for such software.
*
* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
*
***************************************************************/

C.3.12 OpenSSL

The modules hashlib, posix, ssl, crypt use the OpenSSL library for added performance if made available
by the operating system. Additionally, the Windows and macOS installers for Python may include a copy of the
OpenSSL libraries, so we include a copy of the OpenSSL license here:

LICENSE ISSUES
==============

The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
the OpenSSL License and the original SSLeay license apply to the toolkit.
See below for the actual license texts. Actually both licenses are BSD-style
Open Source licenses. In case of any license issues related to OpenSSL
please contact openssl-core@openssl.org.

OpenSSL License
---------------

/* ====================================================================
* Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
*
( )

C.3. 37
Distributing Python Modules, 3.9.13

( )
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/

Original SSLeay License


-----------------------

/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)


* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
( )

38 Appendix C.
Distributing Python Modules, 3.9.13

( )
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/

C.3. 39
Distributing Python Modules, 3.9.13

C.3.13 expat

--with-system-expat pyexpat expat :

Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
and Clark Cooper

Permission is hereby granted, free of charge, to any person obtaining


a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

C.3.14 libffi

--with-system-libffi _ctypes libffi :

Copyright (c) 1996-2008 Red Hat, Inc and others.

Permission is hereby granted, free of charge, to any person obtaining


a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

40 Appendix C.
Distributing Python Modules, 3.9.13

C.3.15 zlib

zlib zlib zlib :

Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler

This software is provided 'as-is', without any express or implied


warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,


including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly Mark Adler


jloup@gzip.org madler@alumni.caltech.edu

C.3.16 cfuhash

tracemalloc cfuhash :

Copyright (c) 2005 Don Owens


All rights reserved.

This code is released under the BSD license:

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain the above copyright


notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above


copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.

* Neither the name of the author nor the names of its


contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS


"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
( )

C.3. 41
Distributing Python Modules, 3.9.13

( )
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

C.3.17 libmpdec

--with-system-libmpdec _decimal libmpdec

Copyright (c) 2008-2020 Stefan Krah. All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright


notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright


notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

C.3.18 W3C C14N

test C14N 2.0 (Lib/test/xmltestdata/c14n-20/) W3C https://www.


w3.org/TR/xml-c14n2-testcases/ 3 BSD :

Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang),


All Rights Reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:

* Redistributions of works must retain the original copyright notice,


this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the original copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the W3C nor the names of its contributors may be
used to endorse or promote products derived from this work without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS


( )

42 Appendix C.
Distributing Python Modules, 3.9.13

( )
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

C.3. 43
Distributing Python Modules, 3.9.13

44 Appendix C.
APPENDIX D

Python
Copyright © 2001-2022 Python Software Foundation. All rights reserved.
© 2000 BeOpen.com
© 1995-2000 Corporation for National Research Initiatives
© 1991-1995 Stichting Mathematisch Centrum

45
Distributing Python Modules, 3.9.13

46 Appendix D.
descriptor -- , 15
..., 13 dictionary -- , 15
2to3, 13 dictionary comprehension -- ,
>>>, 13 15
__future__, 16 dictionary view -- , 16
__slots__, 22 docstring -- , 16
duck-typing -- , 16
A
abstract base class -- , 13 E
annotation -- , 13 EAFP, 16
argument -- , 13 expression -- , 16
asynchronous context manager -- extension module -- , 16
, 14
asynchronous generator -- , 14 F
asynchronous generator iterator -- f-string -- f- , 16
, 14 file object -- , 16
asynchronous iterable -- file-like object -- , 16
, 14 finder -- , 16
asynchronous iterator -- , 14 floor division -- , 16
attribute -- , 14 Fortran contiguous, 15
awaitable -- , 14 function -- , 16
function annotation -- , 16
B
BDFL, 14 G
binary file -- , 14 garbage collection -- , 17
bytecode -- , 14 generator, 17
bytes-like object -- , 14 generator -- , 17
generator expression, 17
C generator expression -- , 17
callback -- , 14 generator iterator -- , 17
C-contiguous, 15 generic function -- , 17
class -- , 14 generic type -- , 17
class variable -- , 14 GIL, 17
coercion -- , 15 global interpreter lock --
complex number -- , 15 , 17
context manager -- , 15
context variable -- , 15 H
contiguous -- , 15
hash-based pyc -- pyc, 17
coroutine -- , 15
hashable -- , 17
coroutine function -- , 15
CPython, 15
I
D IDLE, 18
decorator -- , 15 immutable -- , 18

47
Distributing Python Modules, 3.9.13

import path -- , 18 portion -- , 21


importer -- , 18 positional argument -- , 21
importing -- , 18 provisional API -- API, 21
interactive -- , 18 provisional package -- , 21
interpreted -- , 18 PyPI
interpreter shutdown -- , 18 (see Python Package Index (PyPI)),
iterable -- , 18 7
iterator -- , 18 Python 3000, 21
Python Package Index (PyPI), 7
K Python
key function -- , 18 PEP 1, 21
keyword argument -- , 18 PEP 238, 16
PEP 278, 23
L PEP 302, 16, 19
lambda, 19 PEP 343, 15
LBYL, 19 PEP 362, 14, 21
list -- , 19 PEP 411, 21
list comprehension -- , 19 PEP 420, 16, 20, 21
loader -- , 19 PEP 427, 3
PEP 443, 17
M PEP 451, 16
PEP 483, 17
magic
PEP 484, 13, 16, 17, 23
method, 19
PEP 492, 14, 15
magic method -- , 19
PEP 498, 16
mapping -- , 19
PEP 519, 21
meta path finder -- , 19
PEP 525, 14
metaclass -- , 19
PEP 526, 13, 23
method
PEP 585, 17
magic, 19
PEP 3116, 23
special, 22
PEP 3155, 21
method -- , 19
Pythonic, 21
method resolution order --
, 19
module -- , 19
Q
module spec -- , 19 qualified name -- , 21
MRO, 19
mutable -- , 19 R
reference count -- , 22
N regular package -- , 22
named tuple -- , 19
namespace -- , 20 S
namespace package -- , 20 sequence -- , 22
nested scope -- , 20 set comprehension -- , 22
new-style class -- , 20 single dispatch -- , 22
slice -- , 22
O special
object -- , 20 method, 22
special method -- , 22
P statement -- , 22
package -- , 20
parameter -- , 20
T
path based finder -- , 21 text encoding -- , 22
path entry -- , 21 text file -- , 23
path entry finder -- , 21 triple-quoted string -- , 23
path entry hook -- , 21 type -- , 23
path-like object -- , 21 type alias -- , 23
PEP, 21 type hint -- , 23

48
Distributing Python Modules, 3.9.13

U
universal newlines -- , 23

V
variable annotation -- , 23
virtual environment -- , 23
virtual machine -- , 23

Z
Zen of Python -- Python , 24

49

You might also like