summaryrefslogtreecommitdiff
path: root/pyreverse/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyreverse/utils.py')
-rw-r--r--pyreverse/utils.py131
1 files changed, 0 insertions, 131 deletions
diff --git a/pyreverse/utils.py b/pyreverse/utils.py
deleted file mode 100644
index 3d12d41..0000000
--- a/pyreverse/utils.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright (c) 2002-2013 LOGILAB S.A. (Paris, FRANCE).
-# http://www.logilab.fr/ -- mailto:contact@logilab.fr
-#
-# This program 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 2 of the License, or (at your option) any later
-# version.
-#
-# This program 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
-# this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-"""
-generic classes/functions for pyreverse core/extensions
-"""
-
-import sys
-import re
-import os
-
-########### pyreverse option utils ##############################
-
-
-RCFILE = '.pyreverserc'
-
-def get_default_options():
- """
- Read config file and return list of options
- """
- options = []
- home = os.environ.get('HOME', '')
- if home:
- rcfile = os.path.join(home, RCFILE)
- try:
- options = open(rcfile).read().split()
- except IOError:
- pass # ignore if no config file found
- return options
-
-def insert_default_options():
- """insert default options to sys.argv
- """
- options = get_default_options()
- options.reverse()
- for arg in options:
- sys.argv.insert(1, arg)
-
-
-
-# astroid utilities ###########################################################
-
-SPECIAL = re.compile('^__[A-Za-z0-9]+[A-Za-z0-9_]*__$')
-PRIVATE = re.compile('^__[_A-Za-z0-9]*[A-Za-z0-9]+_?$')
-PROTECTED = re.compile('^_[_A-Za-z0-9]*$')
-
-def get_visibility(name):
- """return the visibility from a name: public, protected, private or special
- """
- if SPECIAL.match(name):
- visibility = 'special'
- elif PRIVATE.match(name):
- visibility = 'private'
- elif PROTECTED.match(name):
- visibility = 'protected'
-
- else:
- visibility = 'public'
- return visibility
-
-ABSTRACT = re.compile('^.*Abstract.*')
-FINAL = re.compile('^[A-Z_]*$')
-
-def is_abstract(node):
- """return true if the given class node correspond to an abstract class
- definition
- """
- return ABSTRACT.match(node.name)
-
-def is_final(node):
- """return true if the given class/function node correspond to final
- definition
- """
- return FINAL.match(node.name)
-
-def is_interface(node):
- # bw compat
- return node.type == 'interface'
-
-def is_exception(node):
- # bw compat
- return node.type == 'exception'
-
-
-# Helpers #####################################################################
-
-_CONSTRUCTOR = 1
-_SPECIAL = 2
-_PROTECTED = 4
-_PRIVATE = 8
-MODES = {
- 'ALL' : 0,
- 'PUB_ONLY' : _SPECIAL + _PROTECTED + _PRIVATE,
- 'SPECIAL' : _SPECIAL,
- 'OTHER' : _PROTECTED + _PRIVATE,
-}
-VIS_MOD = {'special': _SPECIAL, 'protected': _PROTECTED,
- 'private': _PRIVATE, 'public': 0}
-
-class FilterMixIn(object):
- """filter nodes according to a mode and nodes' visibility
- """
- def __init__(self, mode):
- "init filter modes"
- __mode = 0
- for nummod in mode.split('+'):
- try:
- __mode += MODES[nummod]
- except KeyError, ex:
- print >> sys.stderr, 'Unknown filter mode %s' % ex
- self.__mode = __mode
-
-
- def show_attr(self, node):
- """return true if the node should be treated
- """
- visibility = get_visibility(getattr(node, 'name', node))
- return not (self.__mode & VIS_MOD[visibility])
-