From c6826feb23c557d1444deb6a529f553f3b945fb4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 16:32:11 +0100 Subject: [PATCH 1/7] Use a single dir for third-party libraries Signed-off-by: Philippe Ombredanne --- configure | 4 +- configure.bat | 112 +++++++++--------- .../Jinja2-2.10-py2.py3-none-any.whl | Bin .../Jinja2-2.10-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{dev => }/Jinja2.LICENSE | 0 thirdparty/{dev => }/MarkupSafe-1.0.tar.gz | Bin thirdparty/{dev => }/MarkupSafe.ABOUT | 0 thirdparty/{dev => }/MarkupSafe.LICENSE | 0 thirdparty/{base => }/PSF.LICENSE | 0 .../{dev => }/PyYAML-3.12-py2-none-any.whl | Bin .../{dev => }/PyYAML-3.12-py3-none-any.whl | Bin thirdparty/{dev => }/PyYAML-3.12.tar.gz | Bin ...outcode_toolkit-3.1.1-py2.py3-none-any.whl | Bin 0 -> 43546 bytes ...e_toolkit-3.1.1-py2.py3-none-any.whl.ABOUT | 16 +++ thirdparty/{dev => }/apache-2.0.LICENSE | 0 .../atomicwrites-1.1.5-py2.py3-none-any.whl | Bin ...micwrites-1.1.5-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{dev => }/atomicwrites.LICENSE | 0 .../attrs-18.1.0-py2.py3-none-any.whl | Bin thirdparty/{dev => }/attrs.ABOUT | 0 thirdparty/{dev => }/attrs.LICENSE | 0 .../backports.csv-1.0.6-py2.py3-none-any.whl | Bin thirdparty/{dev => }/backports.csv.ABOUT | 0 thirdparty/{dev => }/backports.csv.NOTICE | 0 .../boolean.py-3.6-py2.py3-none-any.whl | Bin 0 -> 21969 bytes .../boolean.py-3.6-py2.py3-none-any.whl.ABOUT | 15 +++ ...boolean.py-3.6-py2.py3-none-any.whl.NOTICE | 23 ++++ thirdparty/{prod => }/bsd-simplified.LICENSE | 0 .../certifi-2018.4.16-py2.py3-none-any.whl | Bin ...rtifi-2018.4.16-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{base => }/certifi.NOTICE | 0 .../{dev => }/click-6.7-py2.py3-none-any.whl | Bin .../click-6.7-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{dev => }/click.LICENSE | 0 .../colorama-0.3.9-py2.py3-none-any.whl | Bin thirdparty/{dev => }/colorama.ABOUT | 0 thirdparty/{dev => }/colorama.LICENSE | 0 thirdparty/dev/.keep | 1 - thirdparty/dev/PSF.LICENSE | 48 -------- .../funcsigs-1.0.2-py2.py3-none-any.whl | Bin thirdparty/{dev => }/funcsigs.ABOUT | 0 thirdparty/{dev => }/funcsigs.LICENSE | 0 thirdparty/{dev => }/more-itertools-py2.ABOUT | 0 thirdparty/{dev => }/more-itertools-py3.ABOUT | 0 thirdparty/{dev => }/more-itertools.NOTICE | 0 .../more_itertools-4.2.0-py2-none-any.whl | Bin .../more_itertools-4.2.0-py3-none-any.whl | Bin thirdparty/{base => }/mpl-2.0.LICENSE | 0 .../pip-10.0.1-py2.py3-none-any.whl | Bin .../pip-10.0.1-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{base => }/pip.LICENSE | 0 .../{dev => }/pluggy-0.6.0-py2-none-any.whl | Bin .../{dev => }/pluggy-0.6.0-py3-none-any.whl | Bin thirdparty/{dev => }/pluggy-py2.ABOUT | 0 thirdparty/{dev => }/pluggy-py3.ABOUT | 0 thirdparty/{dev => }/pluggy.LICENSE | 0 .../{dev => }/py-1.5.3-py2.py3-none-any.whl | Bin thirdparty/{dev => }/py.ABOUT | 0 thirdparty/{dev => }/py.LICENSE | 0 .../pytest-3.5.1-py2.py3-none-any.whl | Bin thirdparty/{dev => }/pytest.ABOUT | 0 thirdparty/{dev => }/pytest.LICENSE | 0 thirdparty/{dev => }/pyyaml.LICENSE | 0 thirdparty/{dev => }/pyyaml.py2.ABOUT | 0 thirdparty/{dev => }/pyyaml.py3.ABOUT | 0 thirdparty/{dev => }/pyyaml.tar.ABOUT | 0 .../setuptools-39.2.0-py2.py3-none-any.whl | Bin ...tuptools-39.2.0-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{base => }/setuptools.NOTICE | 0 .../six-1.11.0-py2.py3-none-any.whl | Bin .../six-1.11.0-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{base => }/six.LICENSE | 0 .../virtualenv-16.0.0-py2.py3-none-any.whl | Bin thirdparty/{base => }/virtualenv.ABOUT | 0 thirdparty/{base => }/virtualenv.LICENSE | 0 thirdparty/{base => }/virtualenv.py | 0 thirdparty/{base => }/virtualenv.py.ABOUT | 0 .../wheel-0.31.1-py2.py3-none-any.whl | Bin .../wheel-0.31.1-py2.py3-none-any.whl.ABOUT | 0 thirdparty/{base => }/wheel.LICENSE | 0 .../wincertstore-0.2-py2.py3-none-any.whl | Bin thirdparty/{base => }/wincertstore.ABOUT | 0 thirdparty/{base => }/wincertstore.LICENSE | 0 83 files changed, 109 insertions(+), 110 deletions(-) rename thirdparty/{dev => }/Jinja2-2.10-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/Jinja2-2.10-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{dev => }/Jinja2.LICENSE (100%) rename thirdparty/{dev => }/MarkupSafe-1.0.tar.gz (100%) rename thirdparty/{dev => }/MarkupSafe.ABOUT (100%) rename thirdparty/{dev => }/MarkupSafe.LICENSE (100%) rename thirdparty/{base => }/PSF.LICENSE (100%) rename thirdparty/{dev => }/PyYAML-3.12-py2-none-any.whl (100%) rename thirdparty/{dev => }/PyYAML-3.12-py3-none-any.whl (100%) rename thirdparty/{dev => }/PyYAML-3.12.tar.gz (100%) create mode 100644 thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl create mode 100644 thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl.ABOUT rename thirdparty/{dev => }/apache-2.0.LICENSE (100%) rename thirdparty/{dev => }/atomicwrites-1.1.5-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/atomicwrites-1.1.5-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{dev => }/atomicwrites.LICENSE (100%) rename thirdparty/{dev => }/attrs-18.1.0-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/attrs.ABOUT (100%) rename thirdparty/{dev => }/attrs.LICENSE (100%) rename thirdparty/{dev => }/backports.csv-1.0.6-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/backports.csv.ABOUT (100%) rename thirdparty/{dev => }/backports.csv.NOTICE (100%) create mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl create mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT create mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE rename thirdparty/{prod => }/bsd-simplified.LICENSE (100%) rename thirdparty/{base => }/certifi-2018.4.16-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/certifi-2018.4.16-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{base => }/certifi.NOTICE (100%) rename thirdparty/{dev => }/click-6.7-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/click-6.7-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{dev => }/click.LICENSE (100%) rename thirdparty/{dev => }/colorama-0.3.9-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/colorama.ABOUT (100%) rename thirdparty/{dev => }/colorama.LICENSE (100%) delete mode 100644 thirdparty/dev/.keep delete mode 100644 thirdparty/dev/PSF.LICENSE rename thirdparty/{dev => }/funcsigs-1.0.2-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/funcsigs.ABOUT (100%) rename thirdparty/{dev => }/funcsigs.LICENSE (100%) rename thirdparty/{dev => }/more-itertools-py2.ABOUT (100%) rename thirdparty/{dev => }/more-itertools-py3.ABOUT (100%) rename thirdparty/{dev => }/more-itertools.NOTICE (100%) rename thirdparty/{dev => }/more_itertools-4.2.0-py2-none-any.whl (100%) rename thirdparty/{dev => }/more_itertools-4.2.0-py3-none-any.whl (100%) rename thirdparty/{base => }/mpl-2.0.LICENSE (100%) rename thirdparty/{base => }/pip-10.0.1-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/pip-10.0.1-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{base => }/pip.LICENSE (100%) rename thirdparty/{dev => }/pluggy-0.6.0-py2-none-any.whl (100%) rename thirdparty/{dev => }/pluggy-0.6.0-py3-none-any.whl (100%) rename thirdparty/{dev => }/pluggy-py2.ABOUT (100%) rename thirdparty/{dev => }/pluggy-py3.ABOUT (100%) rename thirdparty/{dev => }/pluggy.LICENSE (100%) rename thirdparty/{dev => }/py-1.5.3-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/py.ABOUT (100%) rename thirdparty/{dev => }/py.LICENSE (100%) rename thirdparty/{dev => }/pytest-3.5.1-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/pytest.ABOUT (100%) rename thirdparty/{dev => }/pytest.LICENSE (100%) rename thirdparty/{dev => }/pyyaml.LICENSE (100%) rename thirdparty/{dev => }/pyyaml.py2.ABOUT (100%) rename thirdparty/{dev => }/pyyaml.py3.ABOUT (100%) rename thirdparty/{dev => }/pyyaml.tar.ABOUT (100%) rename thirdparty/{base => }/setuptools-39.2.0-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/setuptools-39.2.0-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{base => }/setuptools.NOTICE (100%) rename thirdparty/{base => }/six-1.11.0-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/six-1.11.0-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{base => }/six.LICENSE (100%) rename thirdparty/{base => }/virtualenv-16.0.0-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/virtualenv.ABOUT (100%) rename thirdparty/{base => }/virtualenv.LICENSE (100%) rename thirdparty/{base => }/virtualenv.py (100%) rename thirdparty/{base => }/virtualenv.py.ABOUT (100%) rename thirdparty/{base => }/wheel-0.31.1-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/wheel-0.31.1-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{base => }/wheel.LICENSE (100%) rename thirdparty/{base => }/wincertstore-0.2-py2.py3-none-any.whl (100%) rename thirdparty/{base => }/wincertstore.ABOUT (100%) rename thirdparty/{base => }/wincertstore.LICENSE (100%) diff --git a/configure b/configure index 4f9fdcc..28a24ed 100755 --- a/configure +++ b/configure @@ -6,9 +6,7 @@ # change these variables to customize this script locally ################################ # you can define one or more thirdparty dirs, each prefixed with TPP_DIR -export TPP_DIR_BASE="thirdparty/base" -export TPP_DIR_DEV="thirdparty/dev" -export TPP_DIR_PROD="thirdparty/prod" +export TPP_DIR_BASE="thirdparty" # default configurations for dev CONF_DEFAULT="etc/conf/dev" diff --git a/configure.bat b/configure.bat index 87e471c..5d216df 100755 --- a/configure.bat +++ b/configure.bat @@ -1,58 +1,54 @@ -@echo ON -setlocal -@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. - -@rem ################################ -@rem # Defaults. change these variables to customize this script locally -@rem ################################ -@rem # you can define one or more thirdparty dirs, each prefixed with TPP_DIR -set TPP_DIR_BASE=thirdparty/base -set TPP_DIR_DEV=thirdparty/dev -set TPP_DIR_PROD=thirdparty/prod - -set DEFAULT_PYTHON=python - -@rem # default configurations -set CONF_DEFAULT="etc/conf/dev" -@rem ################################# - -@rem this always has a trailing backslash -set CFG_ROOT_DIR=%~dp0 - -@rem a possible alternative way and simpler way to slurp args -@rem set CFG_CMD_LINE_ARGS=%* - -@rem Collect all command line arguments in a variable -set CFG_CMD_LINE_ARGS= - -:collectarg - if ""%1""=="""" goto continue - set CFG_CMD_LINE_ARGS=%CFG_CMD_LINE_ARGS% %1 - shift -goto collectarg - -:continue - - -@rem Set defaults -if "%CFG_CMD_LINE_ARGS%"=="" set CFG_CMD_LINE_ARGS=%CONF_DEFAULT% -if "%PYTHON_EXE%"=="" set PYTHON_EXE=%DEFAULT_PYTHON% - - -call "%PYTHON_EXE%" %CFG_ROOT_DIR%\etc\configure.py %CFG_CMD_LINE_ARGS% - - -@rem Return a proper return code on failure -if %errorlevel% neq 0 ( - exit /b %errorlevel% -) - - -@rem Activate the virtualenv -endlocal -if exist "%CFG_ROOT_DIR%bin\activate" ( - "%CFG_ROOT_DIR%bin\activate" -) -goto EOS - -:EOS \ No newline at end of file +@echo OFF +setlocal +@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. + +@rem ################################ +@rem # Defaults. change these variables to customize this script locally +@rem ################################ +@rem # you can define one or more thirdparty dirs, each prefixed with TPP_DIR +set TPP_DIR=thirdparty + +set DEFAULT_PYTHON=python + +@rem # default configurations for dev +set CONF_DEFAULT="etc/conf/dev" +@rem ################################# + +set CFG_ROOT_DIR=%~dp0 + +@rem Collect all command line arguments in a variable +set CFG_CMD_LINE_ARGS= + +@rem a possible alternative way and simpler way to slurp args +@rem set CFG_CMD_LINE_ARGS=%* + + +:collectarg + if ""%1""=="""" goto continue + call set CFG_CMD_LINE_ARGS=%CFG_CMD_LINE_ARGS% %1 + shift + goto collectarg + +:continue + +@rem Set defaults when no args are passed +if "%CFG_CMD_LINE_ARGS%"=="" set CFG_CMD_LINE_ARGS="%CONF_DEFAULT%" +if "%PYTHON_EXE%"=="" set PYTHON_EXE=%DEFAULT_PYTHON% + + +call "%PYTHON_EXE%" "%CFG_ROOT_DIR%etc\configure.py" %CFG_CMD_LINE_ARGS% +@rem Return a proper return code on failure + +if %errorlevel% neq 0 ( + exit /b %errorlevel% +) + + +@rem Activate the virtualenv +endlocal +if exist "%CFG_ROOT_DIR%bin\activate" ( + "%CFG_ROOT_DIR%bin\activate" +) +goto EOS + +:EOS diff --git a/thirdparty/dev/Jinja2-2.10-py2.py3-none-any.whl b/thirdparty/Jinja2-2.10-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/Jinja2-2.10-py2.py3-none-any.whl rename to thirdparty/Jinja2-2.10-py2.py3-none-any.whl diff --git a/thirdparty/dev/Jinja2-2.10-py2.py3-none-any.whl.ABOUT b/thirdparty/Jinja2-2.10-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/dev/Jinja2-2.10-py2.py3-none-any.whl.ABOUT rename to thirdparty/Jinja2-2.10-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/dev/Jinja2.LICENSE b/thirdparty/Jinja2.LICENSE similarity index 100% rename from thirdparty/dev/Jinja2.LICENSE rename to thirdparty/Jinja2.LICENSE diff --git a/thirdparty/dev/MarkupSafe-1.0.tar.gz b/thirdparty/MarkupSafe-1.0.tar.gz similarity index 100% rename from thirdparty/dev/MarkupSafe-1.0.tar.gz rename to thirdparty/MarkupSafe-1.0.tar.gz diff --git a/thirdparty/dev/MarkupSafe.ABOUT b/thirdparty/MarkupSafe.ABOUT similarity index 100% rename from thirdparty/dev/MarkupSafe.ABOUT rename to thirdparty/MarkupSafe.ABOUT diff --git a/thirdparty/dev/MarkupSafe.LICENSE b/thirdparty/MarkupSafe.LICENSE similarity index 100% rename from thirdparty/dev/MarkupSafe.LICENSE rename to thirdparty/MarkupSafe.LICENSE diff --git a/thirdparty/base/PSF.LICENSE b/thirdparty/PSF.LICENSE similarity index 100% rename from thirdparty/base/PSF.LICENSE rename to thirdparty/PSF.LICENSE diff --git a/thirdparty/dev/PyYAML-3.12-py2-none-any.whl b/thirdparty/PyYAML-3.12-py2-none-any.whl similarity index 100% rename from thirdparty/dev/PyYAML-3.12-py2-none-any.whl rename to thirdparty/PyYAML-3.12-py2-none-any.whl diff --git a/thirdparty/dev/PyYAML-3.12-py3-none-any.whl b/thirdparty/PyYAML-3.12-py3-none-any.whl similarity index 100% rename from thirdparty/dev/PyYAML-3.12-py3-none-any.whl rename to thirdparty/PyYAML-3.12-py3-none-any.whl diff --git a/thirdparty/dev/PyYAML-3.12.tar.gz b/thirdparty/PyYAML-3.12.tar.gz similarity index 100% rename from thirdparty/dev/PyYAML-3.12.tar.gz rename to thirdparty/PyYAML-3.12.tar.gz diff --git a/thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl b/thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..72f8d999f9933a4d1bd75706fc96ab33cd630fe3 GIT binary patch literal 43546 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�@PHZYNURDQ;mU}~K84V-&+(q9P& zsH!d#$$;jkQ9=wdUZ&e8ouMhsm1UK`CqD>aI%8<}`*b;ux%^JL7|wtT>xfCKiGcgeza%fvT>t zP1*p%trPAq{2j<&af8(OuD7sy-+=&A3Ky|7{5sgZ_qb9*M4ToQI$ihA{J^$M;4Z$^_ih<*Lnrj*?!dB86Rp;@JqUf zRSA~RfEP{ry3J&SLmYgfHg|!hIgr!?mm~m|!W|I`pLWqGRE+X)E6CFXyTqR|4izQ8 znL=&s^yUTbxYdFoGc7s{+V{C8F_S6F|bU=3H~;dJuo9ud709EKVVuOnDgZ zEoWOJ#uC=v$lPDIi@+5{823G@c@v>0$igBH6tN_2)qI#L?32hc_=4~bPwP|xpT3*#hkeLLN;4BOKt=W3m-u4i;4%1-4W_ z|AoDdOp>CD{weIEvADwMJd{{?ySveHUJM5pf=pBn9*fW(1uxHxbs@YEc8N0G&cg^R z69U@Zi0$=mwf93`Uy_X>P+%T|<%;i!kRJ>1USw3qQ+5p9YKi}mJ%QH`?xGLVhWcm6 z=(}&YD(+9cyc^93_Ng*( z-`tW-d`mSETpfb9PiF(;+L9u*9**Zb<a%E@y?{D^JHXfBzf*# zBy*X;yV%0OXAgTSvcfw3k-KJ@Qeb6W)?s$guToDIJA8K0_(te4uo zgtSot3jVIh;9({?r>3b``v-UN7nK6tDl-#3cI3r#GNx3u9lnfXs5^#X-FC)&NYbX$ zsOG43N7sBgeI8rUEmGyud^CU;NjTVPB#6(`@Su~wj@HzHl;Cw$Cbkd-;nb8Ub3qVs zy!m}ast^zE_|_EOTm8q8EqvTqb|RYUII(SuyT>3glip2Ab&~Cg8X?8F{YP(em7o8p zMJ%<5rRrEg_Q8H6%W-i7Zx6aQbJuNnycQ8V%B7hUj7dh8xr>Gsb+2}_r`x-qH~v$G zb3?D#W3C%B`dr65)9+#(0lBA%Q2t}6*72S-jVh)Gix*CVt=m~9;f&gA%fHe+H z88J-?APAFdMqP3n#i5@od4Bcu&Ur)O;V$m7jyp)u)P!63qA!#ClC042hbQl?dHO@v zIfOi!jhy4=cjLp%Zr>&n0B%`X0FM9waCU+8v6%mwh|a8%NX~44!U$4mxI?tcbTaR6 zZBOVg;;cmA3Q{iCSSv@F9m!7^5V2jEv3pHEd|mf_HP#cKOs>mk39F_Z#QTA@H9V8v zZLt3+mJFxqM}+%517D6p;#_k}&Djz^XK~P>QaPx2IduT(RJj zAZ3%6zr5a}fmjsS|9_*+>m~i~Qy%c=^e=5U{|@-KR*wHO2LQ?g=C8x#FTl?Noxj`v zTV2mj``g!x`j`DLRX%@*{M%vcC!_`Xe~{lEy?!PBn!J7z+u*+;{v(zB%KSBj{bb(O z_zm;F3GG+buQ}%@tMGTMzcSFTxL;-c6PKj@8`u6PaxEAx-k%2e*DvyVU$D{n^Xorv CvcMJq literal 0 HcmV?d00001 diff --git a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT new file mode 100644 index 0000000..3df1f3a --- /dev/null +++ b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT @@ -0,0 +1,15 @@ +about_resource: boolean.py-3.6-py2.py3-none-any.whl +attribute: true +checksum_md5: da39999eb131b589e84ad935dc4ca642 +checksum_sha1: d31b55e7ad2ee917232b3213afe3ae9678156a9f +copyright: Copyright (c) 2009-2016 Sebastian Kraemer, basti.kr@gmail.com and others +description: Implements boolean algebra in one module. +download_url: https://files.pythonhosted.org/packages/9b/27/d22062a221010e17935237ba4b574cd828238ea02e0765337c238466a512/boolean.py-3.6-py2.py3-none-any.whl +homepage_url: https://github.com/bastikr/boolean.py +license_expression: bsd-simplified +license_file: bsd-simplified.LICENSE +name: boolean.py +notice_file: boolean.py-3.6-py2.py3-none-any.whl.NOTICE +notice_url: https://github.com/bastikr/boolean.py/blob/master/LICENSE.txt +owner: Sebastian Kraemer +version: '3.6' diff --git a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE new file mode 100644 index 0000000..8819ea1 --- /dev/null +++ b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE @@ -0,0 +1,23 @@ +Copyright (c) 2009-2017 Sebastian Kraemer, basti.kr@gmail.com +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/thirdparty/prod/bsd-simplified.LICENSE b/thirdparty/bsd-simplified.LICENSE similarity index 100% rename from thirdparty/prod/bsd-simplified.LICENSE rename to thirdparty/bsd-simplified.LICENSE diff --git a/thirdparty/base/certifi-2018.4.16-py2.py3-none-any.whl b/thirdparty/certifi-2018.4.16-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/certifi-2018.4.16-py2.py3-none-any.whl rename to thirdparty/certifi-2018.4.16-py2.py3-none-any.whl diff --git a/thirdparty/base/certifi-2018.4.16-py2.py3-none-any.whl.ABOUT b/thirdparty/certifi-2018.4.16-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/base/certifi-2018.4.16-py2.py3-none-any.whl.ABOUT rename to thirdparty/certifi-2018.4.16-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/base/certifi.NOTICE b/thirdparty/certifi.NOTICE similarity index 100% rename from thirdparty/base/certifi.NOTICE rename to thirdparty/certifi.NOTICE diff --git a/thirdparty/dev/click-6.7-py2.py3-none-any.whl b/thirdparty/click-6.7-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/click-6.7-py2.py3-none-any.whl rename to thirdparty/click-6.7-py2.py3-none-any.whl diff --git a/thirdparty/dev/click-6.7-py2.py3-none-any.whl.ABOUT b/thirdparty/click-6.7-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/dev/click-6.7-py2.py3-none-any.whl.ABOUT rename to thirdparty/click-6.7-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/dev/click.LICENSE b/thirdparty/click.LICENSE similarity index 100% rename from thirdparty/dev/click.LICENSE rename to thirdparty/click.LICENSE diff --git a/thirdparty/dev/colorama-0.3.9-py2.py3-none-any.whl b/thirdparty/colorama-0.3.9-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/colorama-0.3.9-py2.py3-none-any.whl rename to thirdparty/colorama-0.3.9-py2.py3-none-any.whl diff --git a/thirdparty/dev/colorama.ABOUT b/thirdparty/colorama.ABOUT similarity index 100% rename from thirdparty/dev/colorama.ABOUT rename to thirdparty/colorama.ABOUT diff --git a/thirdparty/dev/colorama.LICENSE b/thirdparty/colorama.LICENSE similarity index 100% rename from thirdparty/dev/colorama.LICENSE rename to thirdparty/colorama.LICENSE diff --git a/thirdparty/dev/.keep b/thirdparty/dev/.keep deleted file mode 100644 index 5b81efe..0000000 --- a/thirdparty/dev/.keep +++ /dev/null @@ -1 +0,0 @@ -DO NOT DELETE \ No newline at end of file diff --git a/thirdparty/dev/PSF.LICENSE b/thirdparty/dev/PSF.LICENSE deleted file mode 100644 index b6bddd8..0000000 --- a/thirdparty/dev/PSF.LICENSE +++ /dev/null @@ -1,48 +0,0 @@ -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights -Reserved" are retained in Python alone or in any derivative version prepared by -Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. diff --git a/thirdparty/dev/funcsigs-1.0.2-py2.py3-none-any.whl b/thirdparty/funcsigs-1.0.2-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/funcsigs-1.0.2-py2.py3-none-any.whl rename to thirdparty/funcsigs-1.0.2-py2.py3-none-any.whl diff --git a/thirdparty/dev/funcsigs.ABOUT b/thirdparty/funcsigs.ABOUT similarity index 100% rename from thirdparty/dev/funcsigs.ABOUT rename to thirdparty/funcsigs.ABOUT diff --git a/thirdparty/dev/funcsigs.LICENSE b/thirdparty/funcsigs.LICENSE similarity index 100% rename from thirdparty/dev/funcsigs.LICENSE rename to thirdparty/funcsigs.LICENSE diff --git a/thirdparty/dev/more-itertools-py2.ABOUT b/thirdparty/more-itertools-py2.ABOUT similarity index 100% rename from thirdparty/dev/more-itertools-py2.ABOUT rename to thirdparty/more-itertools-py2.ABOUT diff --git a/thirdparty/dev/more-itertools-py3.ABOUT b/thirdparty/more-itertools-py3.ABOUT similarity index 100% rename from thirdparty/dev/more-itertools-py3.ABOUT rename to thirdparty/more-itertools-py3.ABOUT diff --git a/thirdparty/dev/more-itertools.NOTICE b/thirdparty/more-itertools.NOTICE similarity index 100% rename from thirdparty/dev/more-itertools.NOTICE rename to thirdparty/more-itertools.NOTICE diff --git a/thirdparty/dev/more_itertools-4.2.0-py2-none-any.whl b/thirdparty/more_itertools-4.2.0-py2-none-any.whl similarity index 100% rename from thirdparty/dev/more_itertools-4.2.0-py2-none-any.whl rename to thirdparty/more_itertools-4.2.0-py2-none-any.whl diff --git a/thirdparty/dev/more_itertools-4.2.0-py3-none-any.whl b/thirdparty/more_itertools-4.2.0-py3-none-any.whl similarity index 100% rename from thirdparty/dev/more_itertools-4.2.0-py3-none-any.whl rename to thirdparty/more_itertools-4.2.0-py3-none-any.whl diff --git a/thirdparty/base/mpl-2.0.LICENSE b/thirdparty/mpl-2.0.LICENSE similarity index 100% rename from thirdparty/base/mpl-2.0.LICENSE rename to thirdparty/mpl-2.0.LICENSE diff --git a/thirdparty/base/pip-10.0.1-py2.py3-none-any.whl b/thirdparty/pip-10.0.1-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/pip-10.0.1-py2.py3-none-any.whl rename to thirdparty/pip-10.0.1-py2.py3-none-any.whl diff --git a/thirdparty/base/pip-10.0.1-py2.py3-none-any.whl.ABOUT b/thirdparty/pip-10.0.1-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/base/pip-10.0.1-py2.py3-none-any.whl.ABOUT rename to thirdparty/pip-10.0.1-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/base/pip.LICENSE b/thirdparty/pip.LICENSE similarity index 100% rename from thirdparty/base/pip.LICENSE rename to thirdparty/pip.LICENSE diff --git a/thirdparty/dev/pluggy-0.6.0-py2-none-any.whl b/thirdparty/pluggy-0.6.0-py2-none-any.whl similarity index 100% rename from thirdparty/dev/pluggy-0.6.0-py2-none-any.whl rename to thirdparty/pluggy-0.6.0-py2-none-any.whl diff --git a/thirdparty/dev/pluggy-0.6.0-py3-none-any.whl b/thirdparty/pluggy-0.6.0-py3-none-any.whl similarity index 100% rename from thirdparty/dev/pluggy-0.6.0-py3-none-any.whl rename to thirdparty/pluggy-0.6.0-py3-none-any.whl diff --git a/thirdparty/dev/pluggy-py2.ABOUT b/thirdparty/pluggy-py2.ABOUT similarity index 100% rename from thirdparty/dev/pluggy-py2.ABOUT rename to thirdparty/pluggy-py2.ABOUT diff --git a/thirdparty/dev/pluggy-py3.ABOUT b/thirdparty/pluggy-py3.ABOUT similarity index 100% rename from thirdparty/dev/pluggy-py3.ABOUT rename to thirdparty/pluggy-py3.ABOUT diff --git a/thirdparty/dev/pluggy.LICENSE b/thirdparty/pluggy.LICENSE similarity index 100% rename from thirdparty/dev/pluggy.LICENSE rename to thirdparty/pluggy.LICENSE diff --git a/thirdparty/dev/py-1.5.3-py2.py3-none-any.whl b/thirdparty/py-1.5.3-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/py-1.5.3-py2.py3-none-any.whl rename to thirdparty/py-1.5.3-py2.py3-none-any.whl diff --git a/thirdparty/dev/py.ABOUT b/thirdparty/py.ABOUT similarity index 100% rename from thirdparty/dev/py.ABOUT rename to thirdparty/py.ABOUT diff --git a/thirdparty/dev/py.LICENSE b/thirdparty/py.LICENSE similarity index 100% rename from thirdparty/dev/py.LICENSE rename to thirdparty/py.LICENSE diff --git a/thirdparty/dev/pytest-3.5.1-py2.py3-none-any.whl b/thirdparty/pytest-3.5.1-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/pytest-3.5.1-py2.py3-none-any.whl rename to thirdparty/pytest-3.5.1-py2.py3-none-any.whl diff --git a/thirdparty/dev/pytest.ABOUT b/thirdparty/pytest.ABOUT similarity index 100% rename from thirdparty/dev/pytest.ABOUT rename to thirdparty/pytest.ABOUT diff --git a/thirdparty/dev/pytest.LICENSE b/thirdparty/pytest.LICENSE similarity index 100% rename from thirdparty/dev/pytest.LICENSE rename to thirdparty/pytest.LICENSE diff --git a/thirdparty/dev/pyyaml.LICENSE b/thirdparty/pyyaml.LICENSE similarity index 100% rename from thirdparty/dev/pyyaml.LICENSE rename to thirdparty/pyyaml.LICENSE diff --git a/thirdparty/dev/pyyaml.py2.ABOUT b/thirdparty/pyyaml.py2.ABOUT similarity index 100% rename from thirdparty/dev/pyyaml.py2.ABOUT rename to thirdparty/pyyaml.py2.ABOUT diff --git a/thirdparty/dev/pyyaml.py3.ABOUT b/thirdparty/pyyaml.py3.ABOUT similarity index 100% rename from thirdparty/dev/pyyaml.py3.ABOUT rename to thirdparty/pyyaml.py3.ABOUT diff --git a/thirdparty/dev/pyyaml.tar.ABOUT b/thirdparty/pyyaml.tar.ABOUT similarity index 100% rename from thirdparty/dev/pyyaml.tar.ABOUT rename to thirdparty/pyyaml.tar.ABOUT diff --git a/thirdparty/base/setuptools-39.2.0-py2.py3-none-any.whl b/thirdparty/setuptools-39.2.0-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/setuptools-39.2.0-py2.py3-none-any.whl rename to thirdparty/setuptools-39.2.0-py2.py3-none-any.whl diff --git a/thirdparty/base/setuptools-39.2.0-py2.py3-none-any.whl.ABOUT b/thirdparty/setuptools-39.2.0-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/base/setuptools-39.2.0-py2.py3-none-any.whl.ABOUT rename to thirdparty/setuptools-39.2.0-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/base/setuptools.NOTICE b/thirdparty/setuptools.NOTICE similarity index 100% rename from thirdparty/base/setuptools.NOTICE rename to thirdparty/setuptools.NOTICE diff --git a/thirdparty/base/six-1.11.0-py2.py3-none-any.whl b/thirdparty/six-1.11.0-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/six-1.11.0-py2.py3-none-any.whl rename to thirdparty/six-1.11.0-py2.py3-none-any.whl diff --git a/thirdparty/base/six-1.11.0-py2.py3-none-any.whl.ABOUT b/thirdparty/six-1.11.0-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/base/six-1.11.0-py2.py3-none-any.whl.ABOUT rename to thirdparty/six-1.11.0-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/base/six.LICENSE b/thirdparty/six.LICENSE similarity index 100% rename from thirdparty/base/six.LICENSE rename to thirdparty/six.LICENSE diff --git a/thirdparty/base/virtualenv-16.0.0-py2.py3-none-any.whl b/thirdparty/virtualenv-16.0.0-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/virtualenv-16.0.0-py2.py3-none-any.whl rename to thirdparty/virtualenv-16.0.0-py2.py3-none-any.whl diff --git a/thirdparty/base/virtualenv.ABOUT b/thirdparty/virtualenv.ABOUT similarity index 100% rename from thirdparty/base/virtualenv.ABOUT rename to thirdparty/virtualenv.ABOUT diff --git a/thirdparty/base/virtualenv.LICENSE b/thirdparty/virtualenv.LICENSE similarity index 100% rename from thirdparty/base/virtualenv.LICENSE rename to thirdparty/virtualenv.LICENSE diff --git a/thirdparty/base/virtualenv.py b/thirdparty/virtualenv.py similarity index 100% rename from thirdparty/base/virtualenv.py rename to thirdparty/virtualenv.py diff --git a/thirdparty/base/virtualenv.py.ABOUT b/thirdparty/virtualenv.py.ABOUT similarity index 100% rename from thirdparty/base/virtualenv.py.ABOUT rename to thirdparty/virtualenv.py.ABOUT diff --git a/thirdparty/base/wheel-0.31.1-py2.py3-none-any.whl b/thirdparty/wheel-0.31.1-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/wheel-0.31.1-py2.py3-none-any.whl rename to thirdparty/wheel-0.31.1-py2.py3-none-any.whl diff --git a/thirdparty/base/wheel-0.31.1-py2.py3-none-any.whl.ABOUT b/thirdparty/wheel-0.31.1-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/base/wheel-0.31.1-py2.py3-none-any.whl.ABOUT rename to thirdparty/wheel-0.31.1-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/base/wheel.LICENSE b/thirdparty/wheel.LICENSE similarity index 100% rename from thirdparty/base/wheel.LICENSE rename to thirdparty/wheel.LICENSE diff --git a/thirdparty/base/wincertstore-0.2-py2.py3-none-any.whl b/thirdparty/wincertstore-0.2-py2.py3-none-any.whl similarity index 100% rename from thirdparty/base/wincertstore-0.2-py2.py3-none-any.whl rename to thirdparty/wincertstore-0.2-py2.py3-none-any.whl diff --git a/thirdparty/base/wincertstore.ABOUT b/thirdparty/wincertstore.ABOUT similarity index 100% rename from thirdparty/base/wincertstore.ABOUT rename to thirdparty/wincertstore.ABOUT diff --git a/thirdparty/base/wincertstore.LICENSE b/thirdparty/wincertstore.LICENSE similarity index 100% rename from thirdparty/base/wincertstore.LICENSE rename to thirdparty/wincertstore.LICENSE From 600ff5037b4ece697e88dbb46f09b5bb0f27f83b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 16:42:50 +0100 Subject: [PATCH 2/7] Improve readability of WITH expressions #45 This add a new render_as_readable() function that will wrap the WITH expression in parens (unless this is only a simple WITH expression) Signed-off-by: Philippe Ombredanne --- src/license_expression/__init__.py | 24 ++++++++++++++++++++++-- tests/test_license_expression.py | 24 ++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/license_expression/__init__.py b/src/license_expression/__init__.py index f856e82..4399dd3 100644 --- a/src/license_expression/__init__.py +++ b/src/license_expression/__init__.py @@ -827,6 +827,19 @@ def render(self, template='{symbol.key}', *args, **kwargs): """ return NotImplementedError + def render_as_readable(self, template='{symbol.key}', *args, **kwargs): + """ + Return a formatted string rendering for this expression using the + `template` format string to render each symbol. Add extra parenthesis + around WITH sub-expressions for improved readbility. See `render()` for + other arguments. + """ + if isinstance(self, LicenseWithExceptionSymbol): + return self.render( + template=template, wrap_in_parens=False, *args, **kwargs) + else: + return self.render(template=template, wrap_with_in_parens=True, *args, **kwargs) + class BaseSymbol(Renderable, boolean.Symbol): """ @@ -1075,10 +1088,17 @@ def decompose(self): yield self.license_symbol yield self.exception_symbol - def render(self, template='{symbol.key}', *args, **kwargs): + def render(self, template='{symbol.key}', wrap_with_in_parens=False, *args, **kwargs): + """ + Return a formatted WITH expression. If `wrap_in_parens`, wrap in parens. + """ lic = self.license_symbol.render(template, *args, **kwargs) exc = self.exception_symbol.render(template, *args, **kwargs) - return '%(lic)s WITH %(exc)s' % locals() + if wrap_with_in_parens: + temp = '(%(lic)s WITH %(exc)s)' + else: + temp = '%(lic)s WITH %(exc)s' + return temp % locals() def __hash__(self, *args, **kwargs): return hash((self.license_symbol, self.exception_symbol,)) diff --git a/tests/test_license_expression.py b/tests/test_license_expression.py index 57d9d6e..e349b0c 100644 --- a/tests/test_license_expression.py +++ b/tests/test_license_expression.py @@ -1665,6 +1665,30 @@ def test_primary_license_symbol_and_primary_license_key(self): assert expected == licensing.primary_license_symbol( parsed, decompose=False).render('{symbol.key}') + def test_render_plain(self): + l = Licensing() + result = l.parse('gpl-2.0 WITH exception-gpl-2.0-plus or MIT').render() + expected = 'gpl-2.0 WITH exception-gpl-2.0-plus OR MIT' + assert expected == result + + def test_render_as_readable_does_not_wrap_in_parens_single_with(self): + l = Licensing() + result = l.parse('gpl-2.0 WITH exception-gpl-2.0-plus').render_as_readable() + expected = 'gpl-2.0 WITH exception-gpl-2.0-plus' + assert expected == result + + def test_render_as_readable_wraps_in_parens_with_and_other_subexpressions(self): + l = Licensing() + result = l.parse('mit AND gpl-2.0 WITH exception-gpl-2.0-plus').render_as_readable() + expected = 'mit AND (gpl-2.0 WITH exception-gpl-2.0-plus)' + assert expected == result + + def test_render_as_readable_does_not_wrap_in_parens_if_no_with(self): + l = Licensing() + result1 = l.parse('gpl-2.0 and exception OR that').render_as_readable() + result2 = l.parse('gpl-2.0 and exception OR that').render() + assert result1 == result2 + class SplitAndTokenizeTest(TestCase): From c43dfcf993feb25f3dbd5ab5933a35f0ad165808 Mon Sep 17 00:00:00 2001 From: Peter Kolbus Date: Sat, 29 Jun 2019 10:56:21 -0500 Subject: [PATCH 3/7] Fix anomalous backslashes in strings Python 3.8 emits a SyntaxWarning for a string with an anomalous backslash, e.g.: :127: SyntaxWarning: invalid escape sequence \s Fix by adding the missing 'r' prefix. Change-Id: If9ad77c1e1707fa2432c8fc31eeb5e6d2d7200a5 Signed-off-by: Peter Kolbus --- src/license_expression/__init__.py | 2 +- src/license_expression/_pyahocorasick.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/license_expression/__init__.py b/src/license_expression/__init__.py index 4399dd3..ffe40e2 100644 --- a/src/license_expression/__init__.py +++ b/src/license_expression/__init__.py @@ -128,7 +128,7 @@ class ExpressionParseError(ParseError, ExpressionError): # mapping of lowercase operator strings to an operator object OPERATORS = {'and': KW_AND, 'or': KW_OR, 'with': KW_WITH} -_simple_tokenizer = re.compile(''' +_simple_tokenizer = re.compile(r''' (?P[^\s\(\)]+) | (?P\s+) diff --git a/src/license_expression/_pyahocorasick.py b/src/license_expression/_pyahocorasick.py index fefe51f..655de94 100644 --- a/src/license_expression/_pyahocorasick.py +++ b/src/license_expression/_pyahocorasick.py @@ -608,7 +608,7 @@ def overlap(self, other): # tokenize to separate text from parens -_tokenizer = re.compile(''' +_tokenizer = re.compile(r''' (?P[^\s\(\)]+) | (?P\s+) From c0e60deb283212ee48ca1705c2d5cc0d19bbb575 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 17:35:49 +0100 Subject: [PATCH 4/7] Use a flat thirdparty dir Signed-off-by: Philippe Ombredanne --- ...outcode_toolkit-3.1.1-py2.py3-none-any.whl | Bin 43546 -> 0 bytes ...e_toolkit-3.1.1-py2.py3-none-any.whl.ABOUT | 16 ------------ ...outcode_toolkit-4.0.1-py2.py3-none-any.whl | Bin ...e_toolkit-4.0.1-py2.py3-none-any.whl.ABOUT | 0 .../boolean.py-3.6-py2.py3-none-any.whl | Bin 21969 -> 0 bytes .../boolean.py-3.6-py2.py3-none-any.whl.ABOUT | 15 ------------ ...boolean.py-3.6-py2.py3-none-any.whl.NOTICE | 23 ------------------ .../boolean.py-3.7-py2.py3-none-any.whl | Bin .../boolean.py-3.7-py2.py3-none-any.whl.ABOUT | 0 ...boolean.py-3.7-py2.py3-none-any.whl.NOTICE | 0 .../saneyaml-0.1-py2.py3-none-any.whl | Bin .../saneyaml-0.1-py2.py3-none-any.whl.ABOUT | 0 12 files changed, 54 deletions(-) delete mode 100644 thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl delete mode 100644 thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl.ABOUT rename thirdparty/{dev => }/aboutcode_toolkit-4.0.1-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/aboutcode_toolkit-4.0.1-py2.py3-none-any.whl.ABOUT (100%) delete mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl delete mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT delete mode 100644 thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE rename thirdparty/{prod => }/boolean.py-3.7-py2.py3-none-any.whl (100%) rename thirdparty/{prod => }/boolean.py-3.7-py2.py3-none-any.whl.ABOUT (100%) rename thirdparty/{prod => }/boolean.py-3.7-py2.py3-none-any.whl.NOTICE (100%) rename thirdparty/{dev => }/saneyaml-0.1-py2.py3-none-any.whl (100%) rename thirdparty/{dev => }/saneyaml-0.1-py2.py3-none-any.whl.ABOUT (100%) diff --git a/thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl b/thirdparty/aboutcode_toolkit-3.1.1-py2.py3-none-any.whl deleted file mode 100644 index 72f8d999f9933a4d1bd75706fc96ab33cd630fe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43546 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�@PHZYNURDQ;mU}~K84V-&+(q9P& zsH!d#$$;jkQ9=wdUZ&e8ouMhsm1UK`CqD>aI%8<}`*b;ux%^JL7|wtT>xfCKiGcgeza%fvT>t zP1*p%trPAq{2j<&af8(OuD7sy-+=&A3Ky|7{5sgZ_qb9*M4ToQI$ihA{J^$M;4Z$^_ih<*Lnrj*?!dB86Rp;@JqUf zRSA~RfEP{ry3J&SLmYgfHg|!hIgr!?mm~m|!W|I`pLWqGRE+X)E6CFXyTqR|4izQ8 znL=&s^yUTbxYdFoGc7s{+V{C8F_S6F|bU=3H~;dJuo9ud709EKVVuOnDgZ zEoWOJ#uC=v$lPDIi@+5{823G@c@v>0$igBH6tN_2)qI#L?32hc_=4~bPwP|xpT3*#hkeLLN;4BOKt=W3m-u4i;4%1-4W_ z|AoDdOp>CD{weIEvADwMJd{{?ySveHUJM5pf=pBn9*fW(1uxHxbs@YEc8N0G&cg^R z69U@Zi0$=mwf93`Uy_X>P+%T|<%;i!kRJ>1USw3qQ+5p9YKi}mJ%QH`?xGLVhWcm6 z=(}&YD(+9cyc^93_Ng*( z-`tW-d`mSETpfb9PiF(;+L9u*9**Zb<a%E@y?{D^JHXfBzf*# zBy*X;yV%0OXAgTSvcfw3k-KJ@Qeb6W)?s$guToDIJA8K0_(te4uo zgtSot3jVIh;9({?r>3b``v-UN7nK6tDl-#3cI3r#GNx3u9lnfXs5^#X-FC)&NYbX$ zsOG43N7sBgeI8rUEmGyud^CU;NjTVPB#6(`@Su~wj@HzHl;Cw$Cbkd-;nb8Ub3qVs zy!m}ast^zE_|_EOTm8q8EqvTqb|RYUII(SuyT>3glip2Ab&~Cg8X?8F{YP(em7o8p zMJ%<5rRrEg_Q8H6%W-i7Zx6aQbJuNnycQ8V%B7hUj7dh8xr>Gsb+2}_r`x-qH~v$G zb3?D#W3C%B`dr65)9+#(0lBA%Q2t}6*72S-jVh)Gix*CVt=m~9;f&gA%fHe+H z88J-?APAFdMqP3n#i5@od4Bcu&Ur)O;V$m7jyp)u)P!63qA!#ClC042hbQl?dHO@v zIfOi!jhy4=cjLp%Zr>&n0B%`X0FM9waCU+8v6%mwh|a8%NX~44!U$4mxI?tcbTaR6 zZBOVg;;cmA3Q{iCSSv@F9m!7^5V2jEv3pHEd|mf_HP#cKOs>mk39F_Z#QTA@H9V8v zZLt3+mJFxqM}+%517D6p;#_k}&Djz^XK~P>QaPx2IduT(RJj zAZ3%6zr5a}fmjsS|9_*+>m~i~Qy%c=^e=5U{|@-KR*wHO2LQ?g=C8x#FTl?Noxj`v zTV2mj``g!x`j`DLRX%@*{M%vcC!_`Xe~{lEy?!PBn!J7z+u*+;{v(zB%KSBj{bb(O z_zm;F3GG+buQ}%@tMGTMzcSFTxL;-c6PKj@8`u6PaxEAx-k%2e*DvyVU$D{n^Xorv CvcMJq diff --git a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT deleted file mode 100644 index 3df1f3a..0000000 --- a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.ABOUT +++ /dev/null @@ -1,15 +0,0 @@ -about_resource: boolean.py-3.6-py2.py3-none-any.whl -attribute: true -checksum_md5: da39999eb131b589e84ad935dc4ca642 -checksum_sha1: d31b55e7ad2ee917232b3213afe3ae9678156a9f -copyright: Copyright (c) 2009-2016 Sebastian Kraemer, basti.kr@gmail.com and others -description: Implements boolean algebra in one module. -download_url: https://files.pythonhosted.org/packages/9b/27/d22062a221010e17935237ba4b574cd828238ea02e0765337c238466a512/boolean.py-3.6-py2.py3-none-any.whl -homepage_url: https://github.com/bastikr/boolean.py -license_expression: bsd-simplified -license_file: bsd-simplified.LICENSE -name: boolean.py -notice_file: boolean.py-3.6-py2.py3-none-any.whl.NOTICE -notice_url: https://github.com/bastikr/boolean.py/blob/master/LICENSE.txt -owner: Sebastian Kraemer -version: '3.6' diff --git a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE b/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE deleted file mode 100644 index 8819ea1..0000000 --- a/thirdparty/boolean.py-3.6-py2.py3-none-any.whl.NOTICE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2009-2017 Sebastian Kraemer, basti.kr@gmail.com -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl b/thirdparty/boolean.py-3.7-py2.py3-none-any.whl similarity index 100% rename from thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl rename to thirdparty/boolean.py-3.7-py2.py3-none-any.whl diff --git a/thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl.ABOUT b/thirdparty/boolean.py-3.7-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl.ABOUT rename to thirdparty/boolean.py-3.7-py2.py3-none-any.whl.ABOUT diff --git a/thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl.NOTICE b/thirdparty/boolean.py-3.7-py2.py3-none-any.whl.NOTICE similarity index 100% rename from thirdparty/prod/boolean.py-3.7-py2.py3-none-any.whl.NOTICE rename to thirdparty/boolean.py-3.7-py2.py3-none-any.whl.NOTICE diff --git a/thirdparty/dev/saneyaml-0.1-py2.py3-none-any.whl b/thirdparty/saneyaml-0.1-py2.py3-none-any.whl similarity index 100% rename from thirdparty/dev/saneyaml-0.1-py2.py3-none-any.whl rename to thirdparty/saneyaml-0.1-py2.py3-none-any.whl diff --git a/thirdparty/dev/saneyaml-0.1-py2.py3-none-any.whl.ABOUT b/thirdparty/saneyaml-0.1-py2.py3-none-any.whl.ABOUT similarity index 100% rename from thirdparty/dev/saneyaml-0.1-py2.py3-none-any.whl.ABOUT rename to thirdparty/saneyaml-0.1-py2.py3-none-any.whl.ABOUT From 1e1b950a3af289a48a9fe008bce03478627dc6e9 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 20:31:04 +0100 Subject: [PATCH 5/7] Bump to 1.2 Signed-off-by: Philippe Ombredanne --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0b91f1b..2dd7867 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setup( name='license-expression', - version='1.1', + version='1.2', license='apache-2.0', description=desc, long_description=desc, From 3e4e26bca49772fe999baf2b6245e3ec43026b82 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 21:10:26 +0100 Subject: [PATCH 6/7] Do not specify a minor version of Python 3.7 Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dc0a03d..2625b5d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -62,7 +62,7 @@ jobs: python_version: '3.6' python_architecture: 'x86' py37: - python_version: '3.7.4' + python_version: '3.7' python_architecture: 'x86' - template: etc/ci/azure-win.yml From 651c48da2cfe62289c1b3ae7af8c686e95421ed9 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Nov 2019 23:24:04 +0100 Subject: [PATCH 7/7] Use wrap_with_in_parens consistently #45 Reported-by: Steven Esser Signed-off-by: Philippe Ombredanne --- src/license_expression/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/license_expression/__init__.py b/src/license_expression/__init__.py index ffe40e2..e16cb67 100644 --- a/src/license_expression/__init__.py +++ b/src/license_expression/__init__.py @@ -836,7 +836,7 @@ def render_as_readable(self, template='{symbol.key}', *args, **kwargs): """ if isinstance(self, LicenseWithExceptionSymbol): return self.render( - template=template, wrap_in_parens=False, *args, **kwargs) + template=template, wrap_with_in_parens=False, *args, **kwargs) else: return self.render(template=template, wrap_with_in_parens=True, *args, **kwargs) @@ -1090,7 +1090,9 @@ def decompose(self): def render(self, template='{symbol.key}', wrap_with_in_parens=False, *args, **kwargs): """ - Return a formatted WITH expression. If `wrap_in_parens`, wrap in parens. + Return a formatted WITH expression. If `wrap_with_in_parens`, wrap in + parens a WITH expression, unless it is alone and not used with other AND + or OR sub-expressions. """ lic = self.license_symbol.render(template, *args, **kwargs) exc = self.exception_symbol.render(template, *args, **kwargs)