Show More
@@ -0,0 +1,37 b'' | |||
|
1 | IPython provides a rich toolkit to help you make the most out of using Python | |
|
2 | interactively. Its main components are: | |
|
3 | ||
|
4 | * A powerful interactive Python shell | |
|
5 | * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter | |
|
6 | notebooks and other interactive frontends. | |
|
7 | ||
|
8 | The enhanced interactive Python shells have the following main features: | |
|
9 | ||
|
10 | * Comprehensive object introspection. | |
|
11 | ||
|
12 | * Input history, persistent across sessions. | |
|
13 | ||
|
14 | * Caching of output results during a session with automatically generated | |
|
15 | references. | |
|
16 | ||
|
17 | * Extensible tab completion, with support by default for completion of python | |
|
18 | variables and keywords, filenames and function keywords. | |
|
19 | ||
|
20 | * Extensible system of 'magic' commands for controlling the environment and | |
|
21 | performing many tasks related either to IPython or the operating system. | |
|
22 | ||
|
23 | * A rich configuration system with easy switching between different setups | |
|
24 | (simpler than changing $PYTHONSTARTUP environment variables every time). | |
|
25 | ||
|
26 | * Session logging and reloading. | |
|
27 | ||
|
28 | * Extensible syntax processing for special purpose situations. | |
|
29 | ||
|
30 | * Access to the system shell with user-extensible alias system. | |
|
31 | ||
|
32 | * Easily embeddable in other Python programs and GUIs. | |
|
33 | ||
|
34 | * Integrated access to the pdb debugger and the Python profiler. | |
|
35 | ||
|
36 | The latest development version is always available from IPython's `GitHub | |
|
37 | site <http://github.com/ipython>`_. |
@@ -8,6 +8,7 b' include mypy.ini' | |||
|
8 | 8 | include .mailmap |
|
9 | 9 | include .flake8 |
|
10 | 10 | include .pre-commit-config.yaml |
|
11 | include long_description.rst | |
|
11 | 12 | |
|
12 | 13 | recursive-exclude tools * |
|
13 | 14 | exclude tools |
@@ -4,44 +4,7 b' version = attr: IPython.core.release.__version__' | |||
|
4 | 4 | url = https://ipython.org |
|
5 | 5 | description = IPython: Productive Interactive Computing |
|
6 | 6 | long_description_content_type = text/x-rst |
|
7 | long_description = IPython provides a rich toolkit to help you make the most out of using Python | |
|
8 | interactively. Its main components are: | |
|
9 | ||
|
10 | * A powerful interactive Python shell | |
|
11 | * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter | |
|
12 | notebooks and other interactive frontends. | |
|
13 | ||
|
14 | The enhanced interactive Python shells have the following main features: | |
|
15 | ||
|
16 | * Comprehensive object introspection. | |
|
17 | ||
|
18 | * Input history, persistent across sessions. | |
|
19 | ||
|
20 | * Caching of output results during a session with automatically generated | |
|
21 | references. | |
|
22 | ||
|
23 | * Extensible tab completion, with support by default for completion of python | |
|
24 | variables and keywords, filenames and function keywords. | |
|
25 | ||
|
26 | * Extensible system of 'magic' commands for controlling the environment and | |
|
27 | performing many tasks related either to IPython or the operating system. | |
|
28 | ||
|
29 | * A rich configuration system with easy switching between different setups | |
|
30 | (simpler than changing $PYTHONSTARTUP environment variables every time). | |
|
31 | ||
|
32 | * Session logging and reloading. | |
|
33 | ||
|
34 | * Extensible syntax processing for special purpose situations. | |
|
35 | ||
|
36 | * Access to the system shell with user-extensible alias system. | |
|
37 | ||
|
38 | * Easily embeddable in other Python programs and GUIs. | |
|
39 | ||
|
40 | * Integrated access to the pdb debugger and the Python profiler. | |
|
41 | ||
|
42 | The latest development version is always available from IPython's `GitHub | |
|
43 | site <http://github.com/ipython>`_. | |
|
44 | ||
|
7 | long_description = file: long_description.rst | |
|
45 | 8 | license_file = LICENSE |
|
46 | 9 | project_urls = |
|
47 | 10 | Documentation = https://ipython.readthedocs.io/ |
@@ -16,8 +16,8 b' def build_release():' | |||
|
16 | 16 | # Build source and binary distros |
|
17 | 17 | sh(sdists) |
|
18 | 18 | buildwheels() |
|
19 | # don't try to change, xz, bz2 deprecated. | |
|
19 | 20 | sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.gz'])) |
|
20 | sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.xz'])) | |
|
21 | 21 | |
|
22 | 22 | if __name__ == '__main__': |
|
23 | 23 | build_release() |
@@ -71,7 +71,7 b" if 'upload' in sys.argv:" | |||
|
71 | 71 | |
|
72 | 72 | print('3. Uploading to PyPI using twine') |
|
73 | 73 | cd(distdir) |
|
74 | call(['twine', 'upload'] + to_upload) | |
|
74 | call(['twine', 'upload', '--verbose'] + to_upload) | |
|
75 | 75 | |
|
76 | 76 | else: |
|
77 | 77 | # Build, but don't upload |
@@ -37,8 +37,10 b' with open(path, "rb") as f:' | |||
|
37 | 37 | old_buf.seek(0) |
|
38 | 38 | if path.name.endswith("gz"): |
|
39 | 39 | r_mode = "r:gz" |
|
40 |
if path.name.endswith( |
|
|
41 |
r_mode = "r: |
|
|
40 | if path.name.endswith("bz2"): | |
|
41 | r_mode = "r:bz2" | |
|
42 | if path.name.endswith("xz"): | |
|
43 | raise ValueError("XZ is deprecated but it's written nowhere") | |
|
42 | 44 | old = tarfile.open(fileobj=old_buf, mode=r_mode) |
|
43 | 45 | |
|
44 | 46 | buf = io.BytesIO() |
@@ -69,10 +71,10 b' if r_mode == "r:gz":' | |||
|
69 | 71 | with open(path, "wb") as f: |
|
70 | 72 | with gzip.GzipFile("", "wb", fileobj=f, mtime=timestamp) as gzf: |
|
71 | 73 | gzf.write(buf.read()) |
|
72 |
elif r_mode == "r: |
|
|
73 |
import |
|
|
74 | elif r_mode == "r:bz2": | |
|
75 | import bz2 | |
|
74 | 76 | |
|
75 |
with |
|
|
77 | with bz2.open(path, "wb") as f: | |
|
76 | 78 | f.write(buf.read()) |
|
77 | 79 | |
|
78 | 80 | else: |
@@ -18,7 +18,7 b" archive = '%s:%s' % (archive_user, archive_dir)" | |||
|
18 | 18 | |
|
19 | 19 | # Build commands |
|
20 | 20 | # Source dists |
|
21 |
sdists = "{python} setup.py sdist --formats= |
|
|
21 | sdists = "{python} setup.py sdist --formats=gztar".format(python=sys.executable) | |
|
22 | 22 | # Binary dists |
|
23 | 23 | def buildwheels(): |
|
24 | 24 | sh("{python} setup.py bdist_wheel".format(python=sys.executable)) |
General Comments 0
You need to be logged in to leave comments.
Login now