degal/filesystem.py
changeset 77 2a53c5ade434
parent 76 e22d9f699081
child 79 e5400304a3d3
--- a/degal/filesystem.py	Fri Jun 05 23:42:03 2009 +0300
+++ b/degal/filesystem.py	Fri Jun 05 23:59:14 2009 +0300
@@ -205,9 +205,11 @@
             else :
                 raise
     
-    # alias str/unicode
-    __str__ = path
-    __unicode__ = unicodepath
+    def __str__ (self) :
+        return self.path
+
+    def __unicode__ (self) :
+        return self.unicodepath
     
     def __repr__ (self) :
         """
@@ -314,7 +316,8 @@
 
         _, fileext = os.path.splitext(self.name)
 
-        return fileext.rstrip('.')
+        # strip leading .
+        return fileext[1:]
 
     def matchext (self, ext_list) :
         """
@@ -347,14 +350,14 @@
             return codecs.open(self.path, mode, encoding, errors, bufsize)
 
         else :
-            return open(self.path, mode, bufsize)
+            return open(self.path, mode, *(arg for arg in (bufsize, ) if arg is not None))
 
-    def open_write (self, encoding=None, errors=None, bufsize=None) :
+    def open_write (self, *args, **kwargs) :
         """
             Open for write using open('w').
         """
 
-        return self.open('w', encoding, errors, bufsize)
+        return self.open('w', *args, **kwargs)
 
     def copy_from (self, file) :
         """
@@ -393,7 +396,7 @@
             # create it!
             subdir.mkdir()
 
-        return dir
+        return subdir
     
     def test_subdir (self, name, create=False) :
         """
@@ -429,7 +432,7 @@
             Returns a File object representing the name underneath this dir
         """
 
-        return Directory(self, name=name)
+        return File(self, name=name)
 
     def test (self) :
         """