Permalink
Browse files

- updated rope

  • Loading branch information...
1 parent 752d6cd commit 92fcb6e9c1719327128454a636732afd6bd3f7e9 @JulianEberius committed Sep 23, 2011
Showing with 14 additions and 93 deletions.
  1. +1 −0 .gitignore
  2. +6 −1 rope/base/builtins.py
  3. +3 −88 rope/base/project.py
  4. +2 −2 rope/base/stdmods.py
  5. +2 −1 rope/refactor/patchedast.py
  6. +0 −1 ropemate/__init__.py
View
@@ -4,3 +4,4 @@
python_debugger.py
.project
.DS_Store
+rope_repo
View
@@ -123,7 +123,12 @@ def _object_attributes(obj, parent):
for name in dir(obj):
if name == 'None':
continue
- child = getattr(obj, name)
+ try:
+ child = getattr(obj, name)
+ except AttributeError:
+ # descriptors are allowed to raise AttributeError
+ # even if they are in dir()
+ continue
pyobject = None
if inspect.isclass(child):
pyobject = BuiltinClass(child, {}, parent=parent)
View
@@ -9,93 +9,6 @@
from rope.base.resourceobserver import *
from rope.base.resources import File, Folder, _ResourceMatcher
-DEFAULT_PROJECT_STRING = '''# The default ``config.py``
-
-
-def set_prefs(prefs):
- """This function is called before opening the project"""
-
- # Specify which files and folders to ignore in the project.
- # Changes to ignored resources are not added to the history and
- # VCSs. Also they are not returned in `Project.get_files()`.
- # Note that ``?`` and ``*`` match all characters but slashes.
- # '*.pyc': matches 'test.pyc' and 'pkg/test.pyc'
- # 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc'
- # '.svn': matches 'pkg/.svn' and all of its children
- # 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o'
- # 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o'
- prefs['ignored_resources'] = ['*.pyc', '*~', '.ropeproject',
- '.hg', '.svn', '_svn', '.git']
-
- # Specifies which files should be considered python files. It is
- # useful when you have scripts inside your project. Only files
- # ending with ``.py`` are considered to be python files by
- # default.
- #prefs['python_files'] = ['*.py']
-
- # Custom source folders: By default rope searches the project
- # for finding source folders (folders that should be searched
- # for finding modules). You can add paths to that list. Note
- # that rope guesses project source folders correctly most of the
- # time; use this if you have any problems.
- # The folders should be relative to project root and use '/' for
- # separating folders regardless of the platform rope is running on.
- # 'src/my_source_folder' for instance.
- #prefs.add('source_folders', 'src')
-
- # You can extend python path for looking up modules
- #prefs.add('python_path', '~/python/')
-
- # Should rope save object information or not.
- prefs['save_objectdb'] = True
- prefs['compress_objectdb'] = False
-
- # If `True`, rope analyzes each module when it is being saved.
- prefs['automatic_soa'] = True
- # The depth of calls to follow in static object analysis
- prefs['soa_followed_calls'] = 0
-
- # If `False` when running modules or unit tests "dynamic object
- # analysis" is turned off. This makes them much faster.
- prefs['perform_doa'] = True
-
- # Rope can check the validity of its object DB when running.
- prefs['validate_objectdb'] = True
-
- # How many undos to hold?
- prefs['max_history_items'] = 32
-
- # Shows whether to save history across sessions.
- prefs['save_history'] = True
- prefs['compress_history'] = False
-
- # Set the number spaces used for indenting. According to
- # :PEP:`8`, it is best to use 4 spaces. Since most of rope's
- # unit-tests use 4 spaces it is more reliable, too.
- prefs['indent_size'] = 4
-
- # Builtin and c-extension modules that are allowed to be imported
- # and inspected by rope.
- prefs['extension_modules'] = []
-
- # Add all standard c-extensions to extension_modules list.
- prefs['import_dynload_stdmods'] = True
-
- # If `True` modules with syntax errors are considered to be empty.
- # The default value is `False`; When `False` syntax errors raise
- # `rope.base.exceptions.ModuleSyntaxError` exception.
- prefs['ignore_syntax_errors'] = False
-
- # If `True`, rope ignores unresolvable imports. Otherwise, they
- # appear in the importing namespace.
- prefs['ignore_bad_imports'] = False
-
-
-def project_opened(project):
- """This function is called after opening the project"""
- # Do whatever you like here!
-'''
-
class _Project(object):
@@ -273,7 +186,9 @@ def _init_prefs(self, prefs):
run_globals['project_opened'](self)
def _default_config(self):
- return DEFAULT_PROJECT_STRING
+ import rope.base.default_config
+ import inspect
+ return inspect.getsource(rope.base.default_config)
def _init_other_parts(self):
# Forcing the creation of `self.pycore` to register observers
View
@@ -5,8 +5,8 @@
def _stdlib_path():
- import inspect
- return os.path.dirname(inspect.getsourcefile(inspect))
+ import distutils.sysconfig
+ return distutils.sysconfig.get_python_lib(standard_lib=True)
@utils.cached(1)
def standard_modules():
@@ -204,7 +204,8 @@ def _find_next_statement_start(self):
for children in reversed(self.children_stack):
for child in children:
if isinstance(child, ast.stmt):
- return self.lines.get_line_start(child.lineno)
+ return child.col_offset \
+ + self.lines.get_line_start(child.lineno)
return len(self.source.source)
_operators = {'And': 'and', 'Or': 'or', 'Add': '+', 'Sub': '-', 'Mult': '*',
View
@@ -21,7 +21,6 @@ def __enter__(self):
project_dir = self.find_ropeproject(file_path)
if project_dir:
self.project = project.Project(project_dir)
- # no use to have auto import for a single file project
if not os.path.exists("%s/.ropeproject/globalnames" % project_dir):
importer = autoimport.AutoImport(
project=self.project, observe=True)

0 comments on commit 92fcb6e

Please sign in to comment.