Enhance empty __init__ code-smell to check module_utils (#33438)
Empty __init__ will allow us to use python namespaces with all of these files. That may be something we want to take advantage of for allowign them to be expanded by user dirs. Also might be needed for AnsiballZ or other wrapper enhancements in the future.
This commit is contained in:
parent
8e6ebae8bd
commit
7bd0af15d2
3 changed files with 9 additions and 23 deletions
|
@ -1,7 +1,10 @@
|
|||
Sanity Tests » empty-init
|
||||
=========================
|
||||
|
||||
The ``__init__.py`` files under the following directories must be empty:
|
||||
The ``__init__.py`` files under the following directories must be empty. For some of these (modules
|
||||
and tests), ``__init__.py`` files with code won't be used. For others (module_utils), we want the
|
||||
possibility of using Python namespaces which an empty ``__init__.py`` will allow for.
|
||||
|
||||
- ``lib/ansible/modules/``
|
||||
- ``lib/ansible/module_utils/``
|
||||
- ``test/units/``
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
# 2013, Michael DeHaan <michael.dehaan@gmail.com>
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Note: Do not add any code to this file. module_utils may be a namespace
|
||||
# package when using Ansible-2.1+ Anything in this file may not be available
|
||||
# if one of the other packages in the namespace is loaded first.
|
|
@ -2,8 +2,11 @@
|
|||
|
||||
found=''
|
||||
|
||||
for path in lib/ansible/modules/ test/units/; do
|
||||
files=$(find "${path}" -name __init__.py -size '+0')
|
||||
for path in lib/ansible/modules/ lib/ansible/module_utils test/units/; do
|
||||
# facts is grandfathered in but will break namespacing. Only way to fix it
|
||||
# is to deprecate and eventually remove.
|
||||
# six will break namespacing but because it is bundled we should not be overriding it
|
||||
files=$(find "${path}" -name __init__.py -size '+0' | sed '\!lib/ansible/module_utils/\(six\|facts\)/__init__.py!d')
|
||||
|
||||
if [ "${files}" ]; then
|
||||
echo "${files}"
|
||||
|
|
Loading…
Reference in a new issue