Date: Sun, 13 Jan 2019 20:07:39 +0000 (UTC) From: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r490175 - in head/devel: . py-jaraco.context py-jaraco.context/files Message-ID: <201901132007.x0DK7dlL000681@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sunpoet Date: Sun Jan 13 20:07:39 2019 New Revision: 490175 URL: https://svnweb.freebsd.org/changeset/ports/490175 Log: Add py-jaraco.context 2.0 jaraco.context provides context managers. WWW: https://github.com/jaraco/jaraco.context Added: head/devel/py-jaraco.context/ head/devel/py-jaraco.context/Makefile (contents, props changed) head/devel/py-jaraco.context/distinfo (contents, props changed) head/devel/py-jaraco.context/files/ head/devel/py-jaraco.context/files/patch-jaraco-context.py (contents, props changed) head/devel/py-jaraco.context/pkg-descr (contents, props changed) Modified: head/devel/Makefile Modified: head/devel/Makefile ============================================================================== --- head/devel/Makefile Sun Jan 13 19:36:50 2019 (r490174) +++ head/devel/Makefile Sun Jan 13 20:07:39 2019 (r490175) @@ -4611,6 +4611,7 @@ SUBDIR += py-itypes SUBDIR += py-jaraco SUBDIR += py-jaraco.classes + SUBDIR += py-jaraco.context SUBDIR += py-jaraco.functools SUBDIR += py-jaraco.itertools SUBDIR += py-jaraco.logging Added: head/devel/py-jaraco.context/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-jaraco.context/Makefile Sun Jan 13 20:07:39 2019 (r490175) @@ -0,0 +1,43 @@ +# Created by: Po-Chuan Hsieh <sunpoet@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= jaraco.context +PORTVERSION= 2.0 +CATEGORIES= devel python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Context managers by jaraco + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.15.0:devel/py-setuptools_scm@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jaraco>=0:devel/py-jaraco@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist concurrent distutils + +NO_ARCH= yes + +post-patch: + @${REINPLACE_CMD} -e '/jaraco.apt/d; /yg.lockfile/d' ${WRKSRC}/setup.cfg ${WRKSRC}/jaraco.context.egg-info/requires.txt + +.include <bsd.port.pre.mk> + +.if ${PYTHON_REL} < 3000 +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}contextlib2>=0:devel/py-contextlib2@${PY_FLAVOR} +.endif + +POST_PLIST= trim-jaraco-namespace + +post-install: + @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__init__.py* + -@${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__/__init__.* + -@${RMDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__ + +trim-jaraco-namespace: + @${REINPLACE_CMD} '/jaraco\/__init__\./d; /jaraco\/__pycache__\/__init__\./d' ${TMPPLIST} + +.include <bsd.port.post.mk> Added: head/devel/py-jaraco.context/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-jaraco.context/distinfo Sun Jan 13 20:07:39 2019 (r490175) @@ -0,0 +1,3 @@ +TIMESTAMP = 1546769646 +SHA256 (jaraco.context-2.0.tar.gz) = dc71afa2f0d6829234272a26aade99856db8b26d01ee6edb2b5027570c12b0d1 +SIZE (jaraco.context-2.0.tar.gz) = 11231 Added: head/devel/py-jaraco.context/files/patch-jaraco-context.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-jaraco.context/files/patch-jaraco-context.py Sun Jan 13 20:07:39 2019 (r490175) @@ -0,0 +1,110 @@ +--- jaraco/context.py.orig 2019-01-01 15:43:21 UTC ++++ jaraco/context.py +@@ -13,9 +13,6 @@ try: + except Exception: + import contextlib as contextlib2 + +-import jaraco.apt +-import yg.lockfile +- + + __metaclass__ = type + +@@ -58,46 +55,6 @@ def data_lines_from_file(filename): + return filter(None, strip_comments(file_lines_if_exists(filename))) + + +-def run(): +- """ +- Run a command in the context of the system dependencies. +- """ +- parser = argparse.ArgumentParser() +- parser.add_argument( +- '--deps-def', +- default=data_lines_from_file("system deps.txt") +- + data_lines_from_file("build deps.txt"), +- help="A file specifying the dependencies (one per line)", +- type=data_lines_from_file, dest="spec_deps") +- parser.add_argument( +- '--dep', action="append", default=[], +- help="A specific dependency (multiple allowed)", dest="deps") +- parser.add_argument( +- 'command', type=shlex.split, +- default=shlex.split("python2.7 setup.py test"), +- help="Command to invoke in the context of the dependencies") +- parser.add_argument( +- '--do-not-remove', default=False, action="store_true", +- help="Keep any installed packages") +- parser.add_argument( +- '--aggressively-remove', default=False, +- action="store_true", +- help="When removing packages, also remove those automatically installed" +- " as dependencies") +- parser.add_argument( +- '-l', '--log-level', default=logging.INFO, +- type=log_level, help="Set log level (DEBUG, INFO, WARNING, ERROR)") +- args = parser.parse_args() +- logging.basicConfig(level=args.log_level) +- context = dependency_context( +- args.spec_deps + args.deps, +- aggressively_remove=args.aggressively_remove) +- with context as to_remove: +- if args.do_not_remove: +- del to_remove[:] +- raise SystemExit(subprocess.Popen(args.command).wait()) +- +- + def log_level(level_string): + """ + Return a log level for a string +@@ -106,50 +63,6 @@ def log_level(level_string): + + + @contextlib.contextmanager +-def dependency_context(package_names, aggressively_remove=False): +- """ +- Install the supplied packages and yield. Finally, remove all packages +- that were installed. +- Currently assumes 'aptitude' is available. +- """ +- installed_packages = [] +- log = logging.getLogger(__name__) +- try: +- if not package_names: +- logging.debug('No packages requested') +- if package_names: +- lock = yg.lockfile.FileLock( +- '/tmp/.pkg-context-lock', +- timeout=30 * 60) +- log.info('Acquiring lock to perform install') +- lock.acquire() +- log.info('Installing ' + ', '.join(package_names)) +- output = subprocess.check_output( +- ['sudo', 'aptitude', 'install', '-y'] + package_names, +- stderr=subprocess.STDOUT, +- ) +- log.debug('Aptitude output:\n%s', output) +- installed_packages = jaraco.apt.parse_new_packages( +- output, +- include_automatic=aggressively_remove) +- if not installed_packages: +- lock.release() +- log.info('Installed ' + ', '.join(installed_packages)) +- yield installed_packages +- except subprocess.CalledProcessError: +- log.error("Error occurred installing packages") +- raise +- finally: +- if installed_packages: +- log.info('Removing ' + ','.join(installed_packages)) +- subprocess.check_call( +- ['sudo', 'aptitude', 'remove', '-y'] + installed_packages, +- stdout=subprocess.PIPE, stderr=subprocess.STDOUT, +- ) +- lock.release() +- +- +-@contextlib.contextmanager + def pushd(dir): + orig = os.getcwd() + os.chdir(dir) Added: head/devel/py-jaraco.context/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/py-jaraco.context/pkg-descr Sun Jan 13 20:07:39 2019 (r490175) @@ -0,0 +1,3 @@ +jaraco.context provides context managers. + +WWW: https://github.com/jaraco/jaraco.context
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901132007.x0DK7dlL000681>