diff --git a/devel/Makefile b/devel/Makefile index 86c0e1d5bfb0..3b91d16c772d 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -3509,6 +3509,7 @@ SUBDIR += py-foolscap SUBDIR += py-fortran SUBDIR += py-freebsd + SUBDIR += py-fs SUBDIR += py-fudge SUBDIR += py-funcparserlib SUBDIR += py-fusefs diff --git a/devel/py-fs/Makefile b/devel/py-fs/Makefile new file mode 100644 index 000000000000..cf6b53582f8f --- /dev/null +++ b/devel/py-fs/Makefile @@ -0,0 +1,19 @@ +# Created by: Douglas Thrift +# $FreeBSD$ + +PORTNAME= fs +PORTVERSION= 0.4.0 +CATEGORIES= devel python +MASTER_SITES= GOOGLE_CODE +PROJECTHOST= pyfilesystem +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= douglas@douglasthrift.net +COMMENT= Python filesystem abstraction + +LICENSE= BSD + +USE_PYTHON= yes +USE_PYDISTUTILS= yes + +.include diff --git a/devel/py-fs/distinfo b/devel/py-fs/distinfo new file mode 100644 index 000000000000..f8959490989b --- /dev/null +++ b/devel/py-fs/distinfo @@ -0,0 +1,2 @@ +SHA256 (fs-0.4.0.tar.gz) = 7f8fdb1908e25c662d99cbdcd5ffe7ba5705aedc61266e15910f07d0388d67ba +SIZE (fs-0.4.0.tar.gz) = 191749 diff --git a/devel/py-fs/pkg-descr b/devel/py-fs/pkg-descr new file mode 100644 index 000000000000..110931e4940f --- /dev/null +++ b/devel/py-fs/pkg-descr @@ -0,0 +1,10 @@ +Pyfilesystem is a Python module that provides a simplified common interface to +many types of filesystem. Filesystems exposed via Pyfilesystem can also be +served over the network, or 'mounted' on the native filesystem. + +Pyfilesystem simplifies working directories and paths, even if you only intend +to work with local files. Differences in path formats between platforms are +abstracted away, and you can write code that sand-boxes any changes to a given +directory. + +WWW: http://code.google.com/p/pyfilesystem/ diff --git a/devel/py-fs/pkg-plist b/devel/py-fs/pkg-plist new file mode 100644 index 000000000000..996ef13f7edf --- /dev/null +++ b/devel/py-fs/pkg-plist @@ -0,0 +1,281 @@ +bin/fscat +bin/fscp +bin/fsinfo +bin/fsls +bin/fsmkdir +bin/fsmount +bin/fsmv +bin/fsrm +bin/fsserve +bin/fstree +%%PYTHON_SITELIBDIR%%/fs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/appdirfs.py +%%PYTHON_SITELIBDIR%%/fs/appdirfs.pyc +%%PYTHON_SITELIBDIR%%/fs/appdirfs.pyo +%%PYTHON_SITELIBDIR%%/fs/appdirs.py +%%PYTHON_SITELIBDIR%%/fs/appdirs.pyc +%%PYTHON_SITELIBDIR%%/fs/appdirs.pyo +%%PYTHON_SITELIBDIR%%/fs/base.py +%%PYTHON_SITELIBDIR%%/fs/base.pyc +%%PYTHON_SITELIBDIR%%/fs/base.pyo +%%PYTHON_SITELIBDIR%%/fs/batch.py +%%PYTHON_SITELIBDIR%%/fs/batch.pyc +%%PYTHON_SITELIBDIR%%/fs/batch.pyo +%%PYTHON_SITELIBDIR%%/fs/browsewin.py +%%PYTHON_SITELIBDIR%%/fs/browsewin.pyc +%%PYTHON_SITELIBDIR%%/fs/browsewin.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/__init__.py +%%PYTHON_SITELIBDIR%%/fs/commands/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fscat.py +%%PYTHON_SITELIBDIR%%/fs/commands/fscat.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fscat.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fscp.py +%%PYTHON_SITELIBDIR%%/fs/commands/fscp.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fscp.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsinfo.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsinfo.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsinfo.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsls.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsls.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsls.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsmkdir.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsmkdir.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsmkdir.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsmount.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsmount.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsmount.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsmv.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsmv.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsmv.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsrm.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsrm.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsrm.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fsserve.py +%%PYTHON_SITELIBDIR%%/fs/commands/fsserve.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fsserve.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/fstree.py +%%PYTHON_SITELIBDIR%%/fs/commands/fstree.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/fstree.pyo +%%PYTHON_SITELIBDIR%%/fs/commands/runner.py +%%PYTHON_SITELIBDIR%%/fs/commands/runner.pyc +%%PYTHON_SITELIBDIR%%/fs/commands/runner.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/__init__.py +%%PYTHON_SITELIBDIR%%/fs/contrib/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/subrangefile.py +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/subrangefile.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/bigfs/subrangefile.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/util.py +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/util.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/util.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/xmlobj.py +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/xmlobj.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/davfs/xmlobj.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/connection.py +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/connection.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/connection.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/test_tahoelafs.py +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/test_tahoelafs.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/test_tahoelafs.pyo +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/util.py +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/util.pyc +%%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs/util.pyo +%%PYTHON_SITELIBDIR%%/fs/errors.py +%%PYTHON_SITELIBDIR%%/fs/errors.pyc +%%PYTHON_SITELIBDIR%%/fs/errors.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/__init__.py +%%PYTHON_SITELIBDIR%%/fs/expose/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/django_storage.py +%%PYTHON_SITELIBDIR%%/fs/expose/django_storage.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/django_storage.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/__init__.py +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/libdokan.py +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/libdokan.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/dokan/libdokan.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/__init__.py +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/fuse_ctypes.py +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/fuse_ctypes.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/fuse/fuse_ctypes.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/http.py +%%PYTHON_SITELIBDIR%%/fs/expose/http.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/http.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/importhook.py +%%PYTHON_SITELIBDIR%%/fs/expose/importhook.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/importhook.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/sftp.py +%%PYTHON_SITELIBDIR%%/fs/expose/sftp.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/sftp.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/__init__.py +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/dirtemplate.py +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/dirtemplate.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/dirtemplate.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/serve_home.py +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/serve_home.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/serve_home.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/wsgi.py +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/wsgi.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/wsgi/wsgi.pyo +%%PYTHON_SITELIBDIR%%/fs/expose/xmlrpc.py +%%PYTHON_SITELIBDIR%%/fs/expose/xmlrpc.pyc +%%PYTHON_SITELIBDIR%%/fs/expose/xmlrpc.pyo +%%PYTHON_SITELIBDIR%%/fs/filelike.py +%%PYTHON_SITELIBDIR%%/fs/filelike.pyc +%%PYTHON_SITELIBDIR%%/fs/filelike.pyo +%%PYTHON_SITELIBDIR%%/fs/ftpfs.py +%%PYTHON_SITELIBDIR%%/fs/ftpfs.pyc +%%PYTHON_SITELIBDIR%%/fs/ftpfs.pyo +%%PYTHON_SITELIBDIR%%/fs/httpfs.py +%%PYTHON_SITELIBDIR%%/fs/httpfs.pyc +%%PYTHON_SITELIBDIR%%/fs/httpfs.pyo +%%PYTHON_SITELIBDIR%%/fs/local_functools.py +%%PYTHON_SITELIBDIR%%/fs/local_functools.pyc +%%PYTHON_SITELIBDIR%%/fs/local_functools.pyo +%%PYTHON_SITELIBDIR%%/fs/memoryfs.py +%%PYTHON_SITELIBDIR%%/fs/memoryfs.pyc +%%PYTHON_SITELIBDIR%%/fs/memoryfs.pyo +%%PYTHON_SITELIBDIR%%/fs/mountfs.py +%%PYTHON_SITELIBDIR%%/fs/mountfs.pyc +%%PYTHON_SITELIBDIR%%/fs/mountfs.pyo +%%PYTHON_SITELIBDIR%%/fs/multifs.py +%%PYTHON_SITELIBDIR%%/fs/multifs.pyc +%%PYTHON_SITELIBDIR%%/fs/multifs.pyo +%%PYTHON_SITELIBDIR%%/fs/opener.py +%%PYTHON_SITELIBDIR%%/fs/opener.pyc +%%PYTHON_SITELIBDIR%%/fs/opener.pyo +%%PYTHON_SITELIBDIR%%/fs/osfs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/osfs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/osfs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/osfs/watch.py +%%PYTHON_SITELIBDIR%%/fs/osfs/watch.pyc +%%PYTHON_SITELIBDIR%%/fs/osfs/watch.pyo +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_inotify.py +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_inotify.pyc +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_inotify.pyo +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_win32.py +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_win32.pyc +%%PYTHON_SITELIBDIR%%/fs/osfs/watch_win32.pyo +%%PYTHON_SITELIBDIR%%/fs/osfs/xattrs.py +%%PYTHON_SITELIBDIR%%/fs/osfs/xattrs.pyc +%%PYTHON_SITELIBDIR%%/fs/osfs/xattrs.pyo +%%PYTHON_SITELIBDIR%%/fs/path.py +%%PYTHON_SITELIBDIR%%/fs/path.pyc +%%PYTHON_SITELIBDIR%%/fs/path.pyo +%%PYTHON_SITELIBDIR%%/fs/remote.py +%%PYTHON_SITELIBDIR%%/fs/remote.pyc +%%PYTHON_SITELIBDIR%%/fs/remote.pyo +%%PYTHON_SITELIBDIR%%/fs/rpcfs.py +%%PYTHON_SITELIBDIR%%/fs/rpcfs.pyc +%%PYTHON_SITELIBDIR%%/fs/rpcfs.pyo +%%PYTHON_SITELIBDIR%%/fs/s3fs.py +%%PYTHON_SITELIBDIR%%/fs/s3fs.pyc +%%PYTHON_SITELIBDIR%%/fs/s3fs.pyo +%%PYTHON_SITELIBDIR%%/fs/sftpfs.py +%%PYTHON_SITELIBDIR%%/fs/sftpfs.pyc +%%PYTHON_SITELIBDIR%%/fs/sftpfs.pyo +%%PYTHON_SITELIBDIR%%/fs/tempfs.py +%%PYTHON_SITELIBDIR%%/fs/tempfs.pyc +%%PYTHON_SITELIBDIR%%/fs/tempfs.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/__init__.py +%%PYTHON_SITELIBDIR%%/fs/tests/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_errors.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_errors.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_errors.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_expose.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_expose.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_expose.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_fs.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_fs.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_fs.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_ftpfs.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_ftpfs.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_ftpfs.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_importhook.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_importhook.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_importhook.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_path.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_path.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_path.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_remote.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_remote.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_remote.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_s3fs.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_s3fs.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_s3fs.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_watch.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_watch.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_watch.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_wrapfs.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_wrapfs.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_wrapfs.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_xattr.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_xattr.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_xattr.pyo +%%PYTHON_SITELIBDIR%%/fs/tests/test_zipfs.py +%%PYTHON_SITELIBDIR%%/fs/tests/test_zipfs.pyc +%%PYTHON_SITELIBDIR%%/fs/tests/test_zipfs.pyo +%%PYTHON_SITELIBDIR%%/fs/utils.py +%%PYTHON_SITELIBDIR%%/fs/utils.pyc +%%PYTHON_SITELIBDIR%%/fs/utils.pyo +%%PYTHON_SITELIBDIR%%/fs/watch.py +%%PYTHON_SITELIBDIR%%/fs/watch.pyc +%%PYTHON_SITELIBDIR%%/fs/watch.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/__init__.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/__init__.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/__init__.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/debugfs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/debugfs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/debugfs.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/hidedotfilesfs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/hidedotfilesfs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/hidedotfilesfs.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/lazyfs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/lazyfs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/lazyfs.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/limitsizefs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/limitsizefs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/limitsizefs.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/readonlyfs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/readonlyfs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/readonlyfs.pyo +%%PYTHON_SITELIBDIR%%/fs/wrapfs/subfs.py +%%PYTHON_SITELIBDIR%%/fs/wrapfs/subfs.pyc +%%PYTHON_SITELIBDIR%%/fs/wrapfs/subfs.pyo +%%PYTHON_SITELIBDIR%%/fs/xattrs.py +%%PYTHON_SITELIBDIR%%/fs/xattrs.pyc +%%PYTHON_SITELIBDIR%%/fs/xattrs.pyo +%%PYTHON_SITELIBDIR%%/fs/zipfs.py +%%PYTHON_SITELIBDIR%%/fs/zipfs.pyc +%%PYTHON_SITELIBDIR%%/fs/zipfs.pyo +@dirrm %%PYTHON_SITELIBDIR%%/fs/wrapfs +@dirrm %%PYTHON_SITELIBDIR%%/fs/tests +@dirrm %%PYTHON_SITELIBDIR%%/fs/osfs +@dirrm %%PYTHON_SITELIBDIR%%/fs/expose/wsgi +@dirrm %%PYTHON_SITELIBDIR%%/fs/expose/fuse +@dirrm %%PYTHON_SITELIBDIR%%/fs/expose/dokan +@dirrm %%PYTHON_SITELIBDIR%%/fs/expose +@dirrm %%PYTHON_SITELIBDIR%%/fs/contrib/tahoelafs +@dirrm %%PYTHON_SITELIBDIR%%/fs/contrib/davfs +@dirrm %%PYTHON_SITELIBDIR%%/fs/contrib/bigfs +@dirrm %%PYTHON_SITELIBDIR%%/fs/contrib +@dirrm %%PYTHON_SITELIBDIR%%/fs/commands +@dirrm %%PYTHON_SITELIBDIR%%/fs