99cfd671be
The deprecation shim created by Doug turns out to be rather useful. It emits a warning when an global (attribute of a module) is referenced but that global has been moved to another module. This update makes the following changes to the shim: - Rename it to _MovedGlobals to better describe what it is a debtcollector for. - Use inspect to get the original reference and to check that _MovedGlobals is called from the last line of a module. - Save the old reference automatically in the instance to prevent it from getting garbage collected. - Beef up the _moved_global() method for moving/renaming individual globals, allowing it to move and rename or rename in place. Change-Id: I868aa4a3129dd05467a103364088efbb86bc5d0f
50 lines
1.5 KiB
Python
Executable File
50 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
Check for globals that are now available in neutron-lib
|
|
"""
|
|
|
|
from __future__ import print_function
|
|
|
|
from neutron_lib import constants as lconst
|
|
from neutron_lib import exceptions as lexc
|
|
|
|
from neutron.common import constants as nconst
|
|
from neutron.common import exceptions as nexc
|
|
|
|
|
|
def check_globals(things, nmod, lmod):
|
|
core = vars(nmod)['_mg__my_globals']
|
|
lib = vars(lmod)
|
|
moved_things = []
|
|
for thing in core:
|
|
if thing.startswith('__') or thing == '_':
|
|
continue
|
|
if thing in lib:
|
|
moved_things.append(thing)
|
|
if moved_things:
|
|
print("\nThese %s have moved to neutron-lib:" % things)
|
|
for moved_thing in sorted(moved_things):
|
|
print(" %s" % moved_thing)
|
|
|
|
|
|
def main():
|
|
check_globals('constants', nconst, lconst)
|
|
check_globals('exceptions', nexc, lexc)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|