Files
2012-02-21 01:15:00 -05:00

1 line
148 KiB
JSON

[{"user_id": 12404, "stars": [{"date_created": 1302358121.3313501, "user_id": 1284}], "topic_id": 18155, "date_created": 1302296329.6984341, "message": "/help os", "group_id": 292, "id": 595919}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302295759.375808, "message": "Python Library Documentation: package django\n\nNAME\n django\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/django/__init__.py\n\nPACKAGE CONTENTS\n bin (package)\n conf (package)\n contrib (package)\n core (package)\n db (package)\n dispatch (package)\n forms (package)\n http (package)\n middleware (package)\n shortcuts (package)\n template (package)\n templatetags (package)\n test (package)\n utils (package)\n views (package)\n\nFUNCTIONS\n get_version()\n\nDATA\n VERSION = (1, 2, 5, 'final', 0)", "group_id": 292, "id": 595872}, {"user_id": 1284, "stars": [{"date_created": 1303753963.721242, "user_id": 1963}], "topic_id": 18155, "date_created": 1302295798.2072251, "message": "Source is available at: https://github.com/llimllib/pyphage", "group_id": 292, "id": 595876}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295829.9206359, "message": "please go and implement more plugins!", "group_id": 292, "id": 595881}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295746.953615, "message": "/doc os.path.join", "group_id": 292, "id": 595869}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296021.0953851, "message": "(he shouldn't be blackhat-hackable, but if he is, remember that you'd just be hacking my Mac Mini, which would just be mean :)", "group_id": 292, "id": 595897}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295730.5684669, "message": "/help", "group_id": 292, "id": 595865}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295758.1197529, "message": "/doc django", "group_id": 292, "id": 595871}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296391.3103981, "message": "and yeesh the os docs are verbose", "group_id": 292, "id": 595925}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297422.4844899, "message": "doesn't do anything without arguments", "group_id": 292, "id": 596069}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295821.069773, "message": "he should be listening to all python conversations; if you want him in another group, just let me know", "group_id": 292, "id": 595879}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297574.087682, "message": "/doc pydoc", "group_id": 292, "id": 596086}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297690.7554419, "message": "uhh ;] licensed under ;]", "group_id": 292, "id": 596106}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298187.695554, "message": "ok thnx for the great idea dude def. going to follow up on this", "group_id": 292, "id": 596219}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302295740.523248, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>", "group_id": 292, "id": 595867}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302296352.994602, "message": "Python Library Documentation: module os\n\nNAME\n os - OS routines for Mac, NT, or Posix depending on what system we're on.\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/os.py\n\nDESCRIPTION\n This exports:\n - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc.\n - os.path is one of the modules posixpath, or ntpath\n - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos'\n - os.curdir is a string representing the current directory ('.' or ':')\n - os.pardir is a string representing the parent directory ('..' or '::')\n - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\\\')\n - os.extsep is the extension separator ('.' or '/')\n - os.altsep is the alternate pathname separator (None or '/')\n - os.pathsep is the component separator used in $PATH etc\n - os.linesep is the line separator in text files ('\\r' or '\\n' or '\\r\\n')\n - os.defpath is the default search path for executables\n - os.devnull is the file path of the null device ('/dev/null', etc.)\n \n Programs that import and use 'os' stand a better chance of being\n portable between different platforms. Of course, they must then\n only use functions that are defined by all platforms (e.g., unlink\n and opendir), and leave all pathname manipulation to os.path\n (e.g., split and join).\n\nCLASSES\n __builtin__.object\n posix.stat_result\n posix.statvfs_result\n exceptions.EnvironmentError(exceptions.StandardError)\n exceptions.OSError\n \n error = class OSError(EnvironmentError)\n | OS system call failed.\n | \n | Method resolution order:\n | OSError\n | EnvironmentError\n | StandardError\n | Exception\n | BaseException\n | __builtin__.object\n | \n | Methods defined here:\n | \n | __init__(...)\n | x.__init__(...) initializes x; see help(type(x)) for signature\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T\n | \n | ----------------------------------------------------------------------\n | Methods inherited from EnvironmentError:\n | \n | __reduce__(...)\n | \n | __str__(...)\n | x.__str__() <==> str(x)\n | \n | ----------------------------------------------------------------------\n | Data descriptors inherited from EnvironmentError:\n | \n | errno\n | exception errno\n | \n | filename\n | exception filename\n | \n | strerror\n | exception strerror\n | \n | ----------------------------------------------------------------------\n | Methods inherited from BaseException:\n | \n | __delattr__(...)\n | x.__delattr__('name') <==> del x.name\n | \n | __getattribute__(...)\n | x.__getattribute__('name') <==> x.name\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __getslice__(...)\n | x.__getslice__(i, j) <==> x[i:j]\n | \n | Use of negative indices is not supported.\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | __setattr__(...)\n | x.__setattr__('name', value) <==> x.name = value\n | \n | __setstate__(...)\n | \n | __unicode__(...)\n | \n | ----------------------------------------------------------------------\n | Data descriptors inherited from BaseException:\n | \n | __dict__\n | \n | args\n | \n | message\n \n class stat_result(__builtin__.object)\n | stat_result: Result from stat or lstat.\n | \n | This object may be accessed either as a tuple of\n | (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)\n | or via the attributes st_mode, st_ino, st_dev, st_nlink, st_uid, and so on.\n | \n | Posix/windows: If your platform supports st_blksize, st_blocks, st_rdev,\n | or st_flags, they are available as attributes only.\n | \n | See os.stat for more information.\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x\n | \n | __eq__(...)\n | x.__eq__(y) <==> x==y\n | \n | __ge__(...)\n | x.__ge__(y) <==> x>=y\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __getslice__(...)\n | x.__getslice__(i, j) <==> x[i:j]\n | \n | Use of negative indices is not supported.\n | \n | __gt__(...)\n | x.__gt__(y) <==> x>y\n | \n | __hash__(...)\n | x.__hash__() <==> hash(x)\n | \n | __le__(...)\n | x.__le__(y) <==> x<=y\n | \n | __len__(...)\n | x.__len__() <==> len(x)\n | \n | __lt__(...)\n | x.__lt__(y) <==> x<y\n | \n | __mul__(...)\n | x.__mul__(n) <==> x*n\n | \n | __ne__(...)\n | x.__ne__(y) <==> x!=y\n | \n | __reduce__(...)\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | __rmul__(...)\n | x.__rmul__(n) <==> n*x\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | st_atime\n | time of last access\n | \n | st_blksize\n | blocksize for filesystem I/O\n | \n | st_blocks\n | number of blocks allocated\n | \n | st_ctime\n | time of last change\n | \n | st_dev\n | device\n | \n | st_flags\n | user defined flags for file\n | \n | st_gen\n | generation number\n | \n | st_gid\n | group ID of owner\n | \n | st_ino\n | inode\n | \n | st_mode\n | protection bits\n | \n | st_mtime\n | time of last modification\n | \n | st_nlink\n | number of hard links\n | \n | st_rdev\n | device type (if inode device)\n | \n | st_size\n | total size, in bytes\n | \n | st_uid\n | user ID of owner\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T\n | \n | n_fields = 18\n | \n | n_sequence_fields = 10\n | \n | n_unnamed_fields = 3\n \n class statvfs_result(__builtin__.object)\n | statvfs_result: Result from statvfs or fstatvfs.\n | \n | This object may be accessed either as a tuple of\n | (bsize, frsize, blocks, bfree, bavail, files, ffree, favail, flag, namemax),\n | or via the attributes f_bsize, f_frsize, f_blocks, f_bfree, and so on.\n | \n | See os.statvfs for more information.\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x\n | \n | __eq__(...)\n | x.__eq__(y) <==> x==y\n | \n | __ge__(...)\n | x.__ge__(y) <==> x>=y\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __getslice__(...)\n | x.__getslice__(i, j) <==> x[i:j]\n | \n | Use of negative indices is not supported.\n | \n | __gt__(...)\n | x.__gt__(y) <==> x>y\n | \n | __hash__(...)\n | x.__hash__() <==> hash(x)\n | \n | __le__(...)\n | x.__le__(y) <==> x<=y\n | \n | __len__(...)\n | x.__len__() <==> len(x)\n | \n | __lt__(...)\n | x.__lt__(y) <==> x<y\n | \n | __mul__(...)\n | x.__mul__(n) <==> x*n\n | \n | __ne__(...)\n | x.__ne__(y) <==> x!=y\n | \n | __reduce__(...)\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | __rmul__(...)\n | x.__rmul__(n) <==> n*x\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | f_bavail\n | \n | f_bfree\n | \n | f_blocks\n | \n | f_bsize\n | \n | f_favail\n | \n | f_ffree\n | \n | f_files\n | \n | f_flag\n | \n | f_frsize\n | \n | f_namemax\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T\n | \n | n_fields = 10\n | \n | n_sequence_fields = 10\n | \n | n_unnamed_fields = 0\n\nFUNCTIONS\n WCOREDUMP(...)\n WCOREDUMP(status) -> bool\n \n Return True if the process returning 'status' was dumped to a core file.\n \n WEXITSTATUS(...)\n WEXITSTATUS(status) -> integer\n \n Return the process return code from 'status'.\n \n WIFCONTINUED(...)\n WIFCONTINUED(status) -> bool\n \n Return True if the process returning 'status' was continued from a\n job control stop.\n \n WIFEXITED(...)\n WIFEXITED(status) -> bool\n \n Return true if the process returning 'status' exited using the exit()\n system call.\n \n WIFSIGNALED(...)\n WIFSIGNALED(status) -> bool\n \n Return True if the process returning 'status' was terminated by a signal.\n \n WIFSTOPPED(...)\n WIFSTOPPED(status) -> bool\n \n Return True if the process returning 'status' was stopped.\n \n WSTOPSIG(...)\n WSTOPSIG(status) -> integer\n \n Return the signal that stopped the process that provided\n the 'status' value.\n \n WTERMSIG(...)\n WTERMSIG(status) -> integer\n \n Return the signal that terminated the process that provided the 'status'\n value.\n \n abort(...)\n abort() -> does not return!\n \n Abort the interpreter immediately. This 'dumps core' or otherwise fails\n in the hardest way possible on the hosting operating system.\n \n access(...)\n access(path, mode) -> True if granted, False otherwise\n \n Use the real uid/gid to test for access to a path. Note that most\n operations will use the effective uid/gid, therefore this routine can\n be used in a suid/sgid environment to test if the invoking user has the\n specified access to the path. The mode argument can be F_OK to test\n existence, or the inclusive-OR of R_OK, W_OK, and X_OK.\n \n chdir(...)\n chdir(path)\n \n Change the current working directory to the specified path.\n \n chmod(...)\n chmod(path, mode)\n \n Change the access permissions of a file.\n \n chown(...)\n chown(path, uid, gid)\n \n Change the owner and group id of path to the numeric uid and gid.\n \n chroot(...)\n chroot(path)\n \n Change root directory to path.\n \n close(...)\n close(fd)\n \n Close a file descriptor (for low level IO).\n \n closerange(...)\n closerange(fd_low, fd_high)\n \n Closes all file descriptors in [fd_low, fd_high), ignoring errors.\n \n confstr(...)\n confstr(name) -> string\n \n Return a string-valued system configuration variable.\n \n ctermid(...)\n ctermid() -> string\n \n Return the name of the controlling terminal for this process.\n \n dup(...)\n dup(fd) -> fd2\n \n Return a duplicate of a file descriptor.\n \n dup2(...)\n dup2(old_fd, new_fd)\n \n Duplicate file descriptor.\n \n execl(file, *args)\n execl(file, *args)\n \n Execute the executable file with argument list args, replacing the\n current process.\n \n execle(file, *args)\n execle(file, *args, env)\n \n Execute the executable file with argument list args and\n environment env, replacing the current process.\n \n execlp(file, *args)\n execlp(file, *args)\n \n Execute the executable file (which is searched for along $PATH)\n with argument list args, replacing the current process.\n \n execlpe(file, *args)\n execlpe(file, *args, env)\n \n Execute the executable file (which is searched for along $PATH)\n with argument list args and environment env, replacing the current\n process.\n \n execv(...)\n execv(path, args)\n \n Execute an executable path with arguments, replacing current process.\n \n path: path of executable file\n args: tuple or list of strings\n \n execve(...)\n execve(path, args, env)\n \n Execute a path with arguments and environment, replacing current process.\n \n path: path of executable file\n args: tuple or list of arguments\n env: dictionary of strings mapping to strings\n \n execvp(file, args)\n execvp(file, args)\n \n Execute the executable file (which is searched for along $PATH)\n with argument list args, replacing the current process.\n args may be a list or tuple of strings.\n \n execvpe(file, args, env)\n execvpe(file, args, env)\n \n Execute the executable file (which is searched for along $PATH)\n with argument list args and environment env , replacing the\n current process.\n args may be a list or tuple of strings.\n \n fchdir(...)\n fchdir(fildes)\n \n Change to the directory of the given file descriptor. fildes must be\n opened on a directory, not a file.\n \n fchmod(...)\n fchmod(fd, mode)\n \n Change the access permissions of the file given by file\n descriptor fd.\n \n fchown(...)\n fchown(fd, uid, gid)\n \n Change the owner and group id of the file given by file descriptor\n fd to the numeric uid and gid.\n \n fdopen(...)\n fdopen(fd [, mode='r' [, bufsize]]) -> file_object\n \n Return an open file object connected to a file descriptor.\n \n fork(...)\n fork() -> pid\n \n Fork a child process.\n Return 0 to child process and PID of child to parent process.\n \n forkpty(...)\n forkpty() -> (pid, master_fd)\n \n Fork a new process with a new pseudo-terminal as controlling tty.\n \n Like fork(), return 0 as pid to child process, and PID of child to parent.\n To both, return fd of newly opened pseudo-terminal.\n \n fpathconf(...)\n fpathconf(fd, name) -> integer\n \n Return the configuration limit name for the file descriptor fd.\n If there is no limit, return -1.\n \n fstat(...)\n fstat(fd) -> stat result\n \n Like stat(), but for an open file descriptor.\n \n fstatvfs(...)\n fstatvfs(fd) -> statvfs result\n \n Perform an fstatvfs system call on the given fd.\n \n fsync(...)\n fsync(fildes)\n \n force write of file with filedescriptor to disk.\n \n ftruncate(...)\n ftruncate(fd, length)\n \n Truncate a file to a specified length.\n \n getcwd(...)\n getcwd() -> path\n \n Return a string representing the current working directory.\n \n getcwdu(...)\n getcwdu() -> path\n \n Return a unicode string representing the current working directory.\n \n getegid(...)\n getegid() -> egid\n \n Return the current process's effective group id.\n \n getenv(key, default=None)\n Get an environment variable, return None if it doesn't exist.\n The optional second argument can specify an alternate default.\n \n geteuid(...)\n geteuid() -> euid\n \n Return the current process's effective user id.\n \n getgid(...)\n getgid() -> gid\n \n Return the current process's group id.\n \n getgroups(...)\n getgroups() -> list of group IDs\n \n Return list of supplemental group IDs for the process.\n \n getloadavg(...)\n getloadavg() -> (float, float, float)\n \n Return the number of processes in the system run queue averaged over\n the last 1, 5, and 15 minutes or raises OSError if the load average\n was unobtainable\n \n getlogin(...)\n getlogin() -> string\n \n Return the actual login name.\n \n getpgid(...)\n getpgid(pid) -> pgid\n \n Call the system call getpgid().\n \n getpgrp(...)\n getpgrp() -> pgrp\n \n Return the current process group id.\n \n getpid(...)\n getpid() -> pid\n \n Return the current process id\n \n getppid(...)\n getppid() -> ppid\n \n Return the parent's process id.\n \n getsid(...)\n getsid(pid) -> sid\n \n Call the system call getsid().\n \n getuid(...)\n getuid() -> uid\n \n Return the current process's user id.\n \n initgroups(...)\n initgroups(username, gid) -> None\n \n Call the system initgroups() to initialize the group access list with all of\n the groups of which the specified username is a member, plus the specified\n group id.\n \n isatty(...)\n isatty(fd) -> bool\n \n Return True if the file descriptor 'fd' is an open file descriptor\n connected to the slave end of a terminal.\n \n kill(...)\n kill(pid, sig)\n \n Kill a process with a signal.\n \n killpg(...)\n killpg(pgid, sig)\n \n Kill a process group with a signal.\n \n lchmod(...)\n lchmod(path, mode)\n \n Change the access permissions of a file. If path is a symlink, this\n affects the link itself rather than the target.\n \n lchown(...)\n lchown(path, uid, gid)\n \n Change the owner and group id of path to the numeric uid and gid.\n This function will not follow symbolic links.\n \n link(...)\n link(src, dst)\n \n Create a hard link to a file.\n \n listdir(...)\n listdir(path) -> list_of_strings\n \n Return a list containing the names of the entries in the directory.\n \n path: path of directory to list\n \n The list is in arbitrary order. It does not include the special\n entries '.' and '..' even if they are present in the directory.\n \n lseek(...)\n lseek(fd, pos, how) -> newpos\n \n Set the current position of a file descriptor.\n \n lstat(...)\n lstat(path) -> stat result\n \n Like stat(path), but do not follow symbolic links.\n \n major(...)\n major(device) -> major number\n Extracts a device major number from a raw device number.\n \n makedev(...)\n makedev(major, minor) -> device number\n Composes a raw device number from the major and minor device numbers.\n \n makedirs(name, mode=511)\n makedirs(path [, mode=0777])\n \n Super-mkdir; create a leaf directory and all intermediate ones.\n Works like mkdir, except that any intermediate path segment (not\n just the rightmost) will be created if it does not exist. This is\n recursive.\n \n minor(...)\n minor(device) -> minor number\n Extracts a device minor number from a raw device number.\n \n mkdir(...)\n mkdir(path [, mode=0777])\n \n Create a directory.\n \n mkfifo(...)\n mkfifo(filename [, mode=0666])\n \n Create a FIFO (a POSIX named pipe).\n \n mknod(...)\n mknod(filename [, mode=0600, device])\n \n Create a filesystem node (file, device special file or named pipe)\n named filename. mode specifies both the permissions to use and the\n type of node to be created, being combined (bitwise OR) with one of\n S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. For S_IFCHR and S_IFBLK,\n device defines the newly created device special file (probably using\n os.makedev()), otherwise it is ignored.\n \n nice(...)\n nice(inc) -> new_priority\n \n Decrease the priority of process by inc and return the new priority.\n \n open(...)\n open(filename, flag [, mode=0777]) -> fd\n \n Open a file (for low level IO).\n \n openpty(...)\n openpty() -> (master_fd, slave_fd)\n \n Open a pseudo-terminal, returning open fd's for both master and slave end.\n \n pathconf(...)\n pathconf(path, name) -> integer\n \n Return the configuration limit name for the file or directory path.\n If there is no limit, return -1.\n \n pipe(...)\n pipe() -> (read_end, write_end)\n \n Create a pipe.\n \n popen(...)\n popen(command [, mode='r' [, bufsize]]) -> pipe\n \n Open a pipe to/from a command returning a file object.\n \n popen2(cmd, mode='t', bufsize=-1)\n Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'\n may be a sequence, in which case arguments will be passed directly to\n the program without shell intervention (as with os.spawnv()). If 'cmd'\n is a string it will be passed to the shell (as with os.system()). If\n 'bufsize' is specified, it sets the buffer size for the I/O pipes. The\n file objects (child_stdin, child_stdout) are returned.\n \n popen3(cmd, mode='t', bufsize=-1)\n Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'\n may be a sequence, in which case arguments will be passed directly to\n the program without shell intervention (as with os.spawnv()). If 'cmd'\n is a string it will be passed to the shell (as with os.system()). If\n 'bufsize' is specified, it sets the buffer size for the I/O pipes. The\n file objects (child_stdin, child_stdout, child_stderr) are returned.\n \n popen4(cmd, mode='t', bufsize=-1)\n Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd'\n may be a sequence, in which case arguments will be passed directly to\n the program without shell intervention (as with os.spawnv()). If 'cmd'\n is a string it will be passed to the shell (as with os.system()). If\n 'bufsize' is specified, it sets the buffer size for the I/O pipes. The\n file objects (child_stdin, child_stdout_stderr) are returned.\n \n putenv(...)\n putenv(key, value)\n \n Change or add an environment variable.\n \n read(...)\n read(fd, buffersize) -> string\n \n Read a file descriptor.\n \n readlink(...)\n readlink(path) -> path\n \n Return a string representing the path to which the symbolic link points.\n \n remove(...)\n remove(path)\n \n Remove a file (same as unlink(path)).\n \n removedirs(name)\n removedirs(path)\n \n Super-rmdir; remove a leaf directory and all empty intermediate\n ones. Works like rmdir except that, if the leaf directory is\n successfully removed, directories corresponding to rightmost path\n segments will be pruned away until either the whole path is\n consumed or an error occurs. Errors during this latter phase are\n ignored -- they generally mean that a directory was not empty.\n \n rename(...)\n rename(old, new)\n \n Rename a file or directory.\n \n renames(old, new)\n renames(old, new)\n \n Super-rename; create directories as necessary and delete any left\n empty. Works like rename, except creation of any intermediate\n directories needed to make the new pathname good is attempted\n first. After the rename, directories corresponding to rightmost\n path segments of the old name will be pruned way until either the\n whole path is consumed or a nonempty directory is found.\n \n Note: this function can fail with the new directory structure made\n if you lack permissions needed to unlink the leaf directory or\n file.\n \n rmdir(...)\n rmdir(path)\n \n Remove a directory.\n \n setegid(...)\n setegid(gid)\n \n Set the current process's effective group id.\n \n seteuid(...)\n seteuid(uid)\n \n Set the current process's effective user id.\n \n setgid(...)\n setgid(gid)\n \n Set the current process's group id.\n \n setgroups(...)\n setgroups(list)\n \n Set the groups of the current process to list.\n \n setpgid(...)\n setpgid(pid, pgrp)\n \n Call the system call setpgid().\n \n setpgrp(...)\n setpgrp()\n \n Make this process the process group leader.\n \n setregid(...)\n setregid(rgid, egid)\n \n Set the current process's real and effective group ids.\n \n setreuid(...)\n setreuid(ruid, euid)\n \n Set the current process's real and effective user ids.\n \n setsid(...)\n setsid()\n \n Call the system call setsid().\n \n setuid(...)\n setuid(uid)\n \n Set the current process's user id.\n \n spawnl(mode, file, *args)\n spawnl(mode, file, *args) -> integer\n \n Execute file with arguments from args in a subprocess.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnle(mode, file, *args)\n spawnle(mode, file, *args, env) -> integer\n \n Execute file with arguments from args in a subprocess with the\n supplied environment.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnlp(mode, file, *args)\n spawnlp(mode, file, *args) -> integer\n \n Execute file (which is looked for along $PATH) with arguments from\n args in a subprocess with the supplied environment.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnlpe(mode, file, *args)\n spawnlpe(mode, file, *args, env) -> integer\n \n Execute file (which is looked for along $PATH) with arguments from\n args in a subprocess with the supplied environment.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnv(mode, file, args)\n spawnv(mode, file, args) -> integer\n \n Execute file with arguments from args in a subprocess.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnve(mode, file, args, env)\n spawnve(mode, file, args, env) -> integer\n \n Execute file with arguments from args in a subprocess with the\n specified environment.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnvp(mode, file, args)\n spawnvp(mode, file, args) -> integer\n \n Execute file (which is looked for along $PATH) with arguments from\n args in a subprocess.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n spawnvpe(mode, file, args, env)\n spawnvpe(mode, file, args, env) -> integer\n \n Execute file (which is looked for along $PATH) with arguments from\n args in a subprocess with the supplied environment.\n If mode == P_NOWAIT return the pid of the process.\n If mode == P_WAIT return the process's exit code if it exits normally;\n otherwise return -SIG, where SIG is the signal that killed it.\n \n stat(...)\n stat(path) -> stat result\n \n Perform a stat system call on the given path.\n \n stat_float_times(...)\n stat_float_times([newval]) -> oldval\n \n Determine whether os.[lf]stat represents time stamps as float objects.\n If newval is True, future calls to stat() return floats, if it is False,\n future calls return ints. \n If newval is omitted, return the current setting.\n \n statvfs(...)\n statvfs(path) -> statvfs result\n \n Perform a statvfs system call on the given path.\n \n strerror(...)\n strerror(code) -> string\n \n Translate an error code to a message string.\n \n symlink(...)\n symlink(src, dst)\n \n Create a symbolic link pointing to src named dst.\n \n sysconf(...)\n sysconf(name) -> integer\n \n Return an integer-valued system configuration variable.\n \n system(...)\n system(command) -> exit_status\n \n Execute the command (a string) in a subshell.\n \n tcgetpgrp(...)\n tcgetpgrp(fd) -> pgid\n \n Return the process group associated with the terminal given by a fd.\n \n tcsetpgrp(...)\n tcsetpgrp(fd, pgid)\n \n Set the process group associated with the terminal given by a fd.\n \n tempnam(...)\n tempnam([dir[, prefix]]) -> string\n \n Return a unique name for a temporary file.\n The directory and a prefix may be specified as strings; they may be omitted\n or None if not needed.\n \n times(...)\n times() -> (utime, stime, cutime, cstime, elapsed_time)\n \n Return a tuple of floating point numbers indicating process times.\n \n tmpfile(...)\n tmpfile() -> file object\n \n Create a temporary file with no directory entries.\n \n tmpnam(...)\n tmpnam() -> string\n \n Return a unique name for a temporary file.\n \n ttyname(...)\n ttyname(fd) -> string\n \n Return the name of the terminal device connected to 'fd'.\n \n umask(...)\n umask(new_mask) -> old_mask\n \n Set the current numeric umask and return the previous umask.\n \n uname(...)\n uname() -> (sysname, nodename, release, version, machine)\n \n Return a tuple identifying the current operating system.\n \n unlink(...)\n unlink(path)\n \n Remove a file (same as remove(path)).\n \n unsetenv(...)\n unsetenv(key)\n \n Delete an environment variable.\n \n utime(...)\n utime(path, (atime, mtime))\n utime(path, None)\n \n Set the access and modified time of the file to the given values. If the\n second form is used, set the access and modified times to the current time.\n \n wait(...)\n wait() -> (pid, status)\n \n Wait for completion of a child process.\n \n wait3(...)\n wait3(options) -> (pid, status, rusage)\n \n Wait for completion of a child process.\n \n wait4(...)\n wait4(pid, options) -> (pid, status, rusage)\n \n Wait for completion of a given child process.\n \n waitpid(...)\n waitpid(pid, options) -> (pid, status)\n \n Wait for completion of a given child process.\n \n walk(top, topdown=True, onerror=None, followlinks=False)\n Directory tree generator.\n \n For each directory in the directory tree rooted at top (including top\n itself, but excluding '.' and '..'), yields a 3-tuple\n \n dirpath, dirnames, filenames\n \n dirpath is a string, the path to the directory. dirnames is a list of\n the names of the subdirectories in dirpath (excluding '.' and '..').\n filenames is a list of the names of the non-directory files in dirpath.\n Note that the names in the lists are just names, with no path components.\n To get a full path (which begins with top) to a file or directory in\n dirpath, do os.path.join(dirpath, name).\n \n If optional arg 'topdown' is true or not specified, the triple for a\n directory is generated before the triples for any of its subdirectories\n (directories are generated top down). If topdown is false, the triple\n for a directory is generated after the triples for all of its\n subdirectories (directories are generated bottom up).\n \n When topdown is true, the caller can modify the dirnames list in-place\n (e.g., via del or slice assignment), and walk will only recurse into the\n subdirectories whose names remain in dirnames; this can be used to prune\n the search, or to impose a specific order of visiting. Modifying\n dirnames when topdown is false is ineffective, since the directories in\n dirnames have already been generated by the time dirnames itself is\n generated.\n \n By default errors from the os.listdir() call are ignored. If\n optional arg 'onerror' is specified, it should be a function; it\n will be called with one argument, an os.error instance. It can\n report the error to continue with the walk, or raise the exception\n to abort the walk. Note that the filename is available as the\n filename attribute of the exception object.\n \n By default, os.walk does not follow symbolic links to subdirectories on\n systems that support them. In order to get this functionality, set the\n optional argument 'followlinks' to true.\n \n Caution: if you pass a relative pathname for top, don't change the\n current working directory between resumptions of walk. walk never\n changes the current directory, and assumes that the client doesn't\n either.\n \n Example:\n \n import os\n from os.path import join, getsize\n for root, dirs, files in os.walk('python/Lib/email'):\n print root, \"consumes\",\n print sum([getsize(join(root, name)) for name in files]),\n print \"bytes in\", len(files), \"non-directory files\"\n if 'CVS' in dirs:\n dirs.remove('CVS') # don't visit CVS directories\n \n write(...)\n write(fd, string) -> byteswritten\n \n Write a string to a file descriptor.\n\nDATA\n EX_CANTCREAT = 73\n EX_CONFIG = 78\n EX_DATAERR = 65\n EX_IOERR = 74\n EX_NOHOST = 68\n EX_NOINPUT = 66\n EX_NOPERM = 77\n EX_NOUSER = 67\n EX_OK = 0\n EX_OSERR = 71\n EX_OSFILE = 72\n EX_PROTOCOL = 76\n EX_SOFTWARE = 70\n EX_TEMPFAIL = 75\n EX_UNAVAILABLE = 69\n EX_USAGE = 64\n F_OK = 0\n NGROUPS_MAX = 16\n O_APPEND = 8\n O_ASYNC = 64\n O_CREAT = 512\n O_DIRECTORY = 1048576\n O_DSYNC = 4194304\n O_EXCL = 2048\n O_EXLOCK = 32\n O_NDELAY = 4\n O_NOCTTY = 131072\n O_NOFOLLOW = 256\n O_NONBLOCK = 4\n O_RDONLY = 0\n O_RDWR = 2\n O_SHLOCK = 16\n O_SYNC = 128\n O_TRUNC = 1024\n O_WRONLY = 1\n R_OK = 4\n SEEK_CUR = 1\n SEEK_END = 2\n SEEK_SET = 0\n TMP_MAX = 308915776\n WCONTINUED = 16\n WNOHANG = 1\n WUNTRACED = 2\n W_OK = 2\n X_OK = 1\n __all__ = ['altsep', 'curdir', 'pardir', 'sep', 'extsep', 'pathsep', '...\n altsep = None\n confstr_names = {'CS_PATH': 1, 'CS_XBS5_ILP32_OFF32_CFLAGS': 20, 'CS_X...\n curdir = '.'\n defpath = ':/bin:/usr/bin'\n devnull = '/dev/null'\n environ = {'_': '/usr/local/bin/python', 'rvm_version': '1...ems/ruby-...\n extsep = '.'\n linesep = '\\n'\n name = 'posix'\n pardir = '..'\n pathconf_names = {'PC_ASYNC_IO': 17, 'PC_CHOWN_RESTRICTED': 7, 'PC_FIL...\n pathsep = ':'\n sep = '/'\n sysconf_names = {'SC_2_CHAR_TERM': 20, 'SC_2_C_BIND': 18, 'SC_2_C_DEV'...", "group_id": 292, "id": 595922}, {"user_id": 28212, "stars": [{"date_created": 1302296693.243233, "user_id": 1060}, {"date_created": 1302788633.2314889, "user_id": 7179}], "topic_id": 18155, "date_created": 1302296621.417151, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 595953}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302295748.284574, "message": "Python Library Documentation: function join in os.path\n\nos.path.join = join(a, *p)\n Join two or more pathname components, inserting '/' as needed.\n If any component is an absolute path, all previous path components\n will be discarded.", "group_id": 292, "id": 595870}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302295785.479687, "message": "rockin!", "group_id": 292, "id": 595874}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296351.3513329, "message": "/doc os", "group_id": 292, "id": 595921}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296363.3465941, "message": "slash help just prints the bot's help", "group_id": 292, "id": 595923}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302296738.117116, "message": "Python Library Documentation: function namedtuple in collections\n\ncollections.namedtuple = namedtuple(typename, field_names, verbose=False, rename=False)\n Returns a new subclass of tuple with named fields.\n \n >>> Point = namedtuple('Point', 'x y')\n >>> Point.__doc__ # docstring for the new class\n 'Point(x, y)'\n >>> p = Point(11, y=22) # instantiate with positional args or keywords\n >>> p[0] + p[1] # indexable like a plain tuple\n 33\n >>> x, y = p # unpack like a regular tuple\n >>> x, y\n (11, 22)\n >>> p.x + p.y # fields also accessable by name\n 33\n >>> d = p._asdict() # convert to a dictionary\n >>> d['x']\n 11\n >>> Point(**d) # convert from a dictionary\n Point(x=11, y=22)\n >>> p._replace(x=100) # _replace() is like str.replace() but targets named fields\n Point(x=100, y=22)", "group_id": 292, "id": 595963}, {"user_id": 1060, "stars": [], "topic_id": 18155, "date_created": 1302296745.100877, "message": "Boom", "group_id": 292, "id": 595967}, {"user_id": 1284, "stars": [{"date_created": 1302296800.5082929, "user_id": 1060}], "topic_id": 18155, "date_created": 1302296761.104996, "message": "next up: karma ranking by stars", "group_id": 292, "id": 595970}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296617.37766, "message": "/help", "group_id": 292, "id": 595950}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302296618.458199, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>\n/zen: return the zen of python", "group_id": 292, "id": 595951}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302296620.5024779, "message": "/zen", "group_id": 292, "id": 595952}, {"user_id": 1060, "stars": [{"date_created": 1302296725.901931, "user_id": 1284}], "topic_id": 18155, "date_created": 1302296685.838382, "message": "@llimllib Nice!", "group_id": 292, "id": 595958}, {"user_id": 1060, "stars": [{"date_created": 1302358135.596025, "user_id": 1284}], "topic_id": 18155, "date_created": 1302296737.29106, "message": "/doc collections.namedtuple", "group_id": 292, "id": 595962}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297438.4872789, "message": "nice idea .. i program a bot myself and will look if i can make a plugin that does the similar ;]", "group_id": 292, "id": 596070}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297729.805197, "message": "whats that ? ;]", "group_id": 292, "id": 596123}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298144.1735361, "message": "could use it on GAE i think", "group_id": 292, "id": 596207}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302297575.997951, "message": "Python Library Documentation: module pydoc\n\nNAME\n pydoc - Generate Python documentation in HTML or text for interactive use.\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/pydoc.py\n\nDESCRIPTION\n In the Python interpreter, do \"from pydoc import help\" to provide online\n help. Calling help(thing) on a Python object documents the object.\n \n Or, at the shell command line outside of Python:\n \n Run \"pydoc <name>\" to show documentation on something. <name> may be\n the name of a function, module, package, or a dotted reference to a\n class or function within a module or module in a package. If the\n argument contains a path segment delimiter (e.g. slash on Unix,\n backslash on Windows) it is treated as the path to a Python source file.\n \n Run \"pydoc -k <keyword>\" to search for a keyword in the synopsis lines\n of all available modules.\n \n Run \"pydoc -p <port>\" to start an HTTP server on a given port on the\n local machine to generate documentation web pages.\n \n For platforms without a command line, \"pydoc -g\" starts the HTTP server\n and also pops up a little window for controlling it.\n \n Run \"pydoc -w <name>\" to write out the HTML documentation for a module\n to a file named \"<name>.html\".\n \n Module docs for core modules are assumed to be in\n \n http://docs.python.org/library/\n \n This can be overridden by setting the PYTHONDOCS environment variable\n to a different URL or to a local directory containing the Library\n Reference Manual pages.\n\nCLASSES\n exceptions.Exception(exceptions.BaseException)\n ErrorDuringImport\n Doc\n HTMLDoc\n TextDoc\n Helper\n ModuleScanner\n Scanner\n repr.Repr\n HTMLRepr\n TextRepr\n \n class Doc\n | Methods defined here:\n | \n | docclass = fail(self, object, name=None, *args)\n | \n | docdata = fail(self, object, name=None, *args)\n | \n | docmodule = fail(self, object, name=None, *args)\n | \n | docother = fail(self, object, name=None, *args)\n | \n | docproperty = fail(self, object, name=None, *args)\n | \n | docroutine = fail(self, object, name=None, *args)\n | \n | document(self, object, name=None, *args)\n | Generate documentation for an object.\n | \n | fail(self, object, name=None, *args)\n | Raise an exception for unimplemented types.\n | \n | getdocloc(self, object)\n | Return the location of module docs or None\n \n class ErrorDuringImport(exceptions.Exception)\n | Errors that occurred while trying to import something to document it.\n | \n | Method resolution order:\n | ErrorDuringImport\n | exceptions.Exception\n | exceptions.BaseException\n | __builtin__.object\n | \n | Methods defined here:\n | \n | __init__(self, filename, exc_info)\n | \n | __str__(self)\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | __weakref__\n | list of weak references to the object (if defined)\n | \n | ----------------------------------------------------------------------\n | Data and other attributes inherited from exceptions.Exception:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T\n | \n | ----------------------------------------------------------------------\n | Methods inherited from exceptions.BaseException:\n | \n | __delattr__(...)\n | x.__delattr__('name') <==> del x.name\n | \n | __getattribute__(...)\n | x.__getattribute__('name') <==> x.name\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __getslice__(...)\n | x.__getslice__(i, j) <==> x[i:j]\n | \n | Use of negative indices is not supported.\n | \n | __reduce__(...)\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | __setattr__(...)\n | x.__setattr__('name', value) <==> x.name = value\n | \n | __setstate__(...)\n | \n | __unicode__(...)\n | \n | ----------------------------------------------------------------------\n | Data descriptors inherited from exceptions.BaseException:\n | \n | __dict__\n | \n | args\n | \n | message\n \n class HTMLDoc(Doc)\n | Formatter class for HTML documentation.\n | \n | Methods defined here:\n | \n | bigsection(self, title, *args)\n | Format a section with a big heading.\n | \n | classlink(self, object, modname)\n | Make a link for a class.\n | \n | docclass(self, object, name=None, mod=None, funcs={}, classes={}, *ignored)\n | Produce HTML documentation for a class object.\n | \n | docdata(self, object, name=None, mod=None, cl=None)\n | Produce html documentation for a data descriptor.\n | \n | docmodule(self, object, name=None, mod=None, *ignored)\n | Produce HTML documentation for a module object.\n | \n | docother(self, object, name=None, mod=None, *ignored)\n | Produce HTML documentation for a data object.\n | \n | docproperty(self, object, name=None, mod=None, cl=None)\n | Produce html documentation for a property.\n | \n | docroutine(self, object, name=None, mod=None, funcs={}, classes={}, methods={}, cl=None)\n | Produce HTML documentation for a function or method object.\n | \n | escape(self, text) from HTMLRepr\n | \n | formattree(self, tree, modname, parent=None)\n | Produce HTML for a class tree as given by inspect.getclasstree().\n | \n | formatvalue(self, object)\n | Format an argument default value as text.\n | \n | grey(self, text)\n | \n | heading(self, title, fgcol, bgcol, extras='')\n | Format a page heading.\n | \n | index(self, dir, shadowed=None)\n | Generate an HTML index for a directory of modules.\n | \n | markup(self, text, escape=None, funcs={}, classes={}, methods={})\n | Mark up some plain text, given a context of symbols to look for.\n | Each context dictionary maps object names to anchor names.\n | \n | modpkglink(self, data)\n | Make a link for a module or package to display in an index.\n | \n | modulelink(self, object)\n | Make a link for a module.\n | \n | multicolumn(self, list, format, cols=4)\n | Format a list of items into a multi-column list.\n | \n | namelink(self, name, *dicts)\n | Make a link for an identifier, given name-to-URL mappings.\n | \n | page(self, title, contents)\n | Format an HTML page.\n | \n | preformat(self, text)\n | Format literal preformatted text.\n | \n | repr(self, object) from HTMLRepr\n | \n | section(self, title, fgcol, bgcol, contents, width=6, prelude='', marginalia=None, gap='&nbsp;')\n | Format a section with a heading.\n | \n | ----------------------------------------------------------------------\n | Methods inherited from Doc:\n | \n | document(self, object, name=None, *args)\n | Generate documentation for an object.\n | \n | fail(self, object, name=None, *args)\n | Raise an exception for unimplemented types.\n | \n | getdocloc(self, object)\n | Return the location of module docs or None\n \n class HTMLRepr(repr.Repr)\n | Class for safely making an HTML representation of a Python object.\n | \n | Methods defined here:\n | \n | __init__(self)\n | \n | escape(self, text)\n | \n | repr(self, object)\n | \n | repr1(self, x, level)\n | \n | repr_instance(self, x, level)\n | \n | repr_str = repr_string(self, x, level)\n | \n | repr_string(self, x, level)\n | \n | repr_unicode = repr_string(self, x, level)\n | \n | ----------------------------------------------------------------------\n | Methods inherited from repr.Repr:\n | \n | repr_array(self, x, level)\n | \n | repr_deque(self, x, level)\n | \n | repr_dict(self, x, level)\n | \n | repr_frozenset(self, x, level)\n | \n | repr_list(self, x, level)\n | \n | repr_long(self, x, level)\n | \n | repr_set(self, x, level)\n | \n | repr_tuple(self, x, level)\n \n class Helper\n | Methods defined here:\n | \n | __call__(self, request=None)\n | \n | __init__(self, input=None, output=None)\n | \n | __repr__(self)\n | \n | getline(self, prompt)\n | Read one line, using raw_input when available.\n | \n | help(self, request)\n | \n | interact(self)\n | \n | intro(self)\n | \n | list(self, items, columns=4, width=80)\n | \n | listkeywords(self)\n | \n | listmodules(self, key='')\n | \n | listsymbols(self)\n | \n | listtopics(self)\n | \n | showsymbol(self, symbol)\n | \n | showtopic(self, topic, more_xrefs='')\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | input\n | \n | output\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | keywords = {'and': 'BOOLEAN', 'as': 'with', 'assert': ('assert', ''), ...\n | \n | symbol = 'u\"'\n | \n | symbols = {'!=': 'COMPARISON OPERATORS', '\"': 'STRINGS', '\"\"\"': 'STRIN...\n | \n | symbols_ = (\"'\", \"'''\", \"r'\", \"u'\", '\"\"\"', '\"', 'r\"', 'u\"')\n | \n | topic = 'STRINGS'\n | \n | topics = {'ASSERTION': 'assert', 'ASSIGNMENT': ('assignment', 'AUGMENT...\n \n class ModuleScanner\n | An interruptible scanner that searches module synopses.\n | \n | Methods defined here:\n | \n | run(self, callback, key=None, completer=None, onerror=None)\n \n class Scanner\n | A generic tree iterator.\n | \n | Methods defined here:\n | \n | __init__(self, roots, children, descendp)\n | \n | next(self)\n \n class TextDoc(Doc)\n | Formatter class for text documentation.\n | \n | Methods defined here:\n | \n | bold(self, text)\n | Format a string in bold by overstriking.\n | \n | docclass(self, object, name=None, mod=None)\n | Produce text documentation for a given class object.\n | \n | docdata(self, object, name=None, mod=None, cl=None)\n | Produce text documentation for a data descriptor.\n | \n | docmodule(self, object, name=None, mod=None)\n | Produce text documentation for a given module object.\n | \n | docother(self, object, name=None, mod=None, parent=None, maxlen=None, doc=None)\n | Produce text documentation for a data object.\n | \n | docproperty(self, object, name=None, mod=None, cl=None)\n | Produce text documentation for a property.\n | \n | docroutine(self, object, name=None, mod=None, cl=None)\n | Produce text documentation for a function or method object.\n | \n | formattree(self, tree, modname, parent=None, prefix='')\n | Render in text a class tree as returned by inspect.getclasstree().\n | \n | formatvalue(self, object)\n | Format an argument default value as text.\n | \n | indent(self, text, prefix=' ')\n | Indent text by prepending a given prefix to each line.\n | \n | repr(self, x) from TextRepr\n | \n | section(self, title, contents)\n | Format a section with a given heading.\n | \n | ----------------------------------------------------------------------\n | Methods inherited from Doc:\n | \n | document(self, object, name=None, *args)\n | Generate documentation for an object.\n | \n | fail(self, object, name=None, *args)\n | Raise an exception for unimplemented types.\n | \n | getdocloc(self, object)\n | Return the location of module docs or None\n \n class TextRepr(repr.Repr)\n | Class for safely making a text representation of a Python object.\n | \n | Methods defined here:\n | \n | __init__(self)\n | \n | repr1(self, x, level)\n | \n | repr_instance(self, x, level)\n | \n | repr_str = repr_string(self, x, level)\n | \n | repr_string(self, x, level)\n | \n | ----------------------------------------------------------------------\n | Methods inherited from repr.Repr:\n | \n | repr(self, x)\n | \n | repr_array(self, x, level)\n | \n | repr_deque(self, x, level)\n | \n | repr_dict(self, x, level)\n | \n | repr_frozenset(self, x, level)\n | \n | repr_list(self, x, level)\n | \n | repr_long(self, x, level)\n | \n | repr_set(self, x, level)\n | \n | repr_tuple(self, x, level)\n\nFUNCTIONS\n allmethods(cl)\n \n apropos(key)\n Print all the one-line module summaries that contain a substring.\n \n classify_class_attrs(object)\n Wrap inspect.classify_class_attrs, with fixup for data descriptors.\n \n classname(object, modname)\n Get a class name and qualify it with a module name if necessary.\n \n cli()\n Command-line interface (looks at sys.argv to decide what to do).\n \n cram(text, maxlen)\n Omit part of a string if needed to make it fit in a maximum length.\n \n describe(thing)\n Produce a short description of the given thing.\n \n doc(thing, title='Python Library Documentation: %s', forceload=0)\n Display text documentation, given an object or a path to an object.\n \n getdoc(object)\n Get the doc string or comments for an object.\n \n getpager()\n Decide what method to use for paging through text.\n \n gui()\n Graphical interface (starts web server and pops up a control window).\n \n importfile(path)\n Import a Python source file or compiled file given its path.\n \n isdata(object)\n Check if an object is of a type that probably means it's data.\n \n ispackage(path)\n Guess whether a path refers to a package directory.\n \n ispath(x)\n \n locate(path, forceload=0)\n Locate an object by name or dotted path, importing as necessary.\n \n pager(text)\n The first time this is called, determine what kind of pager to use.\n \n pathdirs()\n Convert sys.path into a list of absolute, existing, unique paths.\n \n pipepager(text, cmd)\n Page through text by feeding it to another program.\n \n plain(text)\n Remove boldface formatting from text.\n \n plainpager(text)\n Simply print unformatted text. This is the ultimate fallback.\n \n render_doc(thing, title='Python Library Documentation: %s', forceload=0)\n Render text documentation, given an object or a path to an object.\n \n replace(text, *pairs)\n Do a series of global replacements on a string.\n \n resolve(thing, forceload=0)\n Given an object or a path to an object, get the object and its name.\n \n safeimport(path, forceload=0, cache={})\n Import a module; handle errors; return None if the module isn't found.\n \n If the module *is* found but an exception occurs, it's wrapped in an\n ErrorDuringImport exception and reraised. Unlike __import__, if a\n package path is specified, the module at the end of the path is returned,\n not the package at the beginning. If the optional 'forceload' argument\n is 1, we reload the module from disk (unless it's a dynamic extension).\n \n serve(port, callback=None, completer=None)\n \n source_synopsis(file)\n \n splitdoc(doc)\n Split a doc string into a synopsis line (if any) and the rest.\n \n stripid(text)\n Remove the hexadecimal id from a Python object representation.\n \n synopsis(filename, cache={})\n Get the one-line summary out of a module file.\n \n tempfilepager(text, cmd)\n Page through text by invoking a program on a temporary file.\n \n ttypager(text)\n Page through text on a text terminal.\n \n visiblename(name, all=None)\n Decide whether to show documentation on a variable.\n \n writedoc(thing, forceload=0)\n Write HTML documentation to a file in the current directory.\n \n writedocs(dir, pkgpath='', done=None)\n Write out HTML documentation for all modules in a directory tree.\n\nDATA\n __author__ = 'Ka-Ping Yee <ping@lfw.org>'\n __credits__ = 'Guido van Rossum, for an excellent programming l...erla...\n __date__ = '26 February 2001'\n __version__ = '$Revision: 84174 $'\n help = <pydoc.Helper instance>\n html = <pydoc.HTMLDoc instance>\n text = <plugins.pyhelp.PlainTextDoc instance>\n\nVERSION\n 84174\n\nDATE\n 26 February 2001\n\nAUTHOR\n Ka-Ping Yee <ping@lfw.org>\n\nCREDITS\n Guido van Rossum, for an excellent programming language.\n Tommy Burnette, the original creator of manpy.\n Paul Prescod, for all his work on onlinehelp.\n Richard Chamberlain, for the first implementation of textdoc.", "group_id": 292, "id": 596087}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297634.0913489, "message": "getting pydoc to work right was... interesting", "group_id": 292, "id": 596095}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297721.527683, "message": ":)", "group_id": 292, "id": 596119}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302299607.8734219, "message": "unable to find help on doc", "group_id": 292, "id": 596457}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297715.8374839, "message": "WTFPL", "group_id": 292, "id": 596115}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297877.0644619, "message": "fancy bot", "group_id": 292, "id": 596156}, {"user_id": 18979, "stars": [{"date_created": 1302358142.2534339, "user_id": 1284}], "topic_id": 18155, "date_created": 1302297393.0072989, "message": "/doc", "group_id": 292, "id": 596061}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297712.237323, "message": "oh, forgot to add that, will do momentarily", "group_id": 292, "id": 596114}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297751.7904429, "message": "it's the freest of all licenses", "group_id": 292, "id": 596130}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298013.5730669, "message": "whats the request module coming from ?", "group_id": 292, "id": 596182}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298155.025578, "message": "if it just builts on urllib", "group_id": 292, "id": 596211}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297567.2401719, "message": "pydoc.render_doc(bytes(thing)) ;]", "group_id": 292, "id": 596085}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297651.8872459, "message": "hack city: https://github.com/llimllib/pyphage/blob/master/plugins/pyhelp.py#L8", "group_id": 292, "id": 596096}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302297660.6055961, "message": "population, chatbot", "group_id": 292, "id": 596097}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297681.901942, "message": "what license is your code written in ?", "group_id": 292, "id": 596103}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297697.1894691, "message": "can i use it ?", "group_id": 292, "id": 596108}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302298051.7930961, "message": "just a simple wrapper on urllib", "group_id": 292, "id": 596191}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302298193.0579979, "message": "no worries", "group_id": 292, "id": 596220}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302298196.283421, "message": "glad it's useful", "group_id": 292, "id": 596222}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297717.625874, "message": "mit apache lgpl ?", "group_id": 292, "id": 596116}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297817.487494, "message": "following you on github", "group_id": 292, "id": 596146}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297737.7450399, "message": "so convore is all json ?", "group_id": 292, "id": 596127}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298117.218075, "message": "ISC license", "group_id": 292, "id": 596203}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298122.2304549, "message": "looks nice", "group_id": 292, "id": 596205}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297759.8346219, "message": "ok cool ;]", "group_id": 292, "id": 596132}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297767.6144011, "message": "i'll use in in jsonbot ;]", "group_id": 292, "id": 596134}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302298042.3249991, "message": "http://kennethreitz.com/blog/introducing-requests/", "group_id": 292, "id": 596188}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302297916.111017, "message": "10 years of writing bots ;]", "group_id": 292, "id": 596167}, {"user_id": 18979, "stars": [], "topic_id": 18155, "date_created": 1302298198.6905479, "message": "would love to have jsonbot on convore ;]", "group_id": 292, "id": 596223}, {"user_id": 26123, "stars": [], "topic_id": 18155, "date_created": 1302299606.843945, "message": "/doc doc", "group_id": 292, "id": 596456}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302312916.7427211, "message": "yup, definitely should", "group_id": 292, "id": 598889}, {"user_id": 218, "stars": [{"date_created": 1302358103.559526, "user_id": 1284}], "topic_id": 18155, "date_created": 1302311388.6589191, "message": "@llimllib feature suggestion: Stop after n lines of doc string, and provide a /doc os..more or os-2 or some crap", "group_id": 292, "id": 598575}, {"user_id": 15988, "stars": [], "topic_id": 18155, "date_created": 1302327172.5164931, "message": "/doc functools.partial", "group_id": 292, "id": 599804}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302327173.669281, "message": "Python Library Documentation: class partial in functools\n\nfunctools.partial = class partial(__builtin__.object)\n | partial(func, *args, **keywords) - new function with partial application\n | of the given arguments and keywords.\n | \n | Methods defined here:\n | \n | __call__(...)\n | x.__call__(...) <==> x(...)\n | \n | __delattr__(...)\n | x.__delattr__('name') <==> del x.name\n | \n | __getattribute__(...)\n | x.__getattribute__('name') <==> x.name\n | \n | __reduce__(...)\n | \n | __setattr__(...)\n | x.__setattr__('name', value) <==> x.name = value\n | \n | __setstate__(...)\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | __dict__\n | \n | args\n | tuple of arguments to future partial calls\n | \n | func\n | function object to use in future partial calls\n | \n | keywords\n | dictionary of keyword arguments to future partial calls\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T", "group_id": 292, "id": 599805}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302333663.389817, "message": "Python Library Documentation: module this\n\nNAME\n this\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/this.py\n\nDATA\n c = '!'\n d = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': ...\n i = 25\n s = \"Gur Mra bs Clguba, ol Gvz Crgref\\n\\nOrnhgvshy vf o...bar ubaxvat ...", "group_id": 292, "id": 600638}, {"user_id": 11592, "stars": [], "topic_id": 18155, "date_created": 1302333661.282707, "message": "/doc this", "group_id": 292, "id": 600636}, {"user_id": 11592, "stars": [{"date_created": 1302358093.6502609, "user_id": 1284}], "topic_id": 18155, "date_created": 1302333719.3003621, "message": "/doc __module__", "group_id": 292, "id": 600644}, {"user_id": 11592, "stars": [], "topic_id": 18155, "date_created": 1302333689.3440001, "message": "/doc __name__", "group_id": 292, "id": 600639}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302333690.661757, "message": "Python Library Documentation: str object\n\n__name__ = class str(basestring)\n | str(object) -> string\n | \n | Return a nice string representation of the object.\n | If the argument is a string, the return value is the same object.\n | \n | Method resolution order:\n | str\n | basestring\n | object\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x\n | \n | __eq__(...)\n | x.__eq__(y) <==> x==y\n | \n | __format__(...)\n | S.__format__(format_spec) -> string\n | \n | Return a formatted version of S as described by format_spec.\n | \n | __ge__(...)\n | x.__ge__(y) <==> x>=y\n | \n | __getattribute__(...)\n | x.__getattribute__('name') <==> x.name\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __getnewargs__(...)\n | \n | __getslice__(...)\n | x.__getslice__(i, j) <==> x[i:j]\n | \n | Use of negative indices is not supported.\n | \n | __gt__(...)\n | x.__gt__(y) <==> x>y\n | \n | __hash__(...)\n | x.__hash__() <==> hash(x)\n | \n | __le__(...)\n | x.__le__(y) <==> x<=y\n | \n | __len__(...)\n | x.__len__() <==> len(x)\n | \n | __lt__(...)\n | x.__lt__(y) <==> x<y\n | \n | __mod__(...)\n | x.__mod__(y) <==> x%y\n | \n | __mul__(...)\n | x.__mul__(n) <==> x*n\n | \n | __ne__(...)\n | x.__ne__(y) <==> x!=y\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | __rmod__(...)\n | x.__rmod__(y) <==> y%x\n | \n | __rmul__(...)\n | x.__rmul__(n) <==> n*x\n | \n | __sizeof__(...)\n | S.__sizeof__() -> size of S in memory, in bytes\n | \n | __str__(...)\n | x.__str__() <==> str(x)\n | \n | capitalize(...)\n | S.capitalize() -> string\n | \n | Return a copy of the string S with only its first character\n | capitalized.\n | \n | center(...)\n | S.center(width[, fillchar]) -> string\n | \n | Return S centered in a string of length width. Padding is\n | done using the specified fill character (default is a space)\n | \n | count(...)\n | S.count(sub[, start[, end]]) -> int\n | \n | Return the number of non-overlapping occurrences of substring sub in\n | string S[start:end]. Optional arguments start and end are interpreted\n | as in slice notation.\n | \n | decode(...)\n | S.decode([encoding[,errors]]) -> object\n | \n | Decodes S using the codec registered for encoding. encoding defaults\n | to the default encoding. errors may be given to set a different error\n | handling scheme. Default is 'strict' meaning that encoding errors raise\n | a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'\n | as well as any other name registered with codecs.register_error that is\n | able to handle UnicodeDecodeErrors.\n | \n | encode(...)\n | S.encode([encoding[,errors]]) -> object\n | \n | Encodes S using the codec registered for encoding. encoding defaults\n | to the default encoding. errors may be given to set a different error\n | handling scheme. Default is 'strict' meaning that encoding errors raise\n | a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and\n | 'xmlcharrefreplace' as well as any other name registered with\n | codecs.register_error that is able to handle UnicodeEncodeErrors.\n | \n | endswith(...)\n | S.endswith(suffix[, start[, end]]) -> bool\n | \n | Return True if S ends with the specified suffix, False otherwise.\n | With optional start, test S beginning at that position.\n | With optional end, stop comparing S at that position.\n | suffix can also be a tuple of strings to try.\n | \n | expandtabs(...)\n | S.expandtabs([tabsize]) -> string\n | \n | Return a copy of S where all tab characters are expanded using spaces.\n | If tabsize is not given, a tab size of 8 characters is assumed.\n | \n | find(...)\n | S.find(sub [,start [,end]]) -> int\n | \n | Return the lowest index in S where substring sub is found,\n | such that sub is contained within s[start:end]. Optional\n | arguments start and end are interpreted as in slice notation.\n | \n | Return -1 on failure.\n | \n | format(...)\n | S.format(*args, **kwargs) -> string\n | \n | Return a formatted version of S, using substitutions from args and kwargs.\n | The substitutions are identified by braces ('{' and '}').\n | \n | index(...)\n | S.index(sub [,start [,end]]) -> int\n | \n | Like S.find() but raise ValueError when the substring is not found.\n | \n | isalnum(...)\n | S.isalnum() -> bool\n | \n | Return True if all characters in S are alphanumeric\n | and there is at least one character in S, False otherwise.\n | \n | isalpha(...)\n | S.isalpha() -> bool\n | \n | Return True if all characters in S are alphabetic\n | and there is at least one character in S, False otherwise.\n | \n | isdigit(...)\n | S.isdigit() -> bool\n | \n | Return True if all characters in S are digits\n | and there is at least one character in S, False otherwise.\n | \n | islower(...)\n | S.islower() -> bool\n | \n | Return True if all cased characters in S are lowercase and there is\n | at least one cased character in S, False otherwise.\n | \n | isspace(...)\n | S.isspace() -> bool\n | \n | Return True if all characters in S are whitespace\n | and there is at least one character in S, False otherwise.\n | \n | istitle(...)\n | S.istitle() -> bool\n | \n | Return True if S is a titlecased string and there is at least one\n | character in S, i.e. uppercase characters may only follow uncased\n | characters and lowercase characters only cased ones. Return False\n | otherwise.\n | \n | isupper(...)\n | S.isupper() -> bool\n | \n | Return True if all cased characters in S are uppercase and there is\n | at least one cased character in S, False otherwise.\n | \n | join(...)\n | S.join(iterable) -> string\n | \n | Return a string which is the concatenation of the strings in the\n | iterable. The separator between elements is S.\n | \n | ljust(...)\n | S.ljust(width[, fillchar]) -> string\n | \n | Return S left-justified in a string of length width. Padding is\n | done using the specified fill character (default is a space).\n | \n | lower(...)\n | S.lower() -> string\n | \n | Return a copy of the string S converted to lowercase.\n | \n | lstrip(...)\n | S.lstrip([chars]) -> string or unicode\n | \n | Return a copy of the string S with leading whitespace removed.\n | If chars is given and not None, remove characters in chars instead.\n | If chars is unicode, S will be converted to unicode before stripping\n | \n | partition(...)\n | S.partition(sep) -> (head, sep, tail)\n | \n | Search for the separator sep in S, and return the part before it,\n | the separator itself, and the part after it. If the separator is not\n | found, return S and two empty strings.\n | \n | replace(...)\n | S.replace(old, new[, count]) -> string\n | \n | Return a copy of string S with all occurrences of substring\n | old replaced by new. If the optional argument count is\n | given, only the first count occurrences are replaced.\n | \n | rfind(...)\n | S.rfind(sub [,start [,end]]) -> int\n | \n | Return the highest index in S where substring sub is found,\n | such that sub is contained within s[start:end]. Optional\n | arguments start and end are interpreted as in slice notation.\n | \n | Return -1 on failure.\n | \n | rindex(...)\n | S.rindex(sub [,start [,end]]) -> int\n | \n | Like S.rfind() but raise ValueError when the substring is not found.\n | \n | rjust(...)\n | S.rjust(width[, fillchar]) -> string\n | \n | Return S right-justified in a string of length width. Padding is\n | done using the specified fill character (default is a space)\n | \n | rpartition(...)\n | S.rpartition(sep) -> (head, sep, tail)\n | \n | Search for the separator sep in S, starting at the end of S, and return\n | the part before it, the separator itself, and the part after it. If the\n | separator is not found, return two empty strings and S.\n | \n | rsplit(...)\n | S.rsplit([sep [,maxsplit]]) -> list of strings\n | \n | Return a list of the words in the string S, using sep as the\n | delimiter string, starting at the end of the string and working\n | to the front. If maxsplit is given, at most maxsplit splits are\n | done. If sep is not specified or is None, any whitespace string\n | is a separator.\n | \n | rstrip(...)\n | S.rstrip([chars]) -> string or unicode\n | \n | Return a copy of the string S with trailing whitespace removed.\n | If chars is given and not None, remove characters in chars instead.\n | If chars is unicode, S will be converted to unicode before stripping\n | \n | split(...)\n | S.split([sep [,maxsplit]]) -> list of strings\n | \n | Return a list of the words in the string S, using sep as the\n | delimiter string. If maxsplit is given, at most maxsplit\n | splits are done. If sep is not specified or is None, any\n | whitespace string is a separator and empty strings are removed\n | from the result.\n | \n | splitlines(...)\n | S.splitlines([keepends]) -> list of strings\n | \n | Return a list of the lines in S, breaking at line boundaries.\n | Line breaks are not included in the resulting list unless keepends\n | is given and true.\n | \n | startswith(...)\n | S.startswith(prefix[, start[, end]]) -> bool\n | \n | Return True if S starts with the specified prefix, False otherwise.\n | With optional start, test S beginning at that position.\n | With optional end, stop comparing S at that position.\n | prefix can also be a tuple of strings to try.\n | \n | strip(...)\n | S.strip([chars]) -> string or unicode\n | \n | Return a copy of the string S with leading and trailing\n | whitespace removed.\n | If chars is given and not None, remove characters in chars instead.\n | If chars is unicode, S will be converted to unicode before stripping\n | \n | swapcase(...)\n | S.swapcase() -> string\n | \n | Return a copy of the string S with uppercase characters\n | converted to lowercase and vice versa.\n | \n | title(...)\n | S.title() -> string\n | \n | Return a titlecased version of S, i.e. words start with uppercase\n | characters, all remaining cased characters have lowercase.\n | \n | translate(...)\n | S.translate(table [,deletechars]) -> string\n | \n | Return a copy of the string S, where all characters occurring\n | in the optional argument deletechars are removed, and the\n | remaining characters have been mapped through the given\n | translation table, which must be a string of length 256.\n | \n | upper(...)\n | S.upper() -> string\n | \n | Return a copy of the string S converted to uppercase.\n | \n | zfill(...)\n | S.zfill(width) -> string\n | \n | Pad a numeric string S with zeros on the left, to fill a field\n | of the specified width. The string S is never truncated.\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T", "group_id": 292, "id": 600640}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302333720.399297, "message": "unable to find help on __module__", "group_id": 292, "id": 600645}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302351120.180299, "message": "testing truncation. /doc str", "group_id": 292, "id": 601851}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302351121.1814821, "message": "Python Library Documentation: class str in module __builtin__\n\nclass str(basestring)\n | str(object) -> string\n | \n | Return a nice string representation of the object.\n | If the argument is a string, the return value is the same object.\n | \n | Method resolution order:\n | str\n | basestring\n | object\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x", "group_id": 292, "id": 601852}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302351177.9345391, "message": "adding a message to note that it's been truncated... /doc str", "group_id": 292, "id": 601853}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302351178.6346121, "message": "Python Library Documentation: class str in module __builtin__\n\nclass str(basestring)\n | str(object) -> string\n | \n | Return a nice string representation of the object.\n | If the argument is a string, the return value is the same object.\n | \n | Method resolution order:\n | str\n | basestring\n | object\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x\n<truncated>", "group_id": 292, "id": 601854}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354979.9073789, "message": "/rtd django-staticfiles STATICIFLES_FINDERS", "group_id": 292, "id": 602147}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355850.0740881, "message": "whoops have it only looking at testing atm", "group_id": 292, "id": 602206}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356041.867187, "message": "I was trying to do an all alphanum example", "group_id": 292, "id": 602227}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356370.0140741, "message": "/rtd django", "group_id": 292, "id": 602279}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356371.1071529, "message": "http://django.rtfd.org/", "group_id": 292, "id": 602280}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356423.7587421, "message": "/help", "group_id": 292, "id": 602284}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354835.5135441, "message": "readthedocs.org is a (now PSF sponsored) project from eric holscher and team (@ericholscher) that grew out of djangodash from 2010", "group_id": 292, "id": 602131}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354873.1270151, "message": "I don't know if the python docs are on it (they should be:)", "group_id": 292, "id": 602134}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354879.683996, "message": "the django docs are now mirrored there", "group_id": 292, "id": 602137}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355074.963294, "message": "oh, I see", "group_id": 292, "id": 602163}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354563.408428, "message": "/rtd django queryset <--- going to http://django.rtfd.org/queryset would be sort of cool, and it's basically already implemented here: https://github.com/ericholscher/rtd/blob/master/bin/rtd", "group_id": 292, "id": 602116}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355821.249558, "message": "/rtd django-staticfiles STATICIFLES_FINDERS", "group_id": 292, "id": 602204}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355979.5337939, "message": "for both patterns", "group_id": 292, "id": 602216}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355018.1919, "message": "oh, right", "group_id": 292, "id": 602151}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354443.708503, "message": "@llimllib If it's truncated could it be a link to the official docs? or to rtd?", "group_id": 292, "id": 602108}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354935.044862, "message": "because I won't know what project to send you to", "group_id": 292, "id": 602142}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354997.7042389, "message": "I just mean in the <truncated> case", "group_id": 292, "id": 602149}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355032.0563209, "message": "haha", "group_id": 292, "id": 602155}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354394.1772349, "message": "@ericflo ^--- this is a great usecase for being able to mark something as <pre> from the API rather than from onpaste only", "group_id": 292, "id": 602098}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354609.569659, "message": "@issackelly i thought about linking it to a google search, I don't know how to figure out where exactly the link should point to", "group_id": 292, "id": 602122}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354622.1227701, "message": "it could be to python.org, djangoproject.com, etc, etc", "group_id": 292, "id": 602123}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354714.554301, "message": "hadn't seen rtfd.org before though, I'm looking at it", "group_id": 292, "id": 602126}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354857.410938, "message": "neat... I seem to recall having seen it back then but not having used it since", "group_id": 292, "id": 602132}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354878.6179991, "message": "they are", "group_id": 292, "id": 602136}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354922.1911211, "message": "how about just a link to http://readthedocs.org/search/?q=<your query>", "group_id": 292, "id": 602140}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354968.451273, "message": "well, if a new command is implemented, it could be explicit that you want to go to that project", "group_id": 292, "id": 602145}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302354917.2162299, "message": "It's cool, because it keeps all versions of your docs, from your VCS tags, and automatically builds the latest when you push to your VCS.", "group_id": 292, "id": 602139}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355469.451833, "message": "/doc os.path.join", "group_id": 292, "id": 602183}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302354990.6565139, "message": "right", "group_id": 292, "id": 602148}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355054.02406, "message": "https://github.com/llimllib/pyphage/blob/master/plugins/pyhelp.py", "group_id": 292, "id": 602157}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355146.1937921, "message": "as of now, if it's on my mac mini you can get docs on it", "group_id": 292, "id": 602168}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355201.8758199, "message": "the use case I imagine is mostly helping newbs, so you can show them /doc str.join", "group_id": 292, "id": 602171}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355455.8771701, "message": "https://gist.github.com/911398", "group_id": 292, "id": 602182}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355026.418817, "message": "what does /doc do now?", "group_id": 292, "id": 602152}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302355028.0656559, "message": "unable to find help on do", "group_id": 292, "id": 602153}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355066.3716249, "message": "basically just calls pydoc.render_doc", "group_id": 292, "id": 602161}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355266.1451559, "message": "hmmm, unclear why render_doc punts on that one", "group_id": 292, "id": 602177}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355875.0801561, "message": "oh... bad pattern", "group_id": 292, "id": 602210}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356027.8080821, "message": "sorry", "group_id": 292, "id": 602222}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356079.0123811, "message": "/rtd pip requirements", "group_id": 292, "id": 602231}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356579.9032791, "message": "that's the origin of the project :)", "group_id": 292, "id": 602293}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356563.8257489, "message": "@llimllib I really like the api for plugins for this. I'm going to repurpose this for my company's private chat to follow our issue/project manager", "group_id": 292, "id": 602292}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355037.4084489, "message": "sorry @python_chatbot", "group_id": 292, "id": 602156}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355130.083241, "message": "I can't believe that @python_chatbot doesn't respond to messages to it! will be hacking that in right away :)", "group_id": 292, "id": 602165}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355137.4978061, "message": "right", "group_id": 292, "id": 602167}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302355202.850709, "message": "unable to find help on str.join", "group_id": 292, "id": 602172}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302355470.334131, "message": "Python Library Documentation: function join in os.path\n\nos.path.join = join(a, *p)\n Join two or more pathname components, inserting '/' as needed.\n If any component is an absolute path, all previous path components\n will be discarded.\n\n<truncated>", "group_id": 292, "id": 602184}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356122.271935, "message": "I made the space mandatory by accident", "group_id": 292, "id": 602240}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355132.692683, "message": "and that's based on what you have available in your virtualenv", "group_id": 292, "id": 602166}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355507.5632911, "message": "@llimllib I'm not sure if that will work or not, just a first stab at a rtd command", "group_id": 292, "id": 602186}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355205.566323, "message": "doh", "group_id": 292, "id": 602173}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355559.9640391, "message": "just edited and removed a couple unnecessary lines", "group_id": 292, "id": 602189}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302355882.5771739, "message": "\\w.+ should include -", "group_id": 292, "id": 602212}, {"user_id": 28212, "stars": [{"date_created": 1302356085.364933, "user_id": 209}], "topic_id": 18155, "date_created": 1302356080.0391641, "message": "http://pip.rtfd.org/requirements", "group_id": 292, "id": 602232}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356244.553952, "message": "/rtd django", "group_id": 292, "id": 602267}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356255.276264, "message": "/rtd django", "group_id": 292, "id": 602268}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355866.818023, "message": "/rtd django-staticfiles STATICIFLES_FINDERS", "group_id": 292, "id": 602208}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302355868.449338, "message": "http://django.rtfd.org/", "group_id": 292, "id": 602209}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355923.5735259, "message": "indeed", "group_id": 292, "id": 602213}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355925.6290109, "message": "and _", "group_id": 292, "id": 602214}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302355982.394762, "message": "yup", "group_id": 292, "id": 602217}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356010.7354081, "message": "/rtd pip requirements", "group_id": 292, "id": 602219}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356024.6360259, "message": "one sec", "group_id": 292, "id": 602221}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356116.4432051, "message": "the second pattern should be optional", "group_id": 292, "id": 602239}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356128.9628279, "message": "/rtd django", "group_id": 292, "id": 602241}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356147.631011, "message": "hold on, I'll commit what I'm using right now", "group_id": 292, "id": 602244}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356155.29073, "message": "in his app /rtd goes straight to readthedocs.com I figured that wasn't really important", "group_id": 292, "id": 602247}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356156.287282, "message": "http://goes.rtfd.org/straight", "group_id": 292, "id": 602248}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356160.8735199, "message": "hah", "group_id": 292, "id": 602249}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356162.044498, "message": "whoops", "group_id": 292, "id": 602250}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356198.3565159, "message": "seems to work ok", "group_id": 292, "id": 602254}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356264.205703, "message": "/rtd django queryset", "group_id": 292, "id": 602269}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356264.871222, "message": "https://github.com/llimllib/pyphage/blob/master/plugins/rtd.py", "group_id": 292, "id": 602270}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356265.293802, "message": "http://django.rtfd.org/queryset", "group_id": 292, "id": 602271}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356374.0356579, "message": "there we go", "group_id": 292, "id": 602281}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356375.760257, "message": "nice", "group_id": 292, "id": 602282}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356424.64168, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>\n/rtd <module> <function>: return a link to readthedocs for <module> and <function>\n/zen: return the zen of python", "group_id": 292, "id": 602285}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356547.621062, "message": "/doc str", "group_id": 292, "id": 602288}, {"user_id": 209, "stars": [{"date_created": 1302357999.674732, "user_id": 1284}], "topic_id": 18155, "date_created": 1302356593.0726171, "message": "nice", "group_id": 292, "id": 602295}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356092.79318, "message": "/rtd django", "group_id": 292, "id": 602233}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356093.1367071, "message": "/rtd django-staticfiles STATICFILES_FINDERS", "group_id": 292, "id": 602234}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356094.553499, "message": "http://django-staticfiles.rtfd.org/STATICFILES_FINDERS", "group_id": 292, "id": 602235}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302356108.3642261, "message": "oh, another error in the regex", "group_id": 292, "id": 602238}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356129.9166441, "message": "/rtd django", "group_id": 292, "id": 602242}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302356131.8333261, "message": "haha", "group_id": 292, "id": 602243}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302356551.9782121, "message": "Python Library Documentation: class str in module __builtin__\n\nclass str(basestring)\n | str(object) -> string\n | \n | Return a nice string representation of the object.\n | If the argument is a string, the return value is the same object.\n | \n | Method resolution order:\n | str\n | basestring\n | object\n | \n | Methods defined here:\n | \n | __add__(...)\n | x.__add__(y) <==> x+y\n | \n | __contains__(...)\n | x.__contains__(y) <==> y in x\n<truncated> http://readthedocs.org/search/?q=str", "group_id": 292, "id": 602289}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358913.6977401, "message": "sweet, I'm on the board :)", "group_id": 292, "id": 602425}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359101.3929551, "message": "hmmm busted", "group_id": 292, "id": 602433}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302357967.4630971, "message": "/help", "group_id": 292, "id": 602370}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302357994.9067309, "message": "/help", "group_id": 292, "id": 602371}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302357965.3842311, "message": "new plugin: karma", "group_id": 292, "id": 602369}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302357995.8321829, "message": "The python chatbot currently implements these commands:\n/karma: who in the python room has the most karma?\n/doc <something>: return python 2.7's documentation for <something>\n/rtd <module> <function>: return a link to readthedocs for <module> and/or <function>\n/zen:", "group_id": 292, "id": 602372}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302357997.4498961, "message": "python_chatbot_testing: 20\npython_chatbot: 10", "group_id": 292, "id": 602373}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358077.8774321, "message": "/karma", "group_id": 292, "id": 602378}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358572.727509, "message": "yes", "group_id": 292, "id": 602407}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358733.0688429, "message": "I think so, like a reddit \"upvote\"", "group_id": 292, "id": 602414}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359046.1616311, "message": "/karma", "group_id": 292, "id": 602430}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359387.8204989, "message": "yup. I'm adding a karma <user> option right now so you can see somebody specific's karma", "group_id": 292, "id": 602445}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358007.372576, "message": "/karma", "group_id": 292, "id": 602374}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302358008.225512, "message": "python_chatbot_testing: 20\npython_chatbot: 10\nissackelly: 10", "group_id": 292, "id": 602375}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302358078.7618711, "message": "issackelly: 10", "group_id": 292, "id": 602379}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358149.7809701, "message": "/karma", "group_id": 292, "id": 602383}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302358150.8895619, "message": "issackelly: 10\ndpwiz: 10\njustinlilly: 10\ntbatterii: 10\npaulsmith: 10", "group_id": 292, "id": 602384}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358893.754704, "message": "https://convore.com/python/introducing-the-python-chatbot-gee-i-hope-this-works/602406/", "group_id": 292, "id": 602423}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302359047.0804119, "message": "issackelly: 20\ndpwiz: 20\njustinlilly: 10\ntbatterii: 10\npaulsmith: 10", "group_id": 292, "id": 602431}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358564.4855421, "message": "Are you counting based on stars?", "group_id": 292, "id": 602406}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358654.2293401, "message": "stars in convore I feel are sort of ill-defined right now. Interesting to give them a karma value", "group_id": 292, "id": 602410}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358671.997875, "message": "Like, I think that's how most people are using them, \"thumbs up\" sort of way", "group_id": 292, "id": 602411}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358798.7284231, "message": "yup", "group_id": 292, "id": 602416}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358844.2126219, "message": "I'd also like to be able to see everything that I've starred (and preferably search them...) so I can use as a bookmark.. or at least permalink a specific message so I can put it into delicious", "group_id": 292, "id": 602418}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358860.7492011, "message": "but that's my pony, they're not really supporting that right now", "group_id": 292, "id": 602420}, {"user_id": 1284, "stars": [{"date_created": 1302358898.3027561, "user_id": 209}], "topic_id": 18155, "date_created": 1302358883.7122431, "message": "the \"<x> minutes ago\" next to a username is a link", "group_id": 292, "id": 602421}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302358887.5693109, "message": "that provides a permalink", "group_id": 292, "id": 602422}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358895.990906, "message": "Woot!", "group_id": 292, "id": 602424}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302358914.1349511, "message": "problem solved!", "group_id": 292, "id": 602426}, {"user_id": 209, "stars": [{"date_created": 1302359003.4567411, "user_id": 1284}], "topic_id": 18155, "date_created": 1302358968.5846879, "message": "ahh... and now I've found a way that in my private rooms I can make pyphage DO something... /bookmark 602406", "group_id": 292, "id": 602427}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302359130.6772871, "message": "yeah, you should show up", "group_id": 292, "id": 602435}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359150.706892, "message": "stupid chatbot ignoring its creator", "group_id": 292, "id": 602437}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359228.200192, "message": "ahha!", "group_id": 292, "id": 602439}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359233.252753, "message": "I'm in there, it just lists the top 5", "group_id": 292, "id": 602440}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359236.2909081, "message": "and I'm the 6th", "group_id": 292, "id": 602441}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302359243.8810019, "message": "phew", "group_id": 292, "id": 602442}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302359313.4116919, "message": "and you're tied for #2", "group_id": 292, "id": 602444}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302360778.4736719, "message": "/karma", "group_id": 292, "id": 602526}, {"user_id": 1284, "stars": [{"date_created": 1302362605.571115, "user_id": 209}], "topic_id": 18155, "date_created": 1302360750.410516, "message": "it never seems like it's worth the time to write a deploy script, and then it always is", "group_id": 292, "id": 602524}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302362750.138149, "message": "but I spent more than 10 minutes putting it off", "group_id": 292, "id": 602607}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302360735.693912, "message": "llimllib: 10", "group_id": 292, "id": 602521}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302360779.4305351, "message": "The 5 users with the highest karma are:\nissackelly: 20\ndpwiz: 20\njustinlilly: 10\ntbatterii: 10\npaulsmith: 10", "group_id": 292, "id": 602527}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302360734.72896, "message": "/karma llimllib", "group_id": 292, "id": 602519}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302362645.3143959, "message": "@llimllib are you using fabric?", "group_id": 292, "id": 602603}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302362740.649044, "message": "no, it took me 10 minutes to knock up an rsync from my laptop to my home server", "group_id": 292, "id": 602606}, {"user_id": 1284, "stars": [{"date_created": 1305110215.274256, "user_id": 23352}], "topic_id": 18155, "date_created": 1302362767.76932, "message": "and I always do that.", "group_id": 292, "id": 602608}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302364788.4864719, "message": "@coleifer also /rtd django queryset", "group_id": 292, "id": 602707}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302364766.2223899, "message": "http://django.rtfd.org/", "group_id": 292, "id": 602705}, {"user_id": 221, "stars": [{"date_created": 1302369676.464335, "user_id": 1284}], "topic_id": 18155, "date_created": 1302364806.0722971, "message": "very snazzy!!", "group_id": 292, "id": 602711}, {"user_id": 221, "stars": [], "topic_id": 18155, "date_created": 1302364765.0975549, "message": "/rtd django", "group_id": 292, "id": 602704}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302364789.5143881, "message": "http://django.rtfd.org/queryset", "group_id": 292, "id": 602709}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302368055.6790681, "message": "Unable to find user italiano40", "group_id": 292, "id": 603155}, {"user_id": 4149, "stars": [], "topic_id": 18155, "date_created": 1302368063.2198131, "message": "/karma", "group_id": 292, "id": 603157}, {"user_id": 4149, "stars": [], "topic_id": 18155, "date_created": 1302368087.744925, "message": "cool very fast too", "group_id": 292, "id": 603160}, {"user_id": 4149, "stars": [], "topic_id": 18155, "date_created": 1302368054.6250241, "message": "/karma italiano40", "group_id": 292, "id": 603154}, {"user_id": 25337, "stars": [], "topic_id": 18155, "date_created": 1302368107.504796, "message": "(cool bot tho!)", "group_id": 292, "id": 603164}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302368064.767005, "message": "The 5 users with the highest karma are:\nissackelly: 20\ndpwiz: 20\nllimllib: 20\nmikegraham: 20\njustinlilly: 10", "group_id": 292, "id": 603158}, {"user_id": 25337, "stars": [], "topic_id": 18155, "date_created": 1302368102.836133, "message": "Uhh... any chance of getting the bot to talk into a conversation in its own group? It's kind of spamming Python :)", "group_id": 292, "id": 603163}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302369779.6232269, "message": "@danfairs I think this thread will die down soon, my hope is that the bot will be useful to the broader group (do you get emails every time there's a reply to this thread? I think I turned off my emails so I don't know)", "group_id": 292, "id": 603321}, {"user_id": 209, "stars": [], "topic_id": 18155, "date_created": 1302369408.2078099, "message": "Mark topics read", "group_id": 292, "id": 603289}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302406981.352808, "message": "/rtd celery task", "group_id": 292, "id": 607790}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302406996.4498279, "message": "/rtd sqlalchemy relationship", "group_id": 292, "id": 607792}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302407004.150034, "message": ":D", "group_id": 292, "id": 607794}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302406982.51245, "message": "http://celery.rtfd.org/task", "group_id": 292, "id": 607791}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302406997.9237151, "message": "http://sqlalchemy.rtfd.org/relationship", "group_id": 292, "id": 607793}, {"user_id": 205, "stars": [{"date_created": 1302407046.2815731, "user_id": 1}, {"date_created": 1302407589.9703381, "user_id": 1284}, {"date_created": 1303654976.987529, "user_id": 8391}], "topic_id": 18155, "date_created": 1302407036.171644, "message": "I seeded the rtfd.org catalog with intersphinx data", "group_id": 292, "id": 607796}, {"user_id": 205, "stars": [{"date_created": 1302407044.15044, "user_id": 1}, {"date_created": 1302407593.2388861, "user_id": 1284}, {"date_created": 1303654978.989429, "user_id": 8391}], "topic_id": 18155, "date_created": 1302407043.3730879, "message": "Credit to @jacobian for the badass idea", "group_id": 292, "id": 607797}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302407154.7231281, "message": "as well as making the bot embed it here, like the python doc command", "group_id": 292, "id": 607803}, {"user_id": 205, "stars": [{"date_created": 1302416992.3585711, "user_id": 20196}], "topic_id": 18155, "date_created": 1302407130.7015669, "message": "I really want to find a way to pull out snippets of HTML from sphinx based on the functions, so I could expose an API so like rtfd.org/api/snippet/celery/task would return the HTML", "group_id": 292, "id": 607800}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302407142.41538, "message": "Then you could do some really interesting IDE/console integration", "group_id": 292, "id": 607801}, {"user_id": 7730, "stars": [], "topic_id": 18155, "date_created": 1302412878.2774351, "message": "/doc os.path", "group_id": 292, "id": 608037}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302412882.917727, "message": "Python Library Documentation: module posixpath in os\n\nNAME\n posixpath - Common operations on Posix pathnames.\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/posixpath.py\n\nDESCRIPTION\n Instead of importing this module directly, import os and refer to\n this module as os.path. The \"os.path\" name is an alias for this\n module on Posix systems; on other systems (e.g. Mac, Windows),\n os.path provides the same operations in a manner specific to that\n platform, and is an alias to another module (e.g. macpath, ntpath).\n \n Some of this can actually be useful on non-Posix systems too, e.g.\n for manipulation of the pathname component of URLs.\n\nFUNCTIONS\n abspath(path)\n<truncated> http://readthedocs.org/search/?q=os.path", "group_id": 292, "id": 608038}, {"user_id": 3751, "stars": [], "topic_id": 18155, "date_created": 1302422956.248662, "message": "/doc jinja2", "group_id": 292, "id": 608444}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302422958.1697359, "message": "unable to find help on jinja2", "group_id": 292, "id": 608445}, {"user_id": 3751, "stars": [], "topic_id": 18155, "date_created": 1302422963.0257289, "message": "/help", "group_id": 292, "id": 608446}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302422964.3029239, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>\n/eval <expression>: use a restricted python environment to return the result of <expression>\n/karma: who in the python group has the most karma?\n/rtd <module> <function>: return a link to readthedocs for <module> and/or <function>\n/zen:", "group_id": 292, "id": 608447}, {"user_id": 3751, "stars": [], "topic_id": 18155, "date_created": 1302422974.9264579, "message": "/zen", "group_id": 292, "id": 608449}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302422976.3007741, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 608450}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302444710.545712, "message": "/doc jinja2", "group_id": 292, "id": 609618}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302444713.519794, "message": "Python Library Documentation: package jinja2\n\nNAME\n jinja2\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/jinja2/__init__.py\n\nDESCRIPTION\n jinja2\n ~~~~~~\n \n Jinja2 is a template engine written in pure Python. It provides a\n Django inspired non-XML syntax but supports inline expressions and\n an optional sandboxed environment.\n \n Nutshell\n --------\n \n Here a small example of a Jinja2 template::\n<truncated> http://readthedocs.org/search/?q=jinja2", "group_id": 292, "id": 609619}, {"user_id": 12831, "stars": [], "topic_id": 18155, "date_created": 1302626519.0676849, "message": "/doc mako", "group_id": 292, "id": 645196}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302626522.814008, "message": "Python Library Documentation: package mako\n\nNAME\n mako\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/mako/__init__.py\n\nDESCRIPTION\n # mako/__init__.py\n # Copyright (C) 2006-2011 the Mako authors and contributors <see AUTHORS file>\n #\n # This module is part of Mako and is released under\n # the MIT License: http://www.opensource.org/licenses/mit-license.php\n\nPACKAGE CONTENTS\n _ast_util\n ast\n cache\n codegen\n<truncated> http://readthedocs.org/search/?q=mako", "group_id": 292, "id": 645199}, {"user_id": 12831, "stars": [], "topic_id": 18155, "date_created": 1302626548.440484, "message": "/doc sqlalchemy", "group_id": 292, "id": 645214}, {"user_id": 28212, "stars": [{"date_created": 1302635079.929666, "user_id": 29077}], "topic_id": 18155, "date_created": 1302626553.9005449, "message": "Python Library Documentation: package sqlalchemy\n\nNAME\n sqlalchemy\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/sqlalchemy/__init__.py\n\nDESCRIPTION\n # sqlalchemy/__init__.py\n # Copyright (C) 2005-2011 the SQLAlchemy authors and contributors <see AUTHORS file>\n #\n # This module is part of SQLAlchemy and is released under\n # the MIT License: http://www.opensource.org/licenses/mit-license.php\n\nPACKAGE CONTENTS\n connectors (package)\n databases (package)\n dialects (package)\n engine (package)\n<truncated> http://readthedocs.org/search/?q=sqlalchemy", "group_id": 292, "id": 645217}, {"user_id": 10227, "stars": [], "topic_id": 18155, "date_created": 1302652457.99544, "message": "m", "group_id": 292, "id": 653119}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302662349.6798329, "message": "The 5 users with the highest karma are:\nericholscher: 50\nlamby: 50\ndpwiz: 40\nllimllib: 40\nmikegraham: 40", "group_id": 292, "id": 655454}, {"user_id": 28212, "stars": [{"date_created": 1302680136.4401829, "user_id": 9896}], "topic_id": 18155, "date_created": 1302662356.989197, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 655460}, {"user_id": 29182, "stars": [], "topic_id": 18155, "date_created": 1302662331.00789, "message": "help", "group_id": 292, "id": 655438}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302662339.8291941, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>\n/eval <expression>: use a restricted python environment to return the result of <expression>\n/karma: who in the python group has the most karma?\n/rtd <module> <function>: return a link to readthedocs for <module> and/or <function>\n/zen:", "group_id": 292, "id": 655446}, {"user_id": 29182, "stars": [], "topic_id": 18155, "date_created": 1302662338.918196, "message": "/help", "group_id": 292, "id": 655445}, {"user_id": 29182, "stars": [], "topic_id": 18155, "date_created": 1302662337.5115161, "message": "/h", "group_id": 292, "id": 655444}, {"user_id": 29182, "stars": [], "topic_id": 18155, "date_created": 1302662355.9554961, "message": "/zen", "group_id": 292, "id": 655458}, {"user_id": 29182, "stars": [], "topic_id": 18155, "date_created": 1302662348.722065, "message": "/karma", "group_id": 292, "id": 655453}, {"user_id": 22200, "stars": [], "topic_id": 18155, "date_created": 1302681241.1833811, "message": "/doc re", "group_id": 292, "id": 661158}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302681245.818918, "message": "Python Library Documentation: module re\n\nNAME\n re - Support for regular expressions (RE).\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/re.py\n\nDESCRIPTION\n This module provides regular expression matching operations similar to\n those found in Perl. It supports both 8-bit and Unicode strings; both\n the pattern and the strings being processed can contain null bytes and\n characters outside the US ASCII range.\n \n Regular expressions can contain both special and ordinary characters.\n Most ordinary characters, like \"A\", \"a\", or \"0\", are the simplest\n regular expressions; they simply match themselves. You can\n concatenate ordinary characters, so last matches the string 'last'.\n \n The special characters are:\n<truncated> http://readthedocs.org/search/?q=re", "group_id": 292, "id": 661159}, {"user_id": 3354, "stars": [], "topic_id": 18155, "date_created": 1302693773.3933051, "message": "/help this", "group_id": 292, "id": 663229}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302693774.4224889, "message": "Sorry, could not find help on this", "group_id": 292, "id": 663230}, {"user_id": 3354, "stars": [], "topic_id": 18155, "date_created": 1302693823.9371951, "message": "/doc this", "group_id": 292, "id": 663242}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302693826.2395661, "message": "Python Library Documentation: module this\n\nNAME\n this\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/this.py\n\nDATA\n c = '!'\n d = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': ...\n i = 25\n s = \"Gur Mra bs Clguba, ol Gvz Crgref\\n\\nOrnhgvshy vf o...bar ubaxvat ...\n\n\n<truncated> http://readthedocs.org/search/?q=this", "group_id": 292, "id": 663243}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302699758.7641699, "message": "/zen:", "group_id": 292, "id": 664498}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302699766.603271, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 664504}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302699757.810782, "message": "@holdenweb /help zen", "group_id": 292, "id": 664497}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302699765.452075, "message": "/zen", "group_id": 292, "id": 664502}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302758195.102232, "message": "/zen", "group_id": 292, "id": 678925}, {"user_id": 205, "stars": [], "topic_id": 18155, "date_created": 1302758203.5103681, "message": "/help", "group_id": 292, "id": 678932}, {"user_id": 11972, "stars": [], "topic_id": 18155, "date_created": 1302763885.0596421, "message": "/import this", "group_id": 292, "id": 680078}, {"user_id": 11972, "stars": [], "topic_id": 18155, "date_created": 1302763922.589273, "message": "/zen", "group_id": 292, "id": 680082}, {"user_id": 15162, "stars": [], "topic_id": 18155, "date_created": 1302765685.9109631, "message": "/doc pyphage", "group_id": 292, "id": 680296}, {"user_id": 15162, "stars": [], "topic_id": 18155, "date_created": 1302765718.6975911, "message": "/doc chatbot", "group_id": 292, "id": 680302}, {"user_id": 27235, "stars": [], "topic_id": 18155, "date_created": 1302787839.8408129, "message": "/doc csv", "group_id": 292, "id": 684554}, {"user_id": 7179, "stars": [], "topic_id": 18155, "date_created": 1302788670.877634, "message": "/pep 8", "group_id": 292, "id": 684746}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302791482.598268, "message": "doh! sorry", "group_id": 292, "id": 685530}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302791499.6756439, "message": ":( can't restart until I get home", "group_id": 292, "id": 685536}, {"user_id": 7179, "stars": [], "topic_id": 18155, "date_created": 1302792127.226181, "message": "no worries.. does /pep # is a command? if not, it should :)", "group_id": 292, "id": 685734}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302792503.3017349, "message": "good idea!", "group_id": 292, "id": 685850}, {"user_id": 3354, "stars": [], "topic_id": 18155, "date_created": 1302875757.7555349, "message": ":)", "group_id": 292, "id": 700405}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302875530.2242711, "message": "I forgot to restart it last night, and /pep isn't implemented yet", "group_id": 292, "id": 700399}, {"user_id": 3354, "stars": [], "topic_id": 18155, "date_created": 1302875451.423681, "message": "/pep 8", "group_id": 292, "id": 700395}, {"user_id": 3354, "stars": [{"date_created": 1302875774.1201839, "user_id": 1284}], "topic_id": 18155, "date_created": 1302875768.9614351, "message": "I want my money back!", "group_id": 292, "id": 700408}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302878987.9652729, "message": "/pep 318", "group_id": 292, "id": 700907}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302878929.9067781, "message": "/pep 8", "group_id": 292, "id": 700879}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302879028.7428999, "message": "https://github.com/llimllib/pyphage/blob/master/plugins/pep.py", "group_id": 292, "id": 700921}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1302878935.757957, "message": "doh", "group_id": 292, "id": 700885}, {"user_id": 1284, "stars": [{"date_created": 1302886366.049279, "user_id": 1}], "topic_id": 18155, "date_created": 1302878949.5635591, "message": "/pep 8", "group_id": 292, "id": 700891}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302878951.3386099, "message": "PEP: 8\nTitle: Style Guide for Python Code\nVersion: 64bda015861d\nLast-Modified: \nAuthor: Guido van Rossum <guido at python.org>, Barry Warsaw <barry at python.org>\nStatus: Active\nType: Process\nCreated: 05-Jul-2001\nPost-History: 05-Jul-2001\nhttp://www.python.org/dev/peps/pep-0008/", "group_id": 292, "id": 700892}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1302878989.842221, "message": "PEP: 318\nTitle: Decorators for Functions and Methods\nVersion: f51a354007a1\nLast-Modified: \nAuthor: Kevin D. Smith <Kevin.Smith at theMorgue.org>, Jim J. Jewett, Skip Montanaro, Anthony Baxter\nStatus: Final\nType: Standards Track\nContent-Type: \nCreated: 05-Jun-2003\nPython-Version: 2.4\nhttp://www.python.org/dev/peps/pep-0318/", "group_id": 292, "id": 700908}, {"user_id": 2902, "stars": [], "topic_id": 18155, "date_created": 1303639934.1819079, "message": "/karma", "group_id": 292, "id": 793823}, {"user_id": 2902, "stars": [], "topic_id": 18155, "date_created": 1303639957.7924571, "message": "/pep 8", "group_id": 292, "id": 793825}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1303686259.1858611, "message": "/pep 8", "group_id": 292, "id": 797311}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1303686179.3423469, "message": "doh", "group_id": 292, "id": 797303}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1303686242.7977979, "message": "/pep 8", "group_id": 292, "id": 797308}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1303686261.0542779, "message": "PEP: 8\nTitle: Style Guide for Python Code\nVersion: 64bda015861d\nLast-Modified: \nAuthor: Guido van Rossum <guido at python.org>, Barry Warsaw <barry at python.org>\nStatus: Active\nType: Process\nCreated: 05-Jul-2001\nPost-History: 05-Jul-2001\nhttp://www.python.org/dev/peps/pep-0008/", "group_id": 292, "id": 797312}, {"user_id": 603, "stars": [], "topic_id": 18155, "date_created": 1304524084.1350291, "message": "/zen", "group_id": 292, "id": 914597}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1304525019.612874, "message": "fail. /I swear it was running yesterday, I should really get a proper daemon set up", "group_id": 292, "id": 914855}, {"user_id": 21923, "stars": [], "topic_id": 18155, "date_created": 1304936481.5005751, "message": "/rtd re search", "group_id": 292, "id": 970211}, {"user_id": 32671, "stars": [], "topic_id": 18155, "date_created": 1304957356.21593, "message": "jhjhk", "group_id": 292, "id": 973698}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305001790.717423, "message": "/zen", "group_id": 292, "id": 984267}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305001716.9841831, "message": "/rtd re search", "group_id": 292, "id": 984248}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305001784.537385, "message": "hmm, that was weird, no exceptions were ever thrown and it should have been running continuously.", "group_id": 292, "id": 984264}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305001718.6810269, "message": "http://re.rtfd.org/search", "group_id": 292, "id": 984249}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305001791.5094681, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 984268}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305007918.1644139, "message": "Nothing.", "group_id": 292, "id": 985713}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305007947.9435539, "message": "/me waves at @d2m", "group_id": 292, "id": 985718}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305007884.053477, "message": "/zen", "group_id": 292, "id": 985708}, {"user_id": 5502, "stars": [], "topic_id": 18155, "date_created": 1305007896.711853, "message": "yay", "group_id": 292, "id": 985710}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305007885.1170969, "message": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!", "group_id": 292, "id": 985709}, {"user_id": 5502, "stars": [], "topic_id": 18155, "date_created": 1305007962.433398, "message": "hi @webmaven", "group_id": 292, "id": 985723}, {"user_id": 7179, "stars": [], "topic_id": 18155, "date_created": 1305023403.7659061, "message": "/pep 3000", "group_id": 292, "id": 987998}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305023405.5564799, "message": "PEP: 3000\nTitle: Python 3000\nVersion: 9257f1582f18\nLast-Modified: \nAuthor: Guido van Rossum <guido at python.org>\nStatus: Active\nType: Process\nContent-Type: \nCreated: 05-Apr-2006\nPost-History: \nhttp://www.python.org/dev/peps/pep-3000/", "group_id": 292, "id": 987999}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305033326.645874, "message": "/pep 8", "group_id": 292, "id": 989123}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305033437.2818041, "message": "yes. Although a -v switch would still be useful,", "group_id": 292, "id": 989156}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033343.4378009, "message": "would more concise output be better for peps? (and in general, e.g. the /zen is nifty but not useful)", "group_id": 292, "id": 989129}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033589.7974789, "message": "@webmaven: are you the bot's author? are you familiar with the geordi irc bot?", "group_id": 292, "id": 989196}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305035534.5269611, "message": "@rdpate that's exactly where I hoped the chatbot would be useful, though nobody seems to use it", "group_id": 292, "id": 989559}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305033328.696203, "message": "PEP: 8\nTitle: Style Guide for Python Code\nVersion: 64bda015861d\nLast-Modified: \nAuthor: Guido van Rossum <guido at python.org>, Barry Warsaw <barry at python.org>\nStatus: Active\nType: Process\nCreated: 05-Jul-2001\nPost-History: 05-Jul-2001\nhttp://www.python.org/dev/peps/pep-0008/", "group_id": 292, "id": 989124}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033400.142385, "message": "something like \"PEP 8: Style Guide for Python Code (updated: X days ago) \u2013 http://www.python.org/dev/peps/pep-0008/\"", "group_id": 292, "id": 989148}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033490.3723199, "message": "I can see that, but why not just follow the link?", "group_id": 292, "id": 989170}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033532.8359301, "message": "it's a chatbot, so I'm imagining \"XXX is covered by PEP YYY\" \"which pep is that?\" \"/pep YYY\"", "group_id": 292, "id": 989178}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305033648.996433, "message": "geordi runs arbitrary snippets of c++ (in a sandbox) and posts the output; it's incredibly useful to have short bits of executed code inline in chat", "group_id": 292, "id": 989213}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305033792.351613, "message": "@rdpate, no, I'm not the author.", "group_id": 292, "id": 989244}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305035398.770185, "message": "[(1, 2), (1, 2)]", "group_id": 292, "id": 989530}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305034066.0449941, "message": "well, if the author is listening... ;)", "group_id": 292, "id": 989299}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305034086.7921829, "message": "that kind of chat interaction is immensely more useful than parroting information found elsewhere", "group_id": 292, "id": 989301}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305036586.5877221, "message": "unable to find help on stringio", "group_id": 292, "id": 989937}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305036518.469528, "message": "The python chatbot currently implements these commands:\n/doc <something>: return python 2.7's documentation for <something>\n/eval <expression>: use a restricted python environment to return the result of <expression>\n/karma: who in the python group has the most karma?\n/pep <number>: return a link and the introduction to pep <number>\n/rtd <module> <function>: return a link to readthedocs for <module> and/or <function>\n/zen:", "group_id": 292, "id": 989900}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305035397.4775059, "message": "@rdpate /eval zip(*[[1,1],[2,2]])", "group_id": 292, "id": 989529}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305036517.4939051, "message": "/help", "group_id": 292, "id": 989899}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305036597.803499, "message": "/doc string", "group_id": 292, "id": 989941}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305036600.555083, "message": "Python Library Documentation: module string\n\nNAME\n string - A collection of string operations (most are no longer used).\n\nFILE\n /usr/local/Cellar/python/2.7.1/lib/python2.7/string.py\n\nDESCRIPTION\n Warning: most of the code you see here isn't normally used nowadays.\n Beginning with Python 1.6, many of these functions are implemented as\n methods on the standard string object. They used to be implemented by\n a built-in module called strop, but strop is now obsolete itself.\n \n Public module variables:\n \n whitespace -- a string containing all characters considered whitespace\n lowercase -- a string containing all characters considered lowercase letters\n uppercase -- a string containing all characters considered uppercase letters\n letters -- a string containing all characters considered letters\n<truncated> http://readthedocs.org/search/?q=string", "group_id": 292, "id": 989942}, {"user_id": 31790, "stars": [], "topic_id": 18155, "date_created": 1305036585.337882, "message": "/doc stringio", "group_id": 292, "id": 989935}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305042118.1921821, "message": "though limiting to expressions without statements really hobbles it", "group_id": 292, "id": 991610}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305042067.068758, "message": "ah, nice", "group_id": 292, "id": 991598}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305042400.8977251, "message": "@rdpate running untrusted python code with statements presents real problems, not to mention that indentation is not feasible in this format", "group_id": 292, "id": 991679}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305042138.243269, "message": "I thought /zen made the scroll bad and the chat unreadable, but /doc is awful", "group_id": 292, "id": 991617}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305042139.1838551, "message": "unable to find help on is", "group_id": 292, "id": 991618}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305042443.4488921, "message": "@rdpate and doc'ing a module is silly, it's more useful to point to a function", "group_id": 292, "id": 991695}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305042445.030375, "message": "/doc zip", "group_id": 292, "id": 991697}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305042448.3040161, "message": "Python Library Documentation: built-in function zip in module __builtin__\n\nzip(...)\n zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]\n \n Return a list of tuples, where each tuple contains the i-th element\n from each of the argument sequences. The returned list is truncated\n in length to the length of the shortest argument sequence.\n\n<truncated> http://readthedocs.org/search/?q=zip", "group_id": 292, "id": 991699}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044442.7928979, "message": "@llimllib that's why I mentioned geordi, which does run arbitrary untrusted code: http://www.xs4all.nl/~weegen/eelis/geordi/", "group_id": 292, "id": 992250}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044523.7417591, "message": "@llimllib you can enter multiple lines easily (shift-enter here), but it does indeed strip leading indentation; I wonder if there is some way to indicate a message is source code (or whatever)", "group_id": 292, "id": 992289}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044623.660428, "message": "I was imagining someone would edit in a normal text editor and then paste here; so newlines and indentation wouldn't be a problem, yet the code under discussion along with the output would be included inline in the chat history/transcript", "group_id": 292, "id": 992328}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045157.5805769, "message": "however, I don't think you can run code safely in the manner that Geordi does", "group_id": 292, "id": 992539}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044365.1829669, "message": "(or wanting to see it used)", "group_id": 292, "id": 992218}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045298.5363829, "message": "that's all nice, I guess", "group_id": 292, "id": 992583}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045321.118535, "message": "not wanting to setup chroot is fine and reasonable :), I was responding to the messages a few seconds earlier about it not being possible", "group_id": 292, "id": 992589}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045333.9688499, "message": ":)", "group_id": 292, "id": 992595}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045445.8278899, "message": "I haven't looked at how /eval works, but if you do use eval() and think restricting to an expression is safe enough, go to freenode's #python and they can show you some examples that will exploit it", "group_id": 292, "id": 992618}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044393.4871819, "message": "uh... it detects commands in the middle of other text?", "group_id": 292, "id": 992226}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045206.6739531, "message": "Also, I don't feel like going to the pain of setting up a chroot jail, which I don't know how to do", "group_id": 292, "id": 992555}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045314.0191569, "message": "but pyphage is a python program running on my television's mac mini", "group_id": 292, "id": 992587}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045322.159934, "message": "which nobody uses", "group_id": 292, "id": 992590}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044358.524796, "message": "I can't see me wanting to use /doc zip either", "group_id": 292, "id": 992214}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305044360.1768141, "message": "Python Library Documentation: built-in function zip in module __builtin__\n\nzip(...)\n zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]\n \n Return a list of tuples, where each tuple contains the i-th element\n from each of the argument sequences. The returned list is truncated\n in length to the length of the shortest argument sequence.\n\n<truncated> http://readthedocs.org/search/?q=zip", "group_id": 292, "id": 992215}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305044473.8149569, "message": "def f():\n print 42", "group_id": 292, "id": 992269}, {"user_id": 28212, "stars": [], "topic_id": 18155, "date_created": 1305045446.829845, "message": "Error running code", "group_id": 292, "id": 992619}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045598.8330109, "message": "@rdpate I'm not a total moron, feel free to read the source: https://github.com/llimllib/pyphage/blob/master/plugins/eval.py", "group_id": 292, "id": 992648}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045037.763823, "message": "@rdpate pasting does work, I think:", "group_id": 292, "id": 992489}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045246.552747, "message": "@llimllib why not? do you think C++ with embedded asm (which geordi executes) is less capable than python?", "group_id": 292, "id": 992566}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045050.5502651, "message": "def f():\n print 42\n", "group_id": 292, "id": 992494}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045139.792846, "message": "def f():\n return 42\n", "group_id": 292, "id": 992533}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045149.713659, "message": "def f():\n return 42", "group_id": 292, "id": 992537}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045177.3600039, "message": "(the JS for convore detects pasted text)", "group_id": 292, "id": 992546}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045263.0488231, "message": "codepad.org also executes arbitrary code, including python, and is based on geordi", "group_id": 292, "id": 992571}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045177.3953969, "message": "weird, I typed the exact same text as when pasting, and it detects and displays it differently", "group_id": 292, "id": 992547}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045224.160074, "message": "so if you want to make eval better, I'm all for it, but I won't be hacking on it actively", "group_id": 292, "id": 992561}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045570.508358, "message": "@rdpate it uses pysandbox https://github.com/haypo/pysandbox", "group_id": 292, "id": 992643}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045787.779274, "message": "@rdpate Also check out and feel free to add to the topic where we tried to break it: https://convore.com/python/is-there-a-safe-way-to-execute-a-calculation-with-untrusted-input/", "group_id": 292, "id": 992672}, {"user_id": 31883, "stars": [], "topic_id": 18155, "date_created": 1305045810.169827, "message": "could you put the bot in another topic for playing with it, and use this topic for discussing it?", "group_id": 292, "id": 992675}, {"user_id": 1284, "stars": [], "topic_id": 18155, "date_created": 1305045880.1917441, "message": "I just started one on my laptop, it's listening to all topics in https://convore.com/python-chatbot-testing/", "group_id": 292, "id": 992686}]