diff --git a/MANIFEST.in b/MANIFEST.in index a86c1c7..0497df0 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -8,6 +8,7 @@ include mypy.ini include .mailmap include .flake8 include .pre-commit-config.yaml +include long_description.rst recursive-exclude tools * exclude tools diff --git a/long_description.rst b/long_description.rst new file mode 100644 index 0000000..f411b45 --- /dev/null +++ b/long_description.rst @@ -0,0 +1,37 @@ +IPython provides a rich toolkit to help you make the most out of using Python +interactively. Its main components are: + +* A powerful interactive Python shell +* A `Jupyter `_ kernel to work with Python code in Jupyter +notebooks and other interactive frontends. + +The enhanced interactive Python shells have the following main features: + +* Comprehensive object introspection. + +* Input history, persistent across sessions. + +* Caching of output results during a session with automatically generated +references. + +* Extensible tab completion, with support by default for completion of python +variables and keywords, filenames and function keywords. + +* Extensible system of 'magic' commands for controlling the environment and +performing many tasks related either to IPython or the operating system. + +* A rich configuration system with easy switching between different setups +(simpler than changing $PYTHONSTARTUP environment variables every time). + +* Session logging and reloading. + +* Extensible syntax processing for special purpose situations. + +* Access to the system shell with user-extensible alias system. + +* Easily embeddable in other Python programs and GUIs. + +* Integrated access to the pdb debugger and the Python profiler. + +The latest development version is always available from IPython's `GitHub +site `_. diff --git a/setup.cfg b/setup.cfg index d6269ab..61fa022 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,44 +4,7 @@ version = attr: IPython.core.release.__version__ url = https://ipython.org description = IPython: Productive Interactive Computing long_description_content_type = text/x-rst -long_description = IPython provides a rich toolkit to help you make the most out of using Python - interactively. Its main components are: - - * A powerful interactive Python shell - * A `Jupyter `_ kernel to work with Python code in Jupyter - notebooks and other interactive frontends. - - The enhanced interactive Python shells have the following main features: - - * Comprehensive object introspection. - - * Input history, persistent across sessions. - - * Caching of output results during a session with automatically generated - references. - - * Extensible tab completion, with support by default for completion of python - variables and keywords, filenames and function keywords. - - * Extensible system of 'magic' commands for controlling the environment and - performing many tasks related either to IPython or the operating system. - - * A rich configuration system with easy switching between different setups - (simpler than changing $PYTHONSTARTUP environment variables every time). - - * Session logging and reloading. - - * Extensible syntax processing for special purpose situations. - - * Access to the system shell with user-extensible alias system. - - * Easily embeddable in other Python programs and GUIs. - - * Integrated access to the pdb debugger and the Python profiler. - - The latest development version is always available from IPython's `GitHub - site `_. - +long_description = file: long_description.rst license_file = LICENSE project_urls = Documentation = https://ipython.readthedocs.io/ diff --git a/tools/build_release b/tools/build_release index 970a5a0..651aec7 100755 --- a/tools/build_release +++ b/tools/build_release @@ -16,8 +16,8 @@ def build_release(): # Build source and binary distros sh(sdists) buildwheels() + # don't try to change, xz, bz2 deprecated. sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.gz'])) - sh(' '.join([sys.executable, 'tools/retar.py', 'dist/*.xz'])) if __name__ == '__main__': build_release() diff --git a/tools/release b/tools/release index 2ba4d24..385668d 100755 --- a/tools/release +++ b/tools/release @@ -71,7 +71,7 @@ if 'upload' in sys.argv: print('3. Uploading to PyPI using twine') cd(distdir) - call(['twine', 'upload'] + to_upload) + call(['twine', 'upload', '--verbose'] + to_upload) else: # Build, but don't upload diff --git a/tools/retar.py b/tools/retar.py index dbc4f0b..ccf1a13 100644 --- a/tools/retar.py +++ b/tools/retar.py @@ -37,8 +37,10 @@ with open(path, "rb") as f: old_buf.seek(0) if path.name.endswith("gz"): r_mode = "r:gz" -if path.name.endswith(("xz", "xz2")): - r_mode = "r:xz" +if path.name.endswith("bz2"): + r_mode = "r:bz2" +if path.name.endswith("xz"): + raise ValueError("XZ is deprecated but it's written nowhere") old = tarfile.open(fileobj=old_buf, mode=r_mode) buf = io.BytesIO() @@ -69,10 +71,10 @@ if r_mode == "r:gz": with open(path, "wb") as f: with gzip.GzipFile("", "wb", fileobj=f, mtime=timestamp) as gzf: gzf.write(buf.read()) -elif r_mode == "r:xz": - import lzma +elif r_mode == "r:bz2": + import bz2 - with lzma.open(path, "wb") as f: + with bz2.open(path, "wb") as f: f.write(buf.read()) else: diff --git a/tools/toollib.py b/tools/toollib.py index ce37644..b1498f9 100644 --- a/tools/toollib.py +++ b/tools/toollib.py @@ -18,7 +18,7 @@ archive = '%s:%s' % (archive_user, archive_dir) # Build commands # Source dists -sdists = "{python} setup.py sdist --formats=xztar,gztar".format(python=sys.executable) +sdists = "{python} setup.py sdist --formats=gztar".format(python=sys.executable) # Binary dists def buildwheels(): sh("{python} setup.py bdist_wheel".format(python=sys.executable))