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 | include .mailmap |
|
8 | include .mailmap | |
9 | include .flake8 |
|
9 | include .flake8 | |
10 | include .pre-commit-config.yaml |
|
10 | include .pre-commit-config.yaml | |
|
11 | include long_description.rst | |||
11 |
|
12 | |||
12 | recursive-exclude tools * |
|
13 | recursive-exclude tools * | |
13 | exclude tools |
|
14 | exclude tools |
@@ -4,44 +4,7 b' version = attr: IPython.core.release.__version__' | |||||
4 | url = https://ipython.org |
|
4 | url = https://ipython.org | |
5 | description = IPython: Productive Interactive Computing |
|
5 | description = IPython: Productive Interactive Computing | |
6 | long_description_content_type = text/x-rst |
|
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 |
|
7 | long_description = file: long_description.rst | |
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 |
|
||||
45 | license_file = LICENSE |
|
8 | license_file = LICENSE | |
46 | project_urls = |
|
9 | project_urls = | |
47 | Documentation = https://ipython.readthedocs.io/ |
|
10 | Documentation = https://ipython.readthedocs.io/ |
@@ -16,8 +16,8 b' def build_release():' | |||||
16 | # Build source and binary distros |
|
16 | # Build source and binary distros | |
17 | sh(sdists) |
|
17 | sh(sdists) | |
18 | buildwheels() |
|
18 | buildwheels() | |
|
19 | # don't try to change, xz, bz2 deprecated. | |||
19 | sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.gz'])) |
|
20 | sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.gz'])) | |
20 | sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.xz'])) |
|
|||
21 |
|
21 | |||
22 | if __name__ == '__main__': |
|
22 | if __name__ == '__main__': | |
23 | build_release() |
|
23 | build_release() |
@@ -71,7 +71,7 b" if 'upload' in sys.argv:" | |||||
71 |
|
71 | |||
72 | print('3. Uploading to PyPI using twine') |
|
72 | print('3. Uploading to PyPI using twine') | |
73 | cd(distdir) |
|
73 | cd(distdir) | |
74 | call(['twine', 'upload'] + to_upload) |
|
74 | call(['twine', 'upload', '--verbose'] + to_upload) | |
75 |
|
75 | |||
76 | else: |
|
76 | else: | |
77 | # Build, but don't upload |
|
77 | # Build, but don't upload |
@@ -37,8 +37,10 b' with open(path, "rb") as f:' | |||||
37 | old_buf.seek(0) |
|
37 | old_buf.seek(0) | |
38 | if path.name.endswith("gz"): |
|
38 | if path.name.endswith("gz"): | |
39 | r_mode = "r:gz" |
|
39 | r_mode = "r:gz" | |
40 |
if path.name.endswith( |
|
40 | if path.name.endswith("bz2"): | |
41 |
r_mode = "r: |
|
41 | r_mode = "r:bz2" | |
|
42 | if path.name.endswith("xz"): | |||
|
43 | raise ValueError("XZ is deprecated but it's written nowhere") | |||
42 | old = tarfile.open(fileobj=old_buf, mode=r_mode) |
|
44 | old = tarfile.open(fileobj=old_buf, mode=r_mode) | |
43 |
|
45 | |||
44 | buf = io.BytesIO() |
|
46 | buf = io.BytesIO() | |
@@ -69,10 +71,10 b' if r_mode == "r:gz":' | |||||
69 | with open(path, "wb") as f: |
|
71 | with open(path, "wb") as f: | |
70 | with gzip.GzipFile("", "wb", fileobj=f, mtime=timestamp) as gzf: |
|
72 | with gzip.GzipFile("", "wb", fileobj=f, mtime=timestamp) as gzf: | |
71 | gzf.write(buf.read()) |
|
73 | gzf.write(buf.read()) | |
72 |
elif r_mode == "r: |
|
74 | elif r_mode == "r:bz2": | |
73 |
import |
|
75 | import bz2 | |
74 |
|
76 | |||
75 |
with |
|
77 | with bz2.open(path, "wb") as f: | |
76 | f.write(buf.read()) |
|
78 | f.write(buf.read()) | |
77 |
|
79 | |||
78 | else: |
|
80 | else: |
@@ -18,7 +18,7 b" archive = '%s:%s' % (archive_user, archive_dir)" | |||||
18 |
|
18 | |||
19 | # Build commands |
|
19 | # Build commands | |
20 | # Source dists |
|
20 | # Source dists | |
21 |
sdists = "{python} setup.py sdist --formats= |
|
21 | sdists = "{python} setup.py sdist --formats=gztar".format(python=sys.executable) | |
22 | # Binary dists |
|
22 | # Binary dists | |
23 | def buildwheels(): |
|
23 | def buildwheels(): | |
24 | sh("{python} setup.py bdist_wheel".format(python=sys.executable)) |
|
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