Started to create a small FLASK restful api for handling requests

This commit is contained in:
2017-01-31 21:44:42 +01:00
parent 261b3afa01
commit b7aa452911
871 changed files with 118083 additions and 6 deletions

View File

@@ -1,6 +0,0 @@
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8124, "10.0.0.41");
console.log('Server running at http://127.0.0.1:8124/');

Binary file not shown.

Binary file not shown.

111
v1/app.py Executable file
View File

@@ -0,0 +1,111 @@
#!/usr/bin/env python3
# Flask auth with HTTP '$ pip install flask_httpauth'
# For https '$ pip install Flask-SSLify'
from flask import Flask, jsonify, make_response, request, url_for, abort
from flask_httpauth import HTTPBasicAuth
from json import loads, dumps
from werkzeug.security import generate_password_hash, \
check_password_hash
import uptime
from diskusage import diskUsage
app = Flask(__name__, static_url_path = "")
auth = HTTPBasicAuth()
# Hardcoded users, the password is hashed with salt used by wekzeug
users = {
"kevin": "9f6c79bbb3b8bbc4e6aab32314afaf3c812df66b",
"apollo": "BerryTree",
"test": "test"
}
# Flask function for checking password sent with http request
@auth.verify_password
def verify_password(email, password):
return verifyHash(password)
# Costum function for hashing and verifying the sent password.
# TODO Read if ok to send in cleartext like this if use https
def verifyHash(pw):
pw_hash = generate_password_hash(pw)
return check_password_hash(pw_hash, pw)
# Flask function for getting password matching username sent by http request
@auth.get_password
def get_pw(username):
if username in users:
return users.get(username)
return None
# Flasks own error handler that makes and returns error 401 if creds
# to not match.
@auth.error_handler
def unauthorized():
return make_response(jsonify({'error': 'Unauthorized access'}), 401)
# This would be replaced with a database, but single process and thread
# can use local data like this for simplicity.
# Want all return data to be JSON so create custom error response
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
@app.errorhandler(400)
def bad_request(error):
return make_response(jsonify({'error': 'Bad request'}), 400)
# --- Apollo Activity --- #
@app.route('/api/v1/disks', methods=['GET'])
@auth.login_required
def get_diskUsage():
if (diskUsage()):
return jsonify(diskUsage())
else:
abort(404)
@app.route('/api/v1/disks/<disk_name>', methods=['GET'])
@auth.login_required
def get_singleDiskUsage(disk_name, other):
if (diskUsage(disk_name)):
return jsonify({task_type: diskUsage(disk_name)})
else:
abort(404)
@app.route('/api/v1/uptimes', methods=['GET'])
@auth.login_required
def get_uptimes():
up = uptime.uptime()
print(up)
return jsonify({'duration': up.duration, 'users': up.users,
'load': up.load})
@app.route('/api/v1/uptimes/duration', methods=['GET'])
@auth.login_required
def get_uptimesDuration():
up = uptime.uptime()
return jsonify( {'Duration': up.duration} )
@app.route('/api/v1/uptimes/users', methods=['GET'])
@auth.login_required
def get_uptimesUsers():
up = uptime.uptime()
return jsonify( {'Users': up.users} )
@app.route('/api/v1/uptimes/load', methods=['GET'])
@auth.login_required
def get_uptimesLoad():
up = uptime.uptime()
return jsonify( {'Load': up.load} )
if __name__ == '__main__':
app.run(port=63580,debug=True)

1
v1/flask/.Python Symbolic link
View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/Python

78
v1/flask/bin/activate Normal file
View File

