Commits

Ali Gholami Rudi  committed 7369a6a

Considering releasing a library package

  • Participants
  • Parent commits cca21a7

Comments (0)

Files changed (6)

 * Using as a library: `docs/dev/library.txt`_
 * Contributing: `docs/dev/contributing.txt`_
 
+To change rope IDE preferences edit your ``~/.rope`` (which is created
+the first time you start rope).  To change your project preferences
+edit ``$PROJECT_ROOT/.ropeproject/config.py`` where ``$PROJECT_ROOT``
+is the root folder of your project (this file is created the first
+time you open a project).
+
 If you don't like rope's default emacs-like keybinding, edit the
-default ``~/.rope`` file (created the first time you start rope) and
-change `i_like_emacs` variable to `False`.
+default ``~/.rope`` file and change `i_like_emacs` variable to
+`False`.
 
 
 Project Road Map

File docs/dev/issues.txt

 To Be Discussed
 ===============
 
+* `Releasing library package`_
 * `Memory management`_
 * `Getting ready for Python 3.0`_
 * Should `rope.base` be thread safe? which parts?
 
 
+Releasing Library Package
+=========================
+
+As it is written in ``README.txt`` file the initial goal of rope was
+to release a library if it achieved its goals:
+
+  The type inference and refactoring parts will not be dependent on
+  *rope* IDE and if successful, will be released as standalone
+  programs and libraries so that other projects may use them.
+
+I think it is now the time.
+
+Things to do:
+
+* A new ``setup.py`` for making and registering library package
+* The library package will contain `rope`, `rope.base`, and
+  `rope.refactor` packages
+
+Issues:
+
+* The name of packages: using ``rope`` for the library and
+  ``ropeide``, ``rope_ide``, ``rope-ide`` or ``pyrope`` for the IDE
+* Should the IDE contain the library?
+* Separating common, library, and IDE documents
+
+
 Memory Management
 =================
 

File docs/dev/stories.txt

 * Extract class
 
 
-* Split tuple assignment refactoring
-
-
 * Supporting templates in text modes
 
 
 * Lambdas as functions; consider their parameters
 
 
+* Split tuple assignment refactoring
+
+
+* Adding support for Mercurial VCS
+
+
 > Public Release 0.6m3 : June 17, 2007
+
+
+* Self assignment warning

File docs/dev/workingon.txt

 Small Stories
 =============
 
-* Solve importing problems
-* Refactor `objectinfer` module
-* Move `TemporaryScope` to a better place
-
 * Handling strings in following lines in `patchedast`
 * Extracting subexpressions; look at `extracttest` for more info
 * Create ... and implicit interfaces
 * More documentation for using rope as a library
 * Document features and organize them
 * Explain why rope does not stop users from performing wrong
-  refactorings
+  refactorings

File rope/base/oi/objectinfer.py

 from rope.base import evaluate, pyobjects, builtins, pynames
-from rope.base.oi import dynamicoi, staticoi
+from rope.base.oi import staticoi
 
 
 class ObjectInfer(object):

File ropetest/objectinfertest.py

         self.assertEquals(c1_class, a_var.get_type())
         self.assertEquals(c2_class, b_var.get_type())
 
+    def test_list_comprehensions_and_multiple_iters(self):
+        mod = self.pycore.get_string_module(
+            'class C1(object):\n    pass\nclass C2(object):\n    pass\n'
+            'l = [(c1, c2) for c1, c2 in [(C1(), C2())]]\n'
+            'a, b = l[0]\n')
+        c1_class = mod.get_attribute('C1').get_object()
+        c2_class = mod.get_attribute('C2').get_object()
+        a_var = mod.get_attribute('a').get_object()
+        b_var = mod.get_attribute('b').get_object()
+        self.assertEquals(c1_class, a_var.get_type())
+        self.assertEquals(c2_class, b_var.get_type())
+
 
 def suite():
     result = unittest.TestSuite()