# HG changeset patch # User Thierry Florac # Date 1574879985 -3600 # Node ID ccb2abb60b46da2a2785a0f6863e5021da7a14f9 # Parent fc35426857418c34a852cfcae04453b6d2070d74 Version 0.1.3 diff -r fc3542685741 -r ccb2abb60b46 .codeclimate.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.codeclimate.yml Wed Nov 27 19:39:45 2019 +0100 @@ -0,0 +1,8 @@ +version: "2" +plugins: + pep8: + enabled: true + radon: + enabled: true + config: + python_version: 3 diff -r fc3542685741 -r ccb2abb60b46 .gitlab-ci.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitlab-ci.yml Wed Nov 27 19:39:45 2019 +0100 @@ -0,0 +1,96 @@ +image: python:3.5 + +stages: + - test + - dist + - quality + +cache: + paths: + - bin/ + - eggs/ + - parts/ + +before_script: + - export http_proxy=http://172.17.0.1:3128/ + - export HTTP_PROXY=http://172.17.0.1:3128/ + - export https_proxy=http://172.17.0.1:3128/ + - export HTTPS_PROXY=http://172.17.0.1:3128/ + +bootstrap: + stage: .pre + script: + - python3.5 bootstrap.py --buildout-version=2.12.0 + - ./bin/buildout + +test: + stage: test + script: + - pip install anybadge + - mkdir ./coverage + - ./bin/test --coverage coverage | tee ./coverage/coverage.log + - GLOBAL_COVER=$(grep -e '^[[:space:]]*[[:digit:]]\+[[:space:]]\+[[:digit:]]\+\%' ./coverage/coverage.log | + awk 'BEGIN { lines=0; cov=0 } + { lines = lines + $1; cov = cov + $1 * $2 / 100 } + END { printf "%.2f", cov / lines * 100 }') + - anybadge --label=Coverage --file=./coverage/coverage.svg --value=$GLOBAL_COVER 20=red 40=orange 60=yellow 80=green + - echo "Global tests coverage is $GLOBAL_COVER %" + artifacts: + paths: + - ./coverage/ + +dist: + stage: dist + script: + - ./bin/buildout setup setup.py clean --all sdist bdist_egg bdist_wheel + artifacts: + paths: + - ./dist + +pylint: + stage: quality + allow_failure: true + script: + - pip install pylint-exit anybadge + - mkdir ./pylint + - ./bin/pylint src/pyams_viewlet/ | tee ./pylint/pylint.log || pylint-exit $? + - PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log) + - anybadge --label=Pylint --file=./pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green + - echo "Pylint score is $PYLINT_SCORE" + artifacts: + paths: + - ./pylint/ + +quality: + stage: quality + allow_failure: true + image: docker:stable + services: + - docker:stable-dind + variables: + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" + script: + - | + if ! docker info &>/dev/null; then + if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then + export DOCKER_HOST='tcp://localhost:2375' + fi + fi + - docker run + --env SOURCE_CODE="$PWD" + --volume "$PWD":/code + --volume /var/run/docker.sock:/var/run/docker.sock + "registry.gitlab.com/gitlab-org/security-products/codequality:12-0-stable" /code + artifacts: + reports: + codequality: gl-code-quality-report.json + expire_in: 1 week + dependencies: [] + only: + refs: + - branches + - tags + except: + variables: + - $CODE_QUALITY_DISABLED diff -r fc3542685741 -r ccb2abb60b46 .installed.cfg --- a/.installed.cfg Wed Nov 27 19:37:28 2019 +0100 +++ b/.installed.cfg Wed Nov 27 19:39:45 2019 +0100 @@ -1,84 +1,88 @@ [buildout] -installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/lingua.egg-link - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/pyams-template.egg-link +installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/pyams-template.egg-link + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/lingua.egg-link /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/pyams-pagelet.egg-link + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/pyams-viewlet.egg-link /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs/pyams-utils.egg-link -parts = package i18n pyflakes test +parts = package i18n pyflakes pylint test [package] -__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pyams_upgrade - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pcreate - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pdistreport - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/ptweens - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pserve - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pviews - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pshell - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/prequest - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/proutes -__buildout_signature__ = zc.recipe.egg-d45dd885254d7f32ab7887f3b58424fb zc.buildout-d45dd885254d7f32ab7887f3b58424fb setuptools-d45dd885254d7f32ab7887f3b58424fb +__buildout_installed__ = +__buildout_signature__ = zc.recipe.egg-fc68d03e7c9074dcb88f8edb384c0f13 zc.buildout-fc68d03e7c9074dcb88f8edb384c0f13 setuptools-fc68d03e7c9074dcb88f8edb384c0f13 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs -_e = /var/local/env/pyams/eggs +_e = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs eggs = pyams_pagelet - pyams_template - pyams_utils - pyramid - pyramid_zcml - zope.component - zope.configuration - zope.contentprovider - zope.interface - zope.schema -eggs-directory = /var/local/env/pyams/eggs +eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs find-links = http://download.ztfy.org/eggs recipe = zc.recipe.egg [i18n] __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pybabel + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/polint /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pot-create - /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/polint -__buildout_signature__ = zc.recipe.egg-d45dd885254d7f32ab7887f3b58424fb zc.buildout-d45dd885254d7f32ab7887f3b58424fb setuptools-d45dd885254d7f32ab7887f3b58424fb +__buildout_signature__ = zc.recipe.egg-fc68d03e7c9074dcb88f8edb384c0f13 zc.buildout-fc68d03e7c9074dcb88f8edb384c0f13 setuptools-fc68d03e7c9074dcb88f8edb384c0f13 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs -_e = /var/local/env/pyams/eggs +_e = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs eggs = babel lingua -eggs-directory = /var/local/env/pyams/eggs +eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs find-links = http://download.ztfy.org/eggs recipe = zc.recipe.egg [pyflakes] __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pyflakes /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pyflakes -__buildout_signature__ = zc.recipe.egg-d45dd885254d7f32ab7887f3b58424fb zc.buildout-d45dd885254d7f32ab7887f3b58424fb setuptools-d45dd885254d7f32ab7887f3b58424fb +__buildout_signature__ = zc.recipe.egg-fc68d03e7c9074dcb88f8edb384c0f13 zc.buildout-fc68d03e7c9074dcb88f8edb384c0f13 setuptools-fc68d03e7c9074dcb88f8edb384c0f13 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs -_e = /var/local/env/pyams/eggs +_e = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs eggs = pyflakes -eggs-directory = /var/local/env/pyams/eggs +eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs entry-points = pyflakes=pyflakes.scripts.pyflakes:main find-links = http://download.ztfy.org/eggs initialization = if not sys.argv[1:]: sys.argv[1:] = ["src"] recipe = zc.recipe.egg scripts = pyflakes +[pylint] +__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pyreverse + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pylint + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/symilar + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/epylint + /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/pylint +__buildout_signature__ = zc.recipe.egg-fc68d03e7c9074dcb88f8edb384c0f13 zc.buildout-fc68d03e7c9074dcb88f8edb384c0f13 setuptools-fc68d03e7c9074dcb88f8edb384c0f13 +_b = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin +_d = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs +_e = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs +arguments = sys.argv[1:] +bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin +develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs +eggs = pyams_pagelet + pylint +eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs +entry-points = pylint=pylint.lint:Run +find-links = http://download.ztfy.org/eggs +recipe = zc.recipe.egg + [test] __buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/parts/test /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin/test -__buildout_signature__ = six-d45dd885254d7f32ab7887f3b58424fb zc.recipe.testrunner-d45dd885254d7f32ab7887f3b58424fb zc.recipe.egg-d45dd885254d7f32ab7887f3b58424fb zc.buildout-d45dd885254d7f32ab7887f3b58424fb zope.exceptions-d45dd885254d7f32ab7887f3b58424fb zope.interface-d45dd885254d7f32ab7887f3b58424fb zope.testrunner-d45dd885254d7f32ab7887f3b58424fb setuptools-d45dd885254d7f32ab7887f3b58424fb +__buildout_signature__ = six-fc68d03e7c9074dcb88f8edb384c0f13 zc.recipe.egg-fc68d03e7c9074dcb88f8edb384c0f13 zc.recipe.testrunner-fc68d03e7c9074dcb88f8edb384c0f13 zc.buildout-fc68d03e7c9074dcb88f8edb384c0f13 zope.exceptions-fc68d03e7c9074dcb88f8edb384c0f13 zope.interface-fc68d03e7c9074dcb88f8edb384c0f13 zope.testrunner-fc68d03e7c9074dcb88f8edb384c0f13 setuptools-fc68d03e7c9074dcb88f8edb384c0f13 _b = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin _d = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs -_e = /var/local/env/pyams/eggs +_e = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/bin develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/develop-eggs eggs = pyams_pagelet [test] -eggs-directory = /var/local/env/pyams/eggs +eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/eggs find-links = http://download.ztfy.org/eggs location = /home/tflorac/Dropbox/src/PyAMS/pyams_pagelet/parts/test recipe = zc.recipe.testrunner diff -r fc3542685741 -r ccb2abb60b46 .pylintrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.pylintrc Wed Nov 27 19:39:45 2019 +0100 @@ -0,0 +1,407 @@ +[MASTER] + +# Specify a configuration file. +#rcfile= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Pickle collected data for later comparisons. +persistent=yes + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Use multiple processes to speed up Pylint. +jobs=2 + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-whitelist= + +# Allow optimization of some AST trees. This will activate a peephole AST +# optimizer, which will apply various small optimizations. For instance, it can +# be used to obtain the result of joining multiple strings with the addition +# operator. Joining a lot of strings can lead to a maximum recursion error in +# Pylint and this flag can prevent that. It has one side effect, the resulting +# AST will be different than the one from reality. This option is deprecated +# and it will be removed in Pylint 2.0. +optimize-ast=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=import-star-module-level,old-octal-literal,oct-method,inherit-non-class,logging-format-interpolation,too-many-ancestors,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". This option is deprecated +# and it will be removed in Pylint 2.0. +files-output=no + +# Tells whether to display a full report or only the messages +reports=yes + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=100 + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma,dict-separator + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=10 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=yes + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_,_cb + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,future.builtins + + +[BASIC] + +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_ + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +property-classes=abc.abstractproperty + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for function names +function-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for variable names +variable-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct constant names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Naming hint for constant names +const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for attribute names +attr-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for argument names +argument-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming hint for class attribute names +class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming hint for inline iteration names +inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$ + +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Naming hint for class names +class-name-hint=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Naming hint for module names +module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for method names +method-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + + +[ELIF] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + + +[SPELLING] + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=regsub,TERMIOS,Bastion,rexec + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.* + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branches=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=0 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of boolean expressions in a if statement +max-bool-expr=5 + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "Exception" +overgeneral-exceptions=Exception diff -r fc3542685741 -r ccb2abb60b46 buildout.cfg --- a/buildout.cfg Wed Nov 27 19:37:28 2019 +0100 +++ b/buildout.cfg Wed Nov 27 19:39:45 2019 +0100 @@ -1,48 +1,32 @@ [buildout] -eggs-directory = /var/local/env/pyams/eggs +eggs-directory = eggs extends = http://download.ztfy.org/pyams/pyams-dev.cfg find-links = http://download.ztfy.org/eggs - socket-timeout = 3 -show-picked-versions = true -newest = false - -allow-hosts = - bitbucket.org - *.python.org - *.sourceforge.net - github.com versions = versions +show-picked-versions = true +allow-picked-versions = false newest = false -#allow-picked-versions = false src = src develop = . + ../ext/lingua ../pyams_template ../pyams_utils - ../ext/lingua + ../pyams_viewlet parts = package i18n pyflakes + pylint test [package] recipe = zc.recipe.egg -eggs = - pyams_pagelet - pyams_template - pyams_utils - pyramid - pyramid_zcml - zope.component - zope.configuration - zope.contentprovider - zope.interface - zope.schema +eggs = pyams_pagelet [i18n] recipe = zc.recipe.egg @@ -62,9 +46,17 @@ on_install = true cmds = ${buildout:develop}/bin/${pyflakes:scripts} +[pylint] +recipe = zc.recipe.egg +eggs = + ${package:eggs} + pylint +entry-points = pylint=pylint.lint:Run +arguments = sys.argv[1:] + [test] recipe = zc.recipe.testrunner eggs = pyams_pagelet [test] [versions] -pyams_pagelet = 0.1.2 +pyams_pagelet = 0.1.3 diff -r fc3542685741 -r ccb2abb60b46 docs/HISTORY.txt --- a/docs/HISTORY.txt Wed Nov 27 19:37:28 2019 +0100 +++ b/docs/HISTORY.txt Wed Nov 27 19:39:45 2019 +0100 @@ -1,6 +1,11 @@ History ======= +0.1.3 +----- + - code cleanup + - Gitlab-CI integration + 0.1.2 ----- - updated "pagelet_config" decorator diff -r fc3542685741 -r ccb2abb60b46 docs/README.txt --- a/docs/README.txt Wed Nov 27 19:37:28 2019 +0100 +++ b/docs/README.txt Wed Nov 27 19:39:45 2019 +0100 @@ -0,0 +1,29 @@ +====================== +PyAMS_pagelet package +====================== + +.. contents:: + + +What is PyAMS? +============== + +PyAMS (Pyramid Application Management Suite) is a small suite of packages written for applications +and content management with the Pyramid framework. + +**PyAMS** is actually mainly used to manage web sites through content management applications (CMS), +see PyAMS_content package), but many features are generic and can be used inside any kind of web +application. + + +What is PyAMS_pagelet? +====================== + +This package is an update of z3c.pagelet package for use with Pyramid. + +PyAMS_template allows to separate a view's Python code from it's template implementation, so that +this template can be easilly overriden for a given view or a given layer. + +PyAMS_pagelet now allows to split a view template into two parts, which are the content template +and the layout template, so that any or both of them can be overriden for a given view or layer, +without creating a new view. diff -r fc3542685741 -r ccb2abb60b46 setup.py --- a/setup.py Wed Nov 27 19:37:28 2019 +0100 +++ b/setup.py Wed Nov 27 19:39:45 2019 +0100 @@ -25,10 +25,12 @@ README = os.path.join(DOCS, 'README.txt') HISTORY = os.path.join(DOCS, 'HISTORY.txt') -version = '0.1.2' +version = '0.1.3' long_description = open(README).read() + '\n\n' + open(HISTORY).read() -tests_require = [] +tests_require = [ + 'pyams_viewlet' +] setup(name='pyams_pagelet', version=version, @@ -62,7 +64,9 @@ 'pyams_template', 'pyams_utils', 'pyramid', + 'pyramid_chameleon', 'pyramid_zcml', + 'venusian', 'zope.component', 'zope.configuration', 'zope.contentprovider', diff -r fc3542685741 -r ccb2abb60b46 src/pyams_pagelet.egg-info/PKG-INFO --- a/src/pyams_pagelet.egg-info/PKG-INFO Wed Nov 27 19:37:28 2019 +0100 +++ b/src/pyams_pagelet.egg-info/PKG-INFO Wed Nov 27 19:39:45 2019 +0100 @@ -1,13 +1,41 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pyams-pagelet -Version: 0.1.2 +Version: 0.1.3 Summary: PyAMS pagelet interfaces and classes Home-page: http://hg.ztfy.org/pyams/pyams_pagelet Author: Thierry Florac Author-email: tflorac@ulthar.net License: ZPL -Description-Content-Type: UNKNOWN -Description: +Description: ====================== + PyAMS_pagelet package + ====================== + + .. contents:: + + + What is PyAMS? + ============== + + PyAMS (Pyramid Application Management Suite) is a small suite of packages written for applications + and content management with the Pyramid framework. + + **PyAMS** is actually mainly used to manage web sites through content management applications (CMS), + see PyAMS_content package), but many features are generic and can be used inside any kind of web + application. + + + What is PyAMS_pagelet? + ====================== + + This package is an update of z3c.pagelet package for use with Pyramid. + + PyAMS_template allows to separate a view's Python code from it's template implementation, so that + this template can be easilly overriden for a given view or a given layer. + + PyAMS_pagelet now allows to split a view template into two parts, which are the content template + and the layout template, so that any or both of them can be overriden for a given view or layer, + without creating a new view. + History ======= @@ -31,3 +59,4 @@ Classifier: Programming Language :: Python Classifier: Framework :: Pyramid Classifier: Topic :: Software Development :: Libraries :: Python Modules +Provides-Extra: test diff -r fc3542685741 -r ccb2abb60b46 src/pyams_pagelet.egg-info/SOURCES.txt --- a/src/pyams_pagelet.egg-info/SOURCES.txt Wed Nov 27 19:37:28 2019 +0100 +++ b/src/pyams_pagelet.egg-info/SOURCES.txt Wed Nov 27 19:39:45 2019 +0100 @@ -4,6 +4,7 @@ docs/README.txt src/pyams_pagelet/__init__.py src/pyams_pagelet/configure.zcml +src/pyams_pagelet/interfaces.py src/pyams_pagelet/meta.zcml src/pyams_pagelet/metaconfigure.py src/pyams_pagelet/metadirectives.py @@ -16,8 +17,7 @@ src/pyams_pagelet.egg-info/not-zip-safe src/pyams_pagelet.egg-info/requires.txt src/pyams_pagelet.egg-info/top_level.txt -src/pyams_pagelet/doctests/README.txt -src/pyams_pagelet/interfaces/__init__.py +src/pyams_pagelet/doctests/README.rst src/pyams_pagelet/tests/__init__.py src/pyams_pagelet/tests/test_utilsdocs.py src/pyams_pagelet/tests/test_utilsdocstrings.py \ No newline at end of file diff -r fc3542685741 -r ccb2abb60b46 src/pyams_pagelet.egg-info/requires.txt --- a/src/pyams_pagelet.egg-info/requires.txt Wed Nov 27 19:37:28 2019 +0100 +++ b/src/pyams_pagelet.egg-info/requires.txt Wed Nov 27 19:39:45 2019 +0100 @@ -2,7 +2,9 @@ pyams_template pyams_utils pyramid +pyramid_chameleon pyramid_zcml +venusian zope.component zope.configuration zope.contentprovider @@ -10,3 +12,4 @@ zope.schema [test] +pyams_viewlet