@@ -0,0 +1,78 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
unset -f pydoc >/dev/null 2>&1
# reset old environment variables
# ! [ -z ${VAR+_} ] returns true if VAR is declared at all
if ! [ -z "${_OLD_VIRTUAL_PATH+_}" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
hash -r 2>/dev/null
fi
if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "${1-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
VIRTUAL_ENV="/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
if ! [ -z "${PYTHONHOME+_}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
fi
export PS1
fi
# Make sure to unalias pydoc if it's already there
alias pydoc 2>/dev/null >/dev/null && unalias pydoc
pydoc () {
python -m pydoc "$@"
}
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
hash -r 2>/dev/null
fi

36
v1/flask/bin/activate.csh Normal file
View File

@@ -0,0 +1,36 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV "/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask"
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
if ("" != "") then
set env_name = ""
else
set env_name = `basename "$VIRTUAL_ENV"`
endif
# Could be in a non-interactive environment,
# in which case, $prompt is undefined and we wouldn't
# care about the prompt anyway.
if ( $?prompt ) then
set _OLD_VIRTUAL_PROMPT="$prompt"
set prompt = "[$env_name] $prompt"
endif
unset env_name
alias pydoc python -m pydoc
rehash

View File

@@ -0,0 +1,76 @@
# This file must be used using `. bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
# Do not run it directly.
function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
# Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
set -l fish_function_path
# Erase virtualenv's `fish_prompt` and restore the original.
functions -e fish_prompt
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
end
set -e VIRTUAL_ENV
if test "$argv[1]" != 'nondestructive'
# Self-destruct!
functions -e pydoc
functions -e deactivate
end
end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV "/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# Unset `$PYTHONHOME` if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
function pydoc
python -m pydoc $argv
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# Copy the current `fish_prompt` function as `_old_fish_prompt`.
functions -c fish_prompt _old_fish_prompt
function fish_prompt
# Save the current $status, for fish_prompts that display it.
set -l old_status $status
# Prompt override provided?
# If not, just prepend the environment name.
if test -n ""
printf '%s%s' "" (set_color normal)
else
printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV")
end
# Restore the original $status
echo "exit $old_status" | source
_old_fish_prompt
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end

View File

@@ -0,0 +1,34 @@
"""By using execfile(this_file, dict(__file__=this_file)) you will
activate this virtualenv environment.
This can be used when you must use an existing Python interpreter, not
the virtualenv bin/python
"""
try:
__file__
except NameError:
raise AssertionError(
"You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
import sys
import os
old_os_path = os.environ.get('PATH', '')
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if sys.platform == 'win32':
site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path

11
v1/flask/bin/easy_install Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from setuptools.command.easy_install import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
v1/flask/bin/easy_install-3.4 Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from setuptools.command.easy_install import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
v1/flask/bin/pip Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
v1/flask/bin/pip3 Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
v1/flask/bin/pip3.4 Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

1
v1/flask/bin/python Symbolic link
View File

@@ -0,0 +1 @@
python3.4

78
v1/flask/bin/python-config Executable file
View File

@@ -0,0 +1,78 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python
import sys
import getopt
import sysconfig
valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
'ldflags', 'help']
if sys.version_info >= (3, 2):
valid_opts.insert(-1, 'extension-suffix')
valid_opts.append('abiflags')
if sys.version_info >= (3, 3):
valid_opts.append('configdir')
def exit_with_usage(code=1):
sys.stderr.write("Usage: {0} [{1}]\n".format(
sys.argv[0], '|'.join('--'+opt for opt in valid_opts)))
sys.exit(code)
try:
opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
except getopt.error:
exit_with_usage()
if not opts:
exit_with_usage()
pyver = sysconfig.get_config_var('VERSION')
getvar = sysconfig.get_config_var
opt_flags = [flag for (flag, val) in opts]
if '--help' in opt_flags:
exit_with_usage(code=0)
for opt in opt_flags:
if opt == '--prefix':
print(sysconfig.get_config_var('prefix'))
elif opt == '--exec-prefix':
print(sysconfig.get_config_var('exec_prefix'))
elif opt in ('--includes', '--cflags'):
flags = ['-I' + sysconfig.get_path('include'),
'-I' + sysconfig.get_path('platinclude')]
if opt == '--cflags':
flags.extend(getvar('CFLAGS').split())
print(' '.join(flags))
elif opt in ('--libs', '--ldflags'):
abiflags = getattr(sys, 'abiflags', '')
libs = ['-lpython' + pyver + abiflags]
libs += getvar('LIBS').split()
libs += getvar('SYSLIBS').split()
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
# shared library in prefix/lib/.
if opt == '--ldflags':
if not getvar('Py_ENABLE_SHARED'):
libs.insert(0, '-L' + getvar('LIBPL'))
if not getvar('PYTHONFRAMEWORK'):
libs.extend(getvar('LINKFORSHARED').split())
print(' '.join(libs))
elif opt == '--extension-suffix':
ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
if ext_suffix is None:
ext_suffix = sysconfig.get_config_var('SO')
print(ext_suffix)
elif opt == '--abiflags':
if not getattr(sys, 'abiflags', None):
exit_with_usage()
print(sys.abiflags)
elif opt == '--configdir':
print(sysconfig.get_config_var('LIBPL'))

1
v1/flask/bin/python3 Symbolic link
View File

@@ -0,0 +1 @@
python3.4

BIN
v1/flask/bin/python3.4 Executable file

Binary file not shown.

11
v1/flask/bin/wheel Executable file
View File

@@ -0,0 +1,11 @@
#!/Users/KevinMidboe/Dropbox/python/statusHandler/v1/flask/bin/python3.4
# -*- coding: utf-8 -*-
import re
import sys
from wheel.tool import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

1
v1/flask/include/python3.4m Symbolic link
View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/__future__.py

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_bootlocale.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_collections_abc.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_dummy_thread.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_weakrefset.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/abc.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/base64.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/bisect.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/codecs.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/collections

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/config-3.4m

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/copy.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/copyreg.py

View File

@@ -0,0 +1,101 @@
import os
import sys
import warnings
import imp
import opcode # opcode is not a virtualenv module, so we can use it to find the stdlib
# Important! To work on pypy, this must be a module that resides in the
# lib-python/modified-x.y.z directory
dirname = os.path.dirname
distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils')
if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)):
warnings.warn(
"The virtualenv distutils package at %s appears to be in the same location as the system distutils?")
else:
__path__.insert(0, distutils_path)
real_distutils = imp.load_module("_virtualenv_distutils", None, distutils_path, ('', '', imp.PKG_DIRECTORY))
# Copy the relevant attributes
try:
__revision__ = real_distutils.__revision__
except AttributeError:
pass
__version__ = real_distutils.__version__
from distutils import dist, sysconfig
try:
basestring
except NameError:
basestring = str
## patch build_ext (distutils doesn't know how to get the libs directory
## path on windows - it hardcodes the paths around the patched sys.prefix)
if sys.platform == 'win32':
from distutils.command.build_ext import build_ext as old_build_ext
class build_ext(old_build_ext):
def finalize_options (self):
if self.library_dirs is None:
self.library_dirs = []
elif isinstance(self.library_dirs, basestring):
self.library_dirs = self.library_dirs.split(os.pathsep)
self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs"))
old_build_ext.finalize_options(self)
from distutils.command import build_ext as build_ext_module
build_ext_module.build_ext = build_ext
## distutils.dist patches:
old_find_config_files = dist.Distribution.find_config_files
def find_config_files(self):
found = old_find_config_files(self)
system_distutils = os.path.join(distutils_path, 'distutils.cfg')
#if os.path.exists(system_distutils):
# found.insert(0, system_distutils)
# What to call the per-user config file
if os.name == 'posix':
user_filename = ".pydistutils.cfg"
else:
user_filename = "pydistutils.cfg"
user_filename = os.path.join(sys.prefix, user_filename)
if os.path.isfile(user_filename):
for item in list(found):
if item.endswith('pydistutils.cfg'):
found.remove(item)
found.append(user_filename)
return found
dist.Distribution.find_config_files = find_config_files
## distutils.sysconfig patches:
old_get_python_inc = sysconfig.get_python_inc
def sysconfig_get_python_inc(plat_specific=0, prefix=None):
if prefix is None:
prefix = sys.real_prefix
return old_get_python_inc(plat_specific, prefix)
sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__
sysconfig.get_python_inc = sysconfig_get_python_inc
old_get_python_lib = sysconfig.get_python_lib
def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
if standard_lib and prefix is None:
prefix = sys.real_prefix
return old_get_python_lib(plat_specific, standard_lib, prefix)
sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__
sysconfig.get_python_lib = sysconfig_get_python_lib
old_get_config_vars = sysconfig.get_config_vars
def sysconfig_get_config_vars(*args):
real_vars = old_get_config_vars(*args)
if sys.platform == 'win32':
lib_dir = os.path.join(sys.real_prefix, "libs")
if isinstance(real_vars, dict) and 'LIBDIR' not in real_vars:
real_vars['LIBDIR'] = lib_dir # asked for all
elif isinstance(real_vars, list) and 'LIBDIR' in args:
real_vars = real_vars + [lib_dir] # asked for list
return real_vars
sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__
sysconfig.get_config_vars = sysconfig_get_config_vars

View File

@@ -0,0 +1,6 @@
# This is a config file local to this virtualenv installation
# You may include options that will be used by all distutils commands,
# and by easy_install. For instance:
#
# [easy_install]
# find_links = http://mylocalsite

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/fnmatch.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/functools.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/genericpath.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/hashlib.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/heapq.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/hmac.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/imp.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/importlib

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/io.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/keyword.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/linecache.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/locale.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ntpath.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/operator.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/os.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/posixpath.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py

View File

@@ -0,0 +1 @@
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/re.py

Some files were not shown because too many files have changed in this diff Show More