--- /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
--- /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
--- 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
--- /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*(# )?<?https?://\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
--- 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
--- 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
--- 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.
--- 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',
--- 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
--- 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
--- 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