# Path: hftools/py3compat.py
# DEFAULT_ENCODING = "cp1252"
#     PY3 = True
#     PY3 = False
# def no_code(x, encoding=None):
# def decode(s, encoding=None):
# def encode(u, encoding=None):
# def cast_unicode(s, encoding=None):
# def cast_bytes(s, encoding=None):
#     def reraise(tp, value, tb=None):
#     def popen(command):
#     def popen(command):
#     def print(*k, **kw):
# def cast_str(s, encoding=None):


from hftools.py3compat import PY3, getcwdu
import sys, warnings, os, fnmatch, glob, shutil, codecs, six
        import win32security
        import pwd
#   - Tree-walking functions don't avoid symlink loops.  Matt Harrison
#     sent me a patch for this.
#   - Bug in write_text().  It doesn't support Universal newline mode.
#   - Better error message in listdir() when self isn't a
#     directory. (On Windows, the error message really sucks.)
#   - Make sure everything has a good docstring.
#   - Add methods for regex find and replace.
#   - guess_content_type() method?
#   - Perhaps support arguments to touch().

from __future__ import generators

__version__ = '2.2'
__all__ = ['path']

# Platform-specific support for path.owner
if os.name == 'nt':
    try:
    except ImportError:
        win32security = None
else:
    try:
    except ImportError:
        pwd = None

if six.PY3:
    _base = str
    _getcwd = os.getcwd
else:
    _base = unicode

# Path: hftools/py3compat.py
# DEFAULT_ENCODING = "cp1252"
#     PY3 = True
#     PY3 = False
# def no_code(x, encoding=None):
# def decode(s, encoding=None):
# def encode(u, encoding=None):
# def cast_unicode(s, encoding=None):
# def cast_bytes(s, encoding=None):
#     def reraise(tp, value, tb=None):
#     def popen(command):
#     def popen(command):
#     def print(*k, **kw):
# def cast_str(s, encoding=None):


# Path: hftools/_external/path.py
from hftools.py3compat import PY3, getcwdu
import sys, warnings, os, fnmatch, glob, shutil, codecs, six
        import win32security
        import pwd

#   - Tree-walking functions don't avoid symlink loops.  Matt Harrison
#     sent me a patch for this.
#   - Bug in write_text().  It doesn't support Universal newline mode.
#   - Better error message in listdir() when self isn't a
#     directory. (On Windows, the error message really sucks.)
#   - Make sure everything has a good docstring.
#   - Add methods for regex find and replace.
#   - guess_content_type() method?
#   - Perhaps support arguments to touch().

from __future__ import generators

__version__ = '2.2'
__all__ = ['path']

# Platform-specific support for path.owner
if os.name == 'nt':
    try:
    except ImportError:
        win32security = None
else:
    try:
    except ImportError:
        pwd = None

if six.PY3:
    _base = str
    _getcwd = os.getcwd
else:
    _base = unicode

    _getcwd = os.getcwdu