Package: python-q Version: 2.6-1.2 Severity: normal Tags: patch pending
Dear maintainer, I've prepared an NMU for python-q (versioned as 2.7-0.1) and uploaded it to DELAYED/10. Please feel free to tell me if I should cancel it. Regards. diffstat for python-q-2.6 python-q-2.7 .gitignore | 36 -------------------------------- .travis.yml | 11 --------- Makefile | 36 -------------------------------- PKG-INFO | 21 ++++++++++++++++++ README.md | 45 ++++++++++++++++++++++++++++------------ debian/changelog | 15 +++++++++++++ debian/compat | 1 debian/control | 15 +++++-------- debian/copyright | 2 - debian/rules | 2 - debian/watch | 6 ++--- q.egg-info/PKG-INFO | 21 ++++++++++++++++++ q.egg-info/SOURCES.txt | 10 ++++++++ q.egg-info/dependency_links.txt | 1 q.egg-info/top_level.txt | 1 q.py | 41 ++++++++++++++++++++++++++++++------ setup.cfg | 8 ++++++- setup.py | 29 +++++++++++++++++-------- 18 files changed, 173 insertions(+), 128 deletions(-) diff -Nru python-q-2.6/debian/changelog python-q-2.7/debian/changelog --- python-q-2.6/debian/changelog 2019-10-05 21:30:53.000000000 -0400 +++ python-q-2.7/debian/changelog 2026-01-25 19:11:58.000000000 -0500 @@ -1,3 +1,18 @@ +python-q (2.7-0.1) unstable; urgency=medium + + * Non-maintainer upload. + * New upstream release. + * debian/watch: Update to version 5 and monitor pypi release. + * debian/control: Bump Standards-Version to 4.7.3. + * debian/control: Update Vcs-* fields. + + [ Ondřej Nový ] + * d/control: Remove ancient X-Python-Version field + * d/control: Remove ancient X-Python3-Version field + * d/copyright: Use https protocol in Format field + + -- Boyuan Yang <[email protected]> Sun, 25 Jan 2026 19:11:58 -0500 + python-q (2.6-1.2) unstable; urgency=medium * Non-maintainer upload. diff -Nru python-q-2.6/debian/compat python-q-2.7/debian/compat --- python-q-2.6/debian/compat 2016-01-03 10:39:48.000000000 -0500 +++ python-q-2.7/debian/compat 1969-12-31 19:00:00.000000000 -0500 @@ -1 +0,0 @@ -9 diff -Nru python-q-2.6/debian/control python-q-2.7/debian/control --- python-q-2.6/debian/control 2019-10-05 21:30:31.000000000 -0400 +++ python-q-2.7/debian/control 2026-01-25 19:08:23.000000000 -0500 @@ -1,18 +1,15 @@ Source: python-q Maintainer: Federico Ceratto <[email protected]> Section: python -Priority: optional -Build-Depends: debhelper (>= 9~) -Build-Depends-Indep: - dh-python, +Build-Depends: + debhelper-compat (= 13), + dh-sequence-python3, python3-all, python3-setuptools, -Standards-Version: 3.9.6 -X-Python-Version: >= 2.7 -X-Python3-Version: >= 3.4 +Standards-Version: 4.7.3 Homepage: http://github.com/zestyping/q -Vcs-Git: git://anonscm.debian.org/collab-maint/python-q.git -Vcs-Browser: https://anonscm.debian.org/gitweb/?p=collab-maint/python-q.git +Vcs-Git: https://salsa.debian.org/debian/python-q.git +Vcs-Browser: https://salsa.debian.org/debian/python-q Package: python3-q Architecture: all diff -Nru python-q-2.6/debian/copyright python-q-2.7/debian/copyright --- python-q-2.6/debian/copyright 2016-01-03 10:39:48.000000000 -0500 +++ python-q-2.7/debian/copyright 2026-01-25 19:06:53.000000000 -0500 @@ -1,4 +1,4 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/zestyping/q Upstream-Name: q diff -Nru python-q-2.6/debian/rules python-q-2.7/debian/rules --- python-q-2.6/debian/rules 2019-10-05 21:30:52.000000000 -0400 +++ python-q-2.7/debian/rules 2026-01-25 19:08:36.000000000 -0500 @@ -3,7 +3,7 @@ export DH_VERBOSE=1 export PYBUILD_NAME=q %: - dh $@ --with python3 --buildsystem=pybuild + dh $@ --buildsystem=pybuild override_dh_auto_test: ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) diff -Nru python-q-2.6/debian/watch python-q-2.7/debian/watch --- python-q-2.6/debian/watch 2016-01-03 10:39:48.000000000 -0500 +++ python-q-2.7/debian/watch 2026-01-25 19:09:45.000000000 -0500 @@ -1,4 +1,4 @@ -version=3 +Version: 5 -opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/python-q-$1\.tar\.gz/ \ - https://github.com/zestyping/q/tags .*/v?(\d\S*)\.tar\.gz +Template: Pypi +Dist: q diff -Nru python-q-2.6/.gitignore python-q-2.7/.gitignore --- python-q-2.6/.gitignore 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/.gitignore 1969-12-31 19:00:00.000000000 -0500 @@ -1,36 +0,0 @@ -*.py[cod] - -# C extensions -*.so - -# Packages -*.egg -*.egg-info -dist -build -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg -lib -lib64 -MANIFEST - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox -nosetests.xml - -# Translations -*.mo - -# Mr Developer -.mr.developer.cfg -.project -.pydevproject diff -Nru python-q-2.6/Makefile python-q-2.7/Makefile --- python-q-2.6/Makefile 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/Makefile 1969-12-31 19:00:00.000000000 -0500 @@ -1,36 +0,0 @@ -TESTS = $(wildcard test/test_*.py) - -.PHONY: deps pep8 test build push clean - -all: pep8 test build - -deps: - # q doesn't have any *runtime* dependencies. - # These dependencies are only needed for development. - pip install pep8 - pip install wheel - -pep8: - @echo === Running pep8 on files - pep8 $(wildcard *.py) $(wildcard test/*.py) - -test: - @echo - @ $(foreach TEST,$(TESTS), \ - ( \ - echo === Running test: $(TEST); \ - python $(TEST) || exit 1 \ - )) - -build: - python setup.py sdist - python setup.py bdist_wheel - -push: build - python setup.py sdist upload - python setup.py bdist_wheel upload - -clean: - rm -rf build dist q.egg-info - find -name *.pyc -delete - @- git status diff -Nru python-q-2.6/PKG-INFO python-q-2.7/PKG-INFO --- python-q-2.6/PKG-INFO 1969-12-31 19:00:00.000000000 -0500 +++ python-q-2.7/PKG-INFO 2022-07-23 16:03:02.961571200 -0400 @@ -0,0 +1,21 @@ +Metadata-Version: 1.1 +Name: q +Version: 2.7 +Summary: Quick-and-dirty debugging output for tired programmers +Home-page: http://github.com/zestyping/q +Author: Ka-Ping Yee +Author-email: [email protected] +License: Apache License 2.0 +Description: UNKNOWN +Keywords: debugging +Platform: UNKNOWN +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: Implementation :: Jython +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License diff -Nru python-q-2.6/q.egg-info/dependency_links.txt python-q-2.7/q.egg-info/dependency_links.txt --- python-q-2.6/q.egg-info/dependency_links.txt 1969-12-31 19:00:00.000000000 -0500 +++ python-q-2.7/q.egg-info/dependency_links.txt 2022-07-23 16:03:02.000000000 -0400 @@ -0,0 +1 @@ + diff -Nru python-q-2.6/q.egg-info/PKG-INFO python-q-2.7/q.egg-info/PKG-INFO --- python-q-2.6/q.egg-info/PKG-INFO 1969-12-31 19:00:00.000000000 -0500 +++ python-q-2.7/q.egg-info/PKG-INFO 2022-07-23 16:03:02.000000000 -0400 @@ -0,0 +1,21 @@ +Metadata-Version: 1.1 +Name: q +Version: 2.7 +Summary: Quick-and-dirty debugging output for tired programmers +Home-page: http://github.com/zestyping/q +Author: Ka-Ping Yee +Author-email: [email protected] +License: Apache License 2.0 +Description: UNKNOWN +Keywords: debugging +Platform: UNKNOWN +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: Implementation :: Jython +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License diff -Nru python-q-2.6/q.egg-info/SOURCES.txt python-q-2.7/q.egg-info/SOURCES.txt --- python-q-2.6/q.egg-info/SOURCES.txt 1969-12-31 19:00:00.000000000 -0500 +++ python-q-2.7/q.egg-info/SOURCES.txt 2022-07-23 16:03:02.000000000 -0400 @@ -0,0 +1,10 @@ +MANIFEST.in +README.md +q.py +setup.cfg +setup.py +q.egg-info/PKG-INFO +q.egg-info/SOURCES.txt +q.egg-info/dependency_links.txt +q.egg-info/top_level.txt +test/test_basic.py \ No newline at end of file diff -Nru python-q-2.6/q.egg-info/top_level.txt python-q-2.7/q.egg-info/top_level.txt --- python-q-2.6/q.egg-info/top_level.txt 1969-12-31 19:00:00.000000000 -0500 +++ python-q-2.7/q.egg-info/top_level.txt 2022-07-23 16:03:02.000000000 -0400 @@ -0,0 +1 @@ +q diff -Nru python-q-2.6/q.py python-q-2.7/q.py --- python-q-2.6/q.py 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/q.py 2022-07-23 16:01:58.000000000 -0400 @@ -79,15 +79,40 @@ import re import time import functools + import tempfile # The debugging log will go to this file; temporary files will also have # this path as a prefix, followed by a random number. - OUTPUT_PATH = os.path.join( - os.environ.get('TMPDIR') or os.environ.get('TEMP') or '/tmp', - 'q') + OUTPUT_PATH = os.path.join(tempfile.gettempdir(), 'q') NORMAL, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN = ESCAPE_SEQUENCES TEXT_REPR = pydoc.TextRepr() + q_max_length = 1_000_000 + + @property + def short(self): + __class__.TEXT_REPR = __class__.pydoc.TextRepr() + + @property + def long(self): + __class__.TEXT_REPR = __class__.pydoc.TextRepr() + __class__.TEXT_REPR.maxarray = __class__.q_max_length + __class__.TEXT_REPR.maxdeque = __class__.q_max_length + __class__.TEXT_REPR.maxdict = __class__.q_max_length + __class__.TEXT_REPR.maxfrozenset = __class__.q_max_length + __class__.TEXT_REPR.maxlevel = __class__.q_max_length + __class__.TEXT_REPR.maxlist = __class__.q_max_length + __class__.TEXT_REPR.maxlong = __class__.q_max_length + __class__.TEXT_REPR.maxother = __class__.q_max_length + __class__.TEXT_REPR.maxset = __class__.q_max_length + __class__.TEXT_REPR.maxstring = __class__.q_max_length + __class__.TEXT_REPR.maxtuple = __class__.q_max_length + + @long.setter + def long(self, value): + __class__.q_max_length = value + self.long + # For portably converting strings between python2 and python3 BASESTRING_TYPES = BASESTRING_TYPES @@ -156,7 +181,7 @@ """Abstract away indentation and line-wrapping.""" def __init__(self, indent=0, width=80 - 7): - self.chunks = [' '*indent] + self.chunks = [' ' * indent] self.indent = indent self.column = indent self.width = width @@ -171,7 +196,7 @@ size = sum([len(x) for x in items if not x.startswith('\x1b')]) if (wrap and self.column > self.indent and self.column + len(sep) + size > self.width): - self.chunks.append(sep.rstrip() + '\n' + ' '*self.indent) + self.chunks.append(sep.rstrip() + '\n' + ' ' * self.indent) self.column = self.indent else: self.chunks.append(sep) @@ -199,7 +224,7 @@ result = self.TEXT_REPR.repr(value) if isinstance(value, self.BASESTRING_TYPES) and len(value) > 80: # If the string is big, save it to a file for later examination. - if isinstance(value, self.TEXT_TYPES): + if isinstance(value, self.TEXT_TYPES): value = value.encode('utf-8') path = self.OUTPUT_PATH + '%08d.txt' % self.random.randrange(1e8) self.FileWriter(path).write('w', value) @@ -370,4 +395,6 @@ # Install the Q() object in sys.modules so that "import q" gives a callable q. -sys.modules['q'] = Q() +q = Q() +q.long +sys.modules['q'] = q diff -Nru python-q-2.6/README.md python-q-2.7/README.md --- python-q-2.6/README.md 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/README.md 2022-07-23 16:01:58.000000000 -0400 @@ -1,42 +1,61 @@ -q -= +# q -[](https://travis-ci.org/zestyping/q) +[](https://www.codeshelter.co/) Quick and dirty debugging output for tired programmers. -Install q with "easy\_install -U q" or "pip install -U q". +For a short demo, watch the [Lightning Talk](http://pyvideo.org/video/1858/sunday-evening-lightning-talks#t=25m15s) from PyCon 2013. -All output goes to /tmp/q, which you can watch with this shell command:: +Install q with `pip install -U q`. - tail -f /tmp/q +All output goes to `/tmp/q` (or on Windows, to `$HOME/tmp/q`). You can +watch the output with this shell command while your program is running: -If TMPDIR is set, the output goes to $TMPDIR/q. + tail -f /tmp/q -To print the value of foo, insert this into your program:: +To print the value of foo, insert this into your program: import q; q(foo) -To print the value of something in the middle of an expression, insert -"q()", "q/", or "q|". For example, given this statement:: +To print the value of something in the middle of an expression, you can +wrap it with `q()`. You can also insert `q/` or `q|` into the expression; +`q/` binds tightly whereas `q|` binds loosely. For example, given this +statement: file.write(prefix + (sep or '').join(items)) -...you can print out various values without using any temporary variables:: +you can print out various values without using any temporary variables: file.write(prefix + q(sep or '').join(items)) # prints (sep or '') file.write(q/prefix + (sep or '').join(items)) # prints prefix file.write(q|prefix + (sep or '').join(items)) # prints the arg to write -To trace a function's arguments and return value, insert this above the def:: +To trace a function (showing its arguments, return value, and running time), +insert this above the def: import q @q -To start an interactive console at any point in your code, call q.d():: +To start an interactive console at any point in your code, call q.d(): import q; q.d() +By default the output of q is not truncated, but it can be truncated by calling: + + q.short + +Truncation can be reversed by: + +```python +q.long # Truncates output to 1,000,000 +q.long = 2000000 # Truncates output to 2,000,000 +``` +# Other projects inspired by this one + +* [`q` for golang](https://github.com/y0ssar1an/q) +* [`qq` for elixir](https://github.com/mandarvaze/q) +* [`ic` for Python](https://github.com/gruns/icecream) - Similar library for Python, inspired by `q`. + The following [Lightning Talk](http://pyvideo.org/video/1858/sunday-evening-lightning-talks#t=25m15s) shows how powerful using q can be. diff -Nru python-q-2.6/setup.cfg python-q-2.7/setup.cfg --- python-q-2.6/setup.cfg 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/setup.cfg 2022-07-23 16:03:02.961571200 -0400 @@ -1,4 +1,10 @@ [metadata] description-file = README.md + [bdist_wheel] -universal=1 +universal = 1 + +[egg_info] +tag_build = +tag_date = 0 + diff -Nru python-q-2.6/setup.py python-q-2.7/setup.py --- python-q-2.6/setup.py 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/setup.py 2022-07-23 16:02:10.000000000 -0400 @@ -1,10 +1,21 @@ from setuptools import setup -setup(name='q', version='2.6', py_modules=['q'], - description='Quick-and-dirty debugging output for tired programmers', - author='Ka-Ping Yee', author_email='[email protected]', - license='Apache License 2.0', - url='http://github.com/zestyping/q', classifiers=[ - 'Programming Language :: Python', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License' - ]) +setup( + name='q', version='2.7', py_modules=['q'], + description='Quick-and-dirty debugging output for tired programmers', + author='Ka-Ping Yee', author_email='[email protected]', + license='Apache License 2.0', + classifiers=[ + "Programming Language :: Python", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: Implementation :: PyPy", + "Programming Language :: Python :: Implementation :: Jython", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + ], + keywords=['debugging'], + url='http://github.com/zestyping/q' +) diff -Nru python-q-2.6/.travis.yml python-q-2.7/.travis.yml --- python-q-2.6/.travis.yml 2015-06-22 03:23:57.000000000 -0400 +++ python-q-2.7/.travis.yml 1969-12-31 19:00:00.000000000 -0500 @@ -1,11 +0,0 @@ -language: python -python: - - "2.6" - - "2.7" - - "3.2" - - "3.3" - - "3.4" - - "nightly" - - "pypy" -install: make deps -script: make